Files
pad/plugin
xarmian 70f7c0c15c fix(watchevents): a resume from a cursor inside an abandoned id space is refused on every arm, instead of being served the new space's ids or told it is caught up (BUG-2743, BUG-2728) (#1518)
* fix(watchevents): a resume from a cursor inside an abandoned id space is refused on every arm, instead of being served the new space's ids or told it is caught up (BUG-2743, BUG-2728)

Every arm that detects a watch-stream id-space restart (the epoch arm and
both counter-backward arms) now records the old space's high-water mark,
and replaySince refuses any cursor at or below it. The boundary is never
cleared: climbing past the old peak does not make a cursor below it any
less ambiguous.

Claude-Session: https://claude.ai/code/session_01A3rXV7GDLAhBe9mL4V6z2m

* docs(BUG-2743): the counter-reset arm's prose states the boundary's cost and which id the resume check compares (codex round 1)

Claude-Session: https://claude.ai/code/session_01A3rXV7GDLAhBe9mL4V6z2m

* fix(watch): pad watch --stream prints a PAD (resync) line on sync_required, so the agent reading it learns it missed notifications instead of carrying on (BUG-2743 follow-through)

Clearing the cursor was the process's whole response; the consumer of its
stdout could not see a cursor and was never told. The line goes through the
same consent gate as a notification, and repeats with no notification
between them are folded into one.

Claude-Session: https://claude.ai/code/session_01A3rXV7GDLAhBe9mL4V6z2m

* docs(plugin): tell the agent what a PAD (resync) monitor line means and what to do with it (BUG-2743 follow-through)

Claude-Session: https://claude.ai/code/session_01A3rXV7GDLAhBe9mL4V6z2m

* docs(BUG-2743): the resync line says the stream MAY have missed notifications, since sync_required means the span is unvouched, not certainly lossy (codex round 3)

Claude-Session: https://claude.ai/code/session_01A3rXV7GDLAhBe9mL4V6z2m
2026-09-24 23:40:26 -04:00
..