Make automatic lane reports actionable and read-aware

TE
6d ago
+1137-62

Lane reports now lead with their result instead of “turn ended, idle.” Review receipts produce a verdict, a short commit SHA and finding counts; other replies use their first sentence. The body preserves complete lines and every P1/P2 finding's first sentence. Session and commit metadata live in structured details under the existing disclosure.

An authenticated parent that is explicitly waiting for a lane's completion, or reads that completed result through last/history, gets the report archived as read. It adds no duplicate queued task or unread notification. Reads from other sessions do not suppress reports, and a parent turn already running is never cancelled.

Leo (2026-10-31), looking at five “lane report: turn 1 ended, idle” rows: “are these useful or are there ways we can improve it”; after the proposed changes: “build all”.

Prior art: #25366 introduced automatic reports; #25502 and #27868 prevent report-only turns from reporting upward; #28113 groups waiting messages. Their delivery and grouping behavior remains in place. Report identity still comes from daemon-stamped provenance, including turn and state; old report titles remain readable.

Validation: 37 incoming-message parsing tests pass; the structured-payload render regression opens Details and verifies the exact JSON appears once (1 test, 6 assertions). The pre-push static gate passes. Required clippy, panic-ratchet, Rust and web CI verdicts are pending. Standalone verification stopped at test/latency/probe.ts:115 (TS2339: interactionId on PerformanceEventTiming); this file is unchanged from the merge base, and that run did not execute its subsequent tests.

Viewed the after image.

Exact-head gallery evidence: run 41168103435, artifact gallery-advisory-28750-b49fe8042884ff67b24a5bf4d158fd94b7d8c691. The agent-pane.incoming-message#lane-verdict light and dark states show open Details with structured metadata once. These are 840×1040 captures of a 420×520 CSS viewport (2x), with synthetic data. The artifact also contains before/after comparisons for the existing incoming-message states.

Opened lane-report Details, dark, 2x

Opened lane-report Details, light, 2x

The change stays together because report provenance, exact-turn receipt bookkeeping, durable inbox replay and their consumers form one delivery contract. New journal fields are additive and optional when replaying older logs.

Risk: normal. Changes report formatting and authenticated result-read bookkeeping; no settings/default change. Result receipts are bounded per lane and released with the lane; wait subscriptions end when the wait returns, times out or disconnects.
Agent session: agent session