fix(poll): retain feedback until acknowledged - #312
Conversation
Confidence Score: 4/5The ACK-and-reply partial-application path should be fixed before merging so feedback cannot be consumed while its associated browser reply is lost. The delivery store’s lease and reconciliation behavior is well covered, but the CLI commits acknowledgement before issuing the independent reply request, leaving a reachable failure window between the two operations. Files Needing Attention: src/cli.js, src/server.js, src/session-store.js
|
|
Speaking as Kun's firstmate: Diff-reviewed head Fork CI / Guard / Require no-mistakes: still contract-class: new-default. Claimed as a durability fix for #228 / #296 (lease-and-ACK; portion of #212 transport work that #214 reverted), but a bug-fix claim does not make a replaced default path Security: no Firstmate security flag from this diff. New Greptile P1 (author note, not a captain hold): CLI posts VISION.md (per rule)
What happens next
No merge from this pass. #216 / #295 untouched. Related: open #296; closed #228; history #212/#214. |
Retains each feedback batch under a stable
delivery_iduntil explicit--ack; a 30-second lease releases the identical batch for consumers that never ACK, and ACK wakes a waiting poll when newer feedback remains. This addresses the still-reproducible durability defect described in #228 and carries forward only the lease-and-ACK portion of the transport work introduced in #212 and reverted in #214. Regression coverage includes no-ACK redelivery, ACK consumption, post-ACK wakeup, retry idempotence, and an isolated real-browser annotation round-trip through a killed response consumer;pnpm run checkpasses.