Skip to content

Lark tracer: explicit open groups and non-triggering passive context #1376

Closed

Description

@DoodleBears

Parent

#1372

Specification: #1371

What to build

A Human opens a particular otherwise allowed Lark group to visitors from its existing conversation settings. An unpaired person can then address the Bot under the configured mention/wake policy, with no management authority. Closing the exception makes their next intentional request start reviewed pairing again. Separately authorized ordinary group collection can supply unpaired authors' background context to a later eligible request without creating pairing spam or waking the model by filling a batch.

Acceptance criteria

  • Through the existing exact Bot/app conversation row and authenticated service, enable/revoke an explicit open-group exception and show its effect on sender admission. Missing policy, app membership, or a known-conversation directory row never creates the exception implicitly.
  • Unpaired intentional requests in an open group carry trusted visitor/sender provenance without automatic role/permission injection; an on-demand permission lookup identifies no effective pairing and no management power, while replies use the existing checked original reply path. Existing platform reach, Binding readiness, durable block, reception, mention, and Wake Policy checks still win.
  • After the Human removes the exception, an unpaired user's next DM/mention in restricted scope follows the deterministic pairing path with no model work. A person's effective pairing remains scoped independently of the exception.
  • Ordinary collected group text is retained/read only under separate explicit collection authority, does not bulk-create pairing requests, and cannot independently trigger model work or count/time batch thresholds. The scheduling evidence distinguishes eligible requests from passive observations.
  • A later eligible request may read authorized passive context with each author's trusted provenance. Resolve the actual requester's current permissions on demand for role-governed behavior; do not inject every background author's policy or substitute the last/most privileged/quoted author or a union of Tool results. Querying a participant is informational; management authority remains attributed to the actual qualified actor and checked independently by the Host.
  • Shared sources, explicit Bridge/ingest paths, followed threads, and restart recovery preserve this distinction and cannot transfer the open exception or a paired actor's role across Bots/apps.
  • UI copy and the runnable walkthrough explain that passive context can influence a later model turn and consume tokens when read; pairing restricts request initiation, and group responses remain visible to the group. No full-membership or dynamic disclosure-confirmation feature is introduced.
  • Public Messaging/Agent Adapter tests verify visitor admission, no visitor management decision, scope/block precedence, close/reopen transitions, and passive text excluded from wake thresholds, including mixed-author batches. Extend existing conversation/fanout tests rather than building a separate policy simulator.
  • Demonstrate a real Lark group with an unpaired visitor, an approved person, explicit open/closed transitions, and separately opted-in collection through a real Host/sidebar. Retain bounded scheduling/UI evidence; do not take over a production receiver.
  • Update affected living architecture, operational guidance, and bilingual release documentation. No additional Provider, email integration, or generalized resource ACL is added.

Blocked by

#1374: scoped directory and completed first-flow Human acceptance. This is the agreed delivery/feedback gate. slice 3 is not a blocker: visitors have no management capabilities, and the ordinary-role baseline already supplies the required provenance.

Activity

  1. 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: explicit exact Bot/App group visitor admission and separately authorized non-triggering passive context through existing conversation settings, Messaging owner, scheduling and Agent Adapter paths; real isolated Lark QA.
    • Branch: codex/1376-lark-open-groups-passive-context
    • Started: 2026-10-10 21:29 UTC
    • State: active

    Rechecked live body, comments, labels, native blockers/sub-issues and open PRs; no competing implementation claim found. Native #1374 remains open, but its complete first-flow Human acceptance and current-head full CI passed. This task coordinates its own shared Messaging owner edits with #1375, whose real first slice is accepted and submitted as #1387; implementation stacks without merging either parent. Existing other IM owners and production receivers remain untouched. QA1 uses the existing Human-coordinated exclusive receiver window, with only one running Host/Consumer.

  2. 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
  3. DoodleBears commented on Oct 10, 2026

    @DoodleBears
    ContributorAuthor

    #1376 tracer evidence

    Task: codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; state active. Native #1374 gate: Human accepted complete first feedback, current CI passed. Existing #1375 shared owner changes coordinated within this same task and separately accepted; unrelated claims preserved.

    QA1 exclusive window remained on the isolated Host. Console message scope im:message.group_msg:readonly was added to this authorized test App; console confirms published, long connection verified real ordinary traffic. No receiver takeover outside the arranged window.

    Public implementation: explicit current group CAS; visitor has no Role/capabilities; independent passive collection across direct/Bridge/ingest; context has silent durable wake, no count/interval, and cannot schedule a Turn or contribute to paired thresholds. Implicit group policy save previously called inspect on an empty manual target and failed; now reuses existing account-aware inspectGrant. Public reproduction failed before fix and passed after.

    Real group flow: three unpaired ordinary texts, count 2/time 10s, same native 14 Turns before/after; new visitor @ answered 14351 with passive BlueTern31 and current visitor authority. Group closed and restriction verified committed; new @ only created request 88E7893DA0, no model Turn; sidebar role approval only sent fixed re-ask. Fresh @ answered 23707 and current Documentation colleague revision 1, capabilities []. Earlier automation clicked the other simultaneously open modal checkbox; excluded and corrected before the verified close test. Same Human changed states sequentially; public automated tests use distinct authors.

    Human feedback requested on this concrete interaction; pending. Local lint/format/type/build/Release Ledger and focused behavior tests pass. Full Linux CI and PR link follow; no merge/deploy or Done claim.

    PR: #1388 ; commit a271c64; current Human feedback pending, full CI running.

  4. DoodleBears commented on Oct 10, 2026

    @DoodleBears
    ContributorAuthor

    Human acceptance and final restart

    Task codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76: Human explicitly accepted the #1376 real group visitor/passive/closed-group/review/new-question interaction. #1374 native first-flow feedback remains accepted; no dependency or claim was bypassed.

    Same isolated Profile restart on commit a271c64 retained group closed preference revision 2, restricted sender policy revision 9 and approved ordinary Role. Real post-restart new @ returned current paired state / role revision 1 / empty capabilities and 25591. Temporary all-message/count-2/10-second policy was restored to inherited mentions-only reception (group policy revision 2). One exclusive QA1 Consumer; no credentials, other App or production receiver takeover.

    PR #1388 current full CI still running; matched baseline/current real UI screenshots are being prepared with private background masked. No merge/deploy or Done claim.

  5. DoodleBears commented on Oct 10, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — handed off for review

  6. 6 remaining items

  7. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — UI revision / dependency evidence handoff

  8. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

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

  9. 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.
  10. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 11, 2026
  11. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — completed. Task codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76. PR #1388 merged into main at the linked PR merge commit from exact head 21cc9d1; refreshed full CI passed: https://github.com/BotHarness/DeepSeekBot/actions/runs/38117299115 . The Human accepted real unpaired passive text exceeding thresholds without model starts, explicit open-group visitor reply/context, close-group request-only behavior, fixed re-ask after approval, fresh current-Role reply and restart, then authorized merge. Native #1374 and its complete Human-feedback gate are fulfilled. CodeRabbit skipped the stacked base and is not a new independent review. No deployment/receiver restart; no full membership synchronization or arbitrary resource isolation is claimed.

  12. moved this from Todo to Done in Roadmapon Oct 11, 2026
  13. 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
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