Skip to content

[Product] Add correlated handoff receipts and complete attention state #135

Description

@veil-chow-fyaic

Problem

Cross-session delivery is hard to operate safely when a caller cannot correlate
one submission with its native turn or inspect the state of every watched
target. Community reports describe messages reported as failed after delivery,
missing target turn IDs, incomplete wait results, and repeated polling after a
terminal state was already observable.

ThreadMesh already separates durable receipt, receiver admission,
verification, and authorization. The missing product surface is one bounded,
operator-visible receipt and state vector that makes those distinctions usable
without starting another model turn.

Outcome

Every handoff has stable correlation identifiers and an exactly-once,
queryable attention state. An unknown external outcome is visible and is never
blindly retried.

Acceptance criteria

  • Return stable handoff, submission, adapter receipt, and native-turn
    correlation identifiers when the harness exposes them.
  • Represent queued, offered, admitted, completed, failed, and unknown states
    separately; delivery never implies verification or dependency unlock.
  • Return every watched target exactly once with a cursor or revision, including
    idle, terminal, deferred, and unknown targets.
  • Let an authorized operator inspect bounded source, target, routing reason,
    requested delivery mode, receiver disposition, and resulting state without a
    model turn.
  • Rebuild the same state from SQLite after restart; do not trust a summary
    boolean or UI-only notification.
  • Keep outcome-unknown attempts reconciliation-only and reject blind retry.
  • Export a bounded JSON view suitable for the [M5] Demonstrate a real Codex implementation-review-fix loop #91 evidence bundle and the [M4] Validate the integration kit with an independent harness author #79
    operator challenge without raw prompts, paths, credentials, or task IDs.

Order and non-goals

This is P1 after the network-valid #91 traversal unless measured baseline data
shows that missing state is the direct cause of polling. It must reuse the
existing coordinator and inspector. It is not a new scheduler, event bus, or
project orchestrator.

Community evidence

Related ThreadMesh gates: #79, #91.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestimplementationReference runtime, SDK, CLI, inspector, or testsusabilityFirst-run, documentation, or time-to-value friction

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions