Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Description
Parent
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.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 10, 2026
Agent work claim
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session)codex/1374-im-readonly-directoriesRechecked 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.
DoodleBears commentedon Oct 10, 2026
#1374 — real Lark first-flow evidence
Task:
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; claim; stacked PR #1379, head8a3151e4, 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.
1374 首次申请,请计算 83×89received only the fixed pending-review notice97×101received 9797 through the original checked reply routebridge_sender_permissionsreturned Directory colleague, policy revision 1, fresh query time; no opaque approval interruptionbridge_directoryresults at 21:02:12 UTC, no Tool errors; observed coverage incomplete,currentPlatformMembership=false, 4 retained sources scanned, scan limit 1000, not truncated103×107received only another fixed pending-review noticeThe 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.
7 remaining items
feat(messaging): expose scoped read-only IM directories
feat(messaging): expose scoped read-only IM directories
DoodleBears commentedon Oct 11, 2026
Agent work outcome — UI revision / dependency evidence handoff
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; state: handed-off.fce74d2f.feat(messaging): expose scoped read-only IM directories
feat(messaging): expose scoped read-only IM directories
DoodleBears commentedon Oct 11, 2026
Agent work outcome — compact UI / audit-time revision handed off
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; state: handed-off. Same task/claim, no other owner's work taken over.7de9e58a.DoodleBears commentedon Oct 11, 2026
Agent work claim — approved stack integration
Merge reviewed parent integration into IM directories
DoodleBears commentedon Oct 11, 2026
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.