Repository navigation
Description
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.tsexposes 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
- Hub: Bot attention policy & turn harvest #362 and Slice: split wake runners by Source class #363–Slice: Bot attention-policy tools, Human override, wake visibility #370: source-class wake runners, Channel attention presets, durable policy, Human/Bot controls and shared audit, ready-set wake coalescing, bounded turn harvest/consumption and wake visibility.
- Exclude archived Bots from new Channel admissions (#47) #342: archived recipients receive no new canonical Admission; Channel history and active peers remain independent.
- Existing Bot Inbox Admission, handling/ignore/repair queries and several Human action projections are already implemented.
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
- Bot Inbox:Admission/Attention facts,pending/observed/deferred/ignored/handled 与 revision coalescing。
- Wake delivery:把 Wake Policy 映射到 Spike:验证 BotWork 所需 DSH Agent / SessionPersistence / Subagent seams #77 验证的 safe-step / next-turn / idle-wake seam;普通消息不 cancel running step。
- Orchestrator coordination:每 PersonaBot 最多一个 active root;replacement 继承 PersonaBot-scoped Assignment authority。
- Assignment coordination:消费 Foundation:Assignment Runtime / Assignment Directory / Orchestrator tools #81 的 list/inspect/create/request/stop contracts;terminal Assignment Report 与 Host Lifecycle Notice 保持不同 facts。
- Attention source facts:waiting-human、unknown-outcome、needs-repair、grant/rebind/readiness 等 typed causes,供 Spec: Human Inbox unread, personal attention and actions #126 聚合。
- Queries 提供 Bot-scoped pending attention 与 stable source references;跨 Channel + PersonaBot 的 Human Inbox filtering/sorting/UI 由 Spec: Human Inbox unread, personal attention and actions #126 拥有。
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
- Foundation:operational database owner / writer lease / schema generation #79 operational database foundation(已完成)。
- Foundation:Assignment Runtime / Assignment Directory / Orchestrator tools #81 Assignment Runtime。
Related
- Spec: Human Inbox unread, personal attention and actions #126 Human Inbox aggregate projection/query/UI。
- 设计:PersonaBot navigation / Assignments / recovery 的 DSH-native UI #75 PersonaBot navigation / Assignments / recovery UI。
- 架构地基:显式 Session 归属与 deep modules(GrokBot-on-DSH 对齐) #71 architecture foundation。
Consolidation from #75 — typed recovery presentation contract (2026-10-25)
- 75-I: identify the existing owner and typed read-model facts for grant/capability unavailable or revoked, Unknown Outcome,
needs-repair, dependency drift and rebind readiness. Preserve source identity, causality, revision and restart behavior; absence of a capability or uncertain outcome must not be presented as success or trigger an automatic retry/rebind. “Service Grant” in the old ticket is historical application vocabulary, not a new DSH primitive or authorization store. - 75-J: make those facts consumable by the current Memory (Panel Plugins T3: Memory 文件 Panel 与持续工作树观测 #2224), Sessions (Panel Plugins T4: Sessions Panel 与 Channel 绑定 #2225) and Grant surfaces (Spec: 原生 Panel Plugins、公开能力与事件、绑定及多实例 #2219, 75-K–M; completed policy baseline [Bug] 工作区写权限授权链路失效:UI 批准后 orchestrator_write 不落盘;grant-write-set 在线/离线均不可用(1.3.1) #2080), with a testable recovery/refusal path and bounded observation. Verify the consumer state matrix with real owner facts, including reconnect/restart and unavailable dependencies; keep display/fixtures separate from durable authority and existing Human Inbox responsibilities.
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).
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity
[-]v1.1: Bot Inbox 与 Orchestrator(准入/触发、Human Inbox、#6617 实测)[/-][+]v1.1: Bot Inbox / Orchestrator coordination / Human Inbox[/+]59 remaining items
fix: keep uppercase Grant replies from resolving Inbox actions
feat: show Workspace Grant requests in Human Inbox (#336)
DoodleBears commentedon Sep 26, 2026
Agent work outcome
codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf43c99db9f09d3b9632554b82481eebaf64e5f2016c. 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.DoodleBears commentedon Sep 26, 2026
Agent work claim
codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf43(not a DSH Session)codex/47-archived-admissiondocs: clarify legacy Grant reply resolution
Exclude archived Bots from new Channel admissions (#47) (#342)
DoodleBears commentedon Sep 26, 2026
Agent work outcome
codex/local/01a0d42c-f508-7e83-8d7a-110ac4eedf4387d1cd6f645962318de68d3ad77dda71cd7bc0ce. 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.[-]v1.1: Bot Inbox / Orchestrator wake coordination / Attention facts[/-][+]Bot Attention: causal aggregation, escalation and recovery acceptance[/+]DoodleBears commentedon Oct 8, 2026
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:
packages/core/test/assignment-collaboration.test.ts(retains two causally linked sources without a second completed wake).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.tsexposes 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-outcomeis 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.
fix(media): push attachment changes live and keep phone caches in step