Documentation menu

Observation delivery after settlement

This document defines observation delivery in the current draft. Observations do not carry a generic disposition field.

Resolve the serial interception pipeline before dispatching observations. The hooks/observe notification contains protocolVersion and the resulting effective event, with the same logical event.id and source. There is no generic disposition, decision summary, response receipt, downgrade flag, or /view fallback.

When decision-making short-circuits, each remaining uncalled matching intercept subscription receives this same boundary through hooks/observe. Use its existing content permissions and selections: downgrade grants no additional access. Already-called interceptors get no automatic second copy. Explicit observation subscriptions still receive the final view, including when their backend also owns a called intercept subscription. Track invocation by subscription, not backend.

The host’s settlement controller supplies only accepted effective content. Pending or discarded modifications must not leak into observations; interruption preserves already-accepted changes but immediately ends pending decision requests. Scheduling or processing best-effort observers must not delay interruption or keep interrupted execution alive. Normal hook-call completion includes completion or bounded failure of its owned observation deliveries; no observer work is detached after completion. The host may background the entire call, subject to interception and approval gates. Observers may run in any order and cannot return effects or reopen the decision. Selected authorized uploads must finish before each notification; failed observation transfer never reopens interception.

An observed tool.before remains a proposal, not evidence of execution. Resolved invocation outcomes, including denial, belong to tool.after; other completion and failure boundaries retain their own semantics. There is no invented arbitration or summary for combined internal decisions such as denial and stop.

Observation establishes neither model consumption nor later dispatch. Delivery is one-way and best effort, without acknowledgement, replay, receipt, persistence, or session-wide arrival-order guarantees. Logical item identity remains stable across permission-filtered subscription views.