Skip to content

Bot Attention: causal aggregation, escalation and recovery acceptance #47

Open

Description

@DoodleBears

Code audit — 2026-10-08

Checked current main 006c0fa3d3cb690b1954338116f053c62620fdb6. Keep open; this issue is partially delivered, not a new implementation of the already-working Inbox/wake baseline.

Additional delivered acceptance since the earlier reconciliation:

  • Assignment report/Lifecycle Notice provenance and causal wake coalescing have integration coverage in packages/core/test/assignment-collaboration.test.ts (retains two causally linked sources without a second completed wake).
  • Assignment strong unresolved blockers survive weaker waiting/progress reports, retain their exact Human reply target, and clear only through the matching reply; all original report sources remain independently queryable (retains the escalated blocker and exact Human reply target after weaker reports). This satisfies that Assignment-specific part, not generic cross-source Attention escalation.
  • runtime/attention.ts exposes canonical Admission status, exact Assignment/report/lifecycle references, schedules and external source navigation. Existing policy/harvest and restart slices are delivered.

Still not evidenced as complete: a generic durable causal Attention grouping/revision-decision contract across source classes; typed recovery/unknown-outcome/dependency-drift Attention causes with exact source navigation; end-to-end restart/interruption/replay acceptance for those remaining contracts. Outbox unknown-outcome is implemented in Messaging, but is not itself the typed Attention projection required here.

No closure: preserve the remaining checklist below, interpreting Assignment-specific causal/escalation items as delivered rather than new work. #194 owns that Assignment-specific acceptance.

Remaining outcome — reconciled 2026-09-30

Feature Project: https://github.com/orgs/BotHarness/projects/3. Existing active claim records remain authoritative for their recorded slices.

Delivered baseline

These are implementation facts with their own issue/PR evidence; they are not fresh tasks in this issue.

Remaining scope

  • Durable causal grouping of related Attention without erasing the underlying source provenance.
  • Revision escalation and strong unresolved causes that cannot be silently overwritten by weaker/later information.
  • Typed recovery/unknown-outcome/dependency-drift causes and their source references.
  • Restart, interruption and replay acceptance across policy snapshot, ready-set delivery and truthful handled/repair states.

#194 owns Assignment-specific report/Lifecycle Notice causal and escalation acceptance. #152 owns remaining Bot Inbox presentation. Human Inbox specification and actions are #126/#546–#553; it remains a separate projection. External provider contracts are #46/#48/#117/#12.

Remaining acceptance

  • Related source facts retain independent provenance while a causal Attention group avoids duplicate wake.
  • Revision escalation preserves unresolved strong causes and records the decision used for delivery.
  • Recovery and dependency-drift paths have bounded, typed facts and exact navigation references.
  • Restart/replay neither loses pending Attention nor duplicates successful handling/wake.
  • Failed/interrupted turns recover truthful states; Human viewing is never Bot observation.
  • Existing immediate/digest/mentions/silent policy and harvest regressions continue to pass.

Historical umbrella #30 is retired. Broad #81 completion does not describe the already-delivered policy/harvest baseline; retain references to the exact shared runtime seam required by a remaining slice.

Historical scope before 2026-09-30 reconciliation (superseded where inconsistent)

What to build

在 #46 Messaging contracts 与 #81 Assignment Runtime 上实现 PersonaBot 的 Bot Inbox、Wake/Delivery、Orchestrator coordination,以及可被 Human Inbox 消费的 durable Attention facts。不再实现独立 peer relay bus、第二套 Session lifecycle,也不在本票实现统一 Human Inbox aggregate UI。

Scope

Acceptance criteria

  • restart 后从 Messaging/ownership/DSH facts 重建,既不丢 Attention,也不重复 wake。
  • observation 只在 actionable content/summary 进入 Orchestrator context 或 explicit read 时成立。
  • immediate/digest/silent 与 revision escalation 有可重复 integration tests。
  • terminal Assignment Report 与 Host Lifecycle Notice provenance 分离,共享 causal Attention 时最多 wake 一次。
  • typed Attention facts 能被 Spec: Human Inbox unread, personal attention and actions #126 查询,并保留 Channel/PersonaBot/Session/Assignment source references。
  • recovery mode、Archived PersonaBot 与 dependency drift 全部关闭新的 admission、wake 与 execution paths。
  • 本票没有第二个 Human Inbox store、全局 badge total 或 aggregate UI。

Blocked by

Related


Consolidation from #75 — typed recovery presentation contract (2026-10-25)

This preserves #75's unfinished recovery breadth within this issue's existing observability/reconciliation scope. It does not reopen completed runtime foundations, assign a new owner, bypass any active claim, or authorize a new runtime module. UI geometry/accessibility acceptance is tracked under #2219 (75-A/B).

Activity

  1. added this to the v1.1 milestone on Sep 18, 2026
  2. added and removed
    needs-triageMaintainer needs to evaluate this issue
    on Sep 19, 2026
  3. changed the title [-]v1.1: Bot Inbox 与 Orchestrator(准入/触发、Human Inbox、#6617 实测)[/-] [+]v1.1: Bot Inbox / Orchestrator coordination / Human Inbox[/+] on Sep 19, 2026
  4. 59 remaining items

  5. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf43
    • State: completed for this bounded Grant attention slice
    • Result: PR #336 merged as c99db9f09d3b9632554b82481eebaf64e5f2016c. Bot Workspace Grant requests now appear as Human Inbox actions, open the exact DM card, and clear only after a committed reply references the validated active Grant. Historical localized replies remain readable; new prefix-only replies cannot masquerade as approval.
    • Verification: CodeRabbit reviewed the final commit with no new actionable comments; 1040 tests on the initial head, 47 focused tests and typecheck after the final case-sensitive review fix, plus build/lint/format and real isolated DSH + DeepSeek folder authorization flow.
    • Remaining scope: causal aggregation/revision escalation and other typed recovery causes remain under Bot Attention: causal aggregation, escalation and recovery acceptance #47/Spec: Human Inbox unread, personal attention and actions #126; these issues stay open.
  6. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf43 (not a DSH Session)
    • Issue scope: narrow Bot Attention: causal aggregation, escalation and recovery acceptance #47 archived-recipient admission gate. Ordinary Group messages must remain committed and available in Channel history while a paused/archived PersonaBot receives no new canonical Inbox Admission or wake; active peers remain independent. Reuse the existing Messaging transaction, focused integration, and isolated DSH verification.
    • Branch: codex/47-archived-admission
    • State: active
  7. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf43
    • State: completed for this archived-recipient safety slice
    • Result: PR #342 merged as 87d1cd6f645962318de68d3ad77dda71cd7bc0ce. At the canonical Messaging commit, archived PersonaBots gain no new Inbox Admission; Group history and independent active-peer Admissions still commit. Resume only admits later messages.
    • Verification: CodeRabbit reviewed the final head with no actionable comments; 1,065 full-suite tests, typecheck, lint, build, bilingual ledger and changed-file formatting passed. Isolated DSH UI/RPC QA confirmed 0 Admissions for the archived Bot, 1 after resume, 2 for the active peer, and both messages in Channel history.
    • Remaining scope: Bot Attention: causal aggregation, escalation and recovery acceptance #47 remains open for the broader typed recovery, causal aggregation, and Lifecycle Notice acceptance beyond this goal's delivered wake/Inbox tracers.
  8. changed the title [-]v1.1: Bot Inbox / Orchestrator wake coordination / Attention facts[/-] [+]Bot Attention: causal aggregation, escalation and recovery acceptance[/+] on Sep 30, 2026
  9. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Code audit — 2026-10-08

    Checked current main 006c0fa3d3cb690b1954338116f053c62620fdb6. Keep open; this issue is partially delivered, not a new implementation of the already-working Inbox/wake baseline.

    Additional delivered acceptance since the earlier reconciliation:

    • Assignment report/Lifecycle Notice provenance and causal wake coalescing have integration coverage in packages/core/test/assignment-collaboration.test.ts (retains two causally linked sources without a second completed wake).
    • Assignment strong unresolved blockers survive weaker waiting/progress reports, retain their exact Human reply target, and clear only through the matching reply; all original report sources remain independently queryable (retains the escalated blocker and exact Human reply target after weaker reports). This satisfies that Assignment-specific part, not generic cross-source Attention escalation.
    • runtime/attention.ts exposes canonical Admission status, exact Assignment/report/lifecycle references, schedules and external source navigation. Existing policy/harvest and restart slices are delivered.

    Still not evidenced as complete: a generic durable causal Attention grouping/revision-decision contract across source classes; typed recovery/unknown-outcome/dependency-drift Attention causes with exact source navigation; end-to-end restart/interruption/replay acceptance for those remaining contracts. Outbox unknown-outcome is implemented in Messaging, but is not itself the typed Attention projection required here.

    No closure: preserve the remaining checklist below, interpreting Assignment-specific causal/escalation items as delivered rather than new work. #194 owns that Assignment-specific acceptance.

  10. removed
    V1.1Milestone v1.1; mirrors the GitHub milestone
    on Oct 24, 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

    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDsarea:backendHost-side implementationfeature:assignmentOrchestrator and Assignment collaborationfeature:inboxBot Inbox and Human Inbox attentionscope:foundationFoundational authority, runtime, or infrastructurewayfinder:taskWayfinder task ticket

    Type

    No type

    Projects

    • Status
      Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions