Repository navigation
Answer RequestStatusReport2 with a nonce-echoed status report - #718
Conversation
An unsolicited report must leave EchoNonce unset — one carrying a nonce could masquerade as the answer to a correlated request and confirm an idle-marker claim the daemon never attested for. Turn end now also fires an out-of-cycle report, so idleness reaches the server at the edge, not the next 60s tick. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PR Summary by QodoAdd nonce-correlated daemon status reports
AI Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo
1.
|
Only the repeated call needs a note: nothing else distinguishes it from the line above. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The receive seam answers through a null-conditional invoke, so an unwired connection claiming support invites requests it meets with silence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Codex review flow — two P1s. Capability advertised without a live handler — fixed in 4d5407e. The connect payload now reads Falling-edge snapshot — not taking this one. The suggested remedy, carrying the edge's captured state into the queued report, is the exact thing |
Closes kurrent-io/kcap-server#1769 — AI-2379
What & why
The server's durable idle-marker pipeline (the
daemon_attestedwait marker that clears the dashboard's typing indicator) confirms a claim only against a status report echoing its own nonce — and the daemon half of that handshake was never implemented, so every claim died un-confirmed 5s after seeding, for every ACP vendor, every turn. This adds it: aRequestStatusReport2handler that answers with the one report shape carryingEchoNonce, andSupportsCorrelatedStatusReports: trueon connect so the server starts sending the correlated request. The activity clock also fires an out-of-cycle report on a turn's falling edge, cutting indicator latency from the 60s periodic cadence to the server's 30s idle threshold.Where to look
Unsolicited reports (periodic, delivery-triggered, launch-stage) deliberately never carry a nonce — the superseded no-nonce-member pin in
DeliveryTriggeredStatusReportTestsis re-pinned as exactly that claim.OnTurnEndedfires on the falling edge only; a turn start emits nothing of its own (the delivered input already reports).Verification
New
CorrelatedStatusReportTests(5): nonce echoed on request, null when unsolicited, snake_case wire tokens pinned through the source-gen context, falling-edge fires exactly one send, clock edge semantics. Daemon suite 2871 total 0 failed; Core suite 2579 total 0 failed; AOT publish clean of IL3050/IL2026.🤖 Generated with Claude Code