Skip to content

Lark tracer: Bot-queryable pairing directory and first-flow acceptance #1374

Closed

Description

@DoodleBears

Parent

#1372

Specification: #1371

What to build

After pairing through the real sidebar, an authorized person can ask the Bot which people are paired, which external conversations it knows, and which paired people it has observed in a particular conversation. The Bot uses the on-demand single-person permission Tool from #1373 when a question is role-governed and answers through read-only, scoped directory queries and its checked original reply route. The Human can verify the result against the existing pairing/conversation settings. Complete and obtain Human feedback on the entire first Lark flow from #1371 before opening the next feature frontier.

Acceptance criteria

  • Expose three bounded/pageable read-only queries through the existing owning service and model-facing capability seam: current effective paired people/roles, the Bot's known/configured external conversations and states, and observed paired participants of one scoped conversation.
  • Human-reviewed state from #1373 is the authority. Querying cannot create/approve pairing, assign a role, mutate conversation policy, or authorize a new destination. The full directory and individual permissions are queried as needed rather than injected into every prompt. The single-person current-permission Tool is delivered by Lark tracer: ordinary roles and reviewed automatic conversation pairing #1373; this slice adds the three directory views, not a competing permission authority.
  • Verify permissions-sensitive questions resolve the actual requester through trusted provenance. A directory row or historical permission result cannot stand in for a fresh authoritative lookup or authorize impersonating the listed person. Preserve current-state/coverage metadata without automatic policy injection.
  • Derive conversation observations from trusted actor/conversation evidence the receiving Bot is authorized to see, intersected with current effective pairing. Do not determine shared-source visibility solely from the source's original owner.
  • Include observation times and incomplete/retention coverage. Never describe the result as complete/current platform membership, infer silent or departed members, or infer platform reach from being listed.
  • A paired observed person appears in the selected conversation; a paired person never observed there does not. Revocation, wrong Binding, another Bot, and retention/purge changes affect the result appropriately without leaking another scope's records.
  • In the real Bot sidebar, the Human can inspect the approved person, role, current scope, and existing conversation state used by the demonstration; reuse those surfaces rather than adding a competing directory editor.
  • Through the public service and real Messaging/model path, test bounded queries, pagination, current role/revocation, unobserved people, shared-source authorization, and retention coverage. No private implementation or schema-mirroring tests are required.
  • Run the full isolated Lark acceptance: create ordinary role → unknown group mention with zero model starts → real sidebar approval → fixed re-ask notice → fresh real model reply with trusted identity → role-governed question using the on-demand current-permission Tool → real directory question/answer → revoke → next mention with zero model starts.
  • Retain runnable steps and sanitized UI/Session/lifecycle evidence, then obtain and record Human feedback on this full first slice before expanding management controls or open-group policies. Automated tests or click acknowledgements alone do not complete the acceptance gate.
  • Document that query eligibility does not restrict who sees a group reply, prompt policy does not enforce arbitrary Shell resource ACLs, and the observed-person view is not a platform membership sync.

Blocked by

#1373: Lark ordinary roles and reviewed automatic conversation pairing.

Activity

  1. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:messagingMessaging module and external providers
    scope:tracerHuman-testable implementation slice
    on Oct 10, 2026
  2. DoodleBears commented on Oct 10, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76 (not a DSH Session)
    • Issue scope: the three Bot-scoped read-only directories and complete first Lark-flow Human feedback, using Lark tracer: ordinary roles and reviewed automatic conversation pairing #1373 current-permission lookup and existing checked replies.
    • Branch: codex/1374-im-readonly-directories
    • Started: 2026-10-10 20:45 UTC
    • State: active

    Rechecked the live issue: no other claim/comment or implementation PR. Native #1373 blocker remains open; parent PR #1377 is unmerged. The Human authorized continuing #1374 after its CI; current parent-head CI passed. This is a dependent worktree/stack, not a removal of the native dependency or merge authorization. #1375/#1376 remain gated on the full first-flow Human feedback. The existing exclusive QA1 receiver will be handed between exact isolated Hosts, never run concurrently.

  3. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    in-progressHeld by an agent session; see Claim comment for who
    on Oct 10, 2026
  4. DoodleBears commented on Oct 10, 2026

    @DoodleBears
    ContributorAuthor

    #1374 — real Lark first-flow evidence

    Task: codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; claim; stacked PR #1379, head 8a3151e4, parent #1377.

    2026-10-10 21:00–21:04 UTC: T3 collaborative browser operated the real Lark QA1 App BotHarness Inline Setup QA #1111 and the isolated Host on port 31983. The Human had explicitly stopped the prior receiver and assigned this exclusive window; the same isolated Profile was reused for #1374, with one qualified Provider Consumer. No production receiver, deployment or App takeover was involved.

    Step Actual behavior Durable / native evidence
    Create ordinary Role Sidebar created Directory colleague, permitting public documentation and authorized read-only IM directory questions; management capabilities empty Current Messaging Role read through the authenticated Host
    Unknown group @ 1374 首次申请,请计算 83×89 received only the fixed pending-review notice Source Events / Inbox Admissions / Assignments / reply Outbox remained 9 / 7 / 0 / 6; no calculation reply
    Review Sidebar selected Directory colleague and approved; Lark returned the fixed re-ask notice Counts remained 9 / 7 / 0 / 6; earlier request was not replayed
    Fresh question New native group @ 97×101 received 9797 through the original checked reply route Real native model turn and Lark reply
    Role-governed directory question Current requester permission lookup preceded all three read-only directory queries Native bridge_sender_permissions returned Directory colleague, policy revision 1, fresh query time; no opaque approval interruption
    Three directories Current people: 1; known conversations: 2 (DM + group, allowed); observed paired people in this group: 1 Native bridge_directory results at 21:02:12 UTC, no Tool errors; observed coverage incomplete, currentPlatformMembership=false, 4 retained sources scanned, scan limit 1000, not truncated
    Visible answer Lark displayed all three lists, current role, configured conversation states, observation times, and an explicit statement that the last list is neither complete nor current group membership Actual platform answer, not a fixture or direct database injection
    Revoke + next @ Sidebar revoked; new group @ 103×107 received only another fixed pending-review notice Counts remained 11 / 9 / 0 / 8, native Session stayed 183 rows / 9 turns; no new model turn or calculation reply

    The two admitted new questions are the fresh calculation and directory question. Directory reads do not create Role, pairing, Grant, target, send or impersonation authority. Their normal answer uses the already authorized original reply route. Natural-language Role rules remain accepted prompt behavior rather than arbitrary resource isolation.

    Local validation: lint, format, strict typecheck, bilingual release checks and build pass. The two public directory scenarios pass; the combined targeted run passed 86 tests and timed out one existing ordinary-group test, which passed alone. Current-head full Linux CI passed lint, formatting, typecheck, the full test suite, build and committed bundle checks. Parent #1377 current-head full CI passed.

    Human accepted the complete first-flow interaction and directory results in this thread, and explicitly requested continuing #1375/#1376 after current-head CI passes. The Human-feedback gate is satisfied; current-head CI and the native delivery dependencies remain. Keep the native #1373 dependency until its delivery is completed. No merge or deployment authorized by these checks.

    Private platform identity/chat captures and native logs remain machine-local. Reproduction: open the isolated Host and QA1 test group; create/select an ordinary Role, request pairing with a verified native @, approve in Bot DM sidebar, send a fresh question, ask for all three directories, revoke and retry. Reuse the exclusive receiver window; do not start a second Consumer.

  5. 7 remaining items

  6. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — UI revision / dependency evidence handoff

  7. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — compact UI / audit-time revision handed off

  8. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — approved stack integration

    • Task: codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; state: active.
    • Scope: resume this same task after Human approval; integrate current main through the reviewed parent stack, verify final heads, merge in dependency order and record completion. Live claims/latest outcomes identify only this task. Existing behavior and accepted real QA remain unchanged; no receiver/deployment change.
  9. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 11, 2026
  10. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — completed. Task codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76. PR #1379 merged into main at cf4a9b7 from exact head 213a031; refreshed full CI passed: https://github.com/BotHarness/DeepSeekBot/actions/runs/38117281983 . The Human accepted the complete real Lark first flow, current-permission lookup, all three scoped read-only directories and revocation, and authorized merge. The native #1373 prerequisite is now closed; #1375/#1376 Human-feedback gate is fulfilled, not bypassed. CodeRabbit previously skipped this stacked base; that is not an independent review. No deployment or receiver restart.

  11. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    in-progressHeld by an agent session; see Claim comment for who
    on Oct 11, 2026
  12. moved this from Todo to Done in Roadmapon Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:fullstackEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions