@workerdeck/protocol 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -91,10 +91,18 @@ ride through as `sdk_event` rather than breaking older clients.
91
91
  - **A breaking wire change bumps `PROTOCOL_VERSION`.** New client-visible frames also need matching
92
92
  surface in `@workerdeck/client`, or no client can reach them.
93
93
  - **This package owns rules, not just shapes.** `transcriptActivity` is the row-count both the
94
- reducer renders by and the runners report as `activityCount`; `session-list.ts` is the sessions
95
- list view model; `watermarks.ts` is the unread model. They live here because a client that
96
- filtered or counted differently would announce work it is hiding. Change one, change every
97
- consumer — including the Swift mirror in `apps/ios/WorkerDeckKit`.
94
+ reducer renders by and the runners report as `activityCount`; `transcriptContent` is the
95
+ does-it-mutate-items rule behind `conversation_reset`'s replay (the runner skips content below
96
+ the latest reset, and it must skip exactly what the reducer would have cleared — note it is
97
+ broader than `transcriptActivity() > 0`: deltas and tool results count zero rows and still
98
+ mutate items); `session-list.ts` is the sessions list view model; `watermarks.ts` is the unread
99
+ model. They live here because a client that filtered or counted differently would announce work
100
+ it is hiding. Change one, change every consumer — including the Swift mirror in
101
+ `apps/ios/WorkerDeckKit`.
102
+ - **`activityCount` is monotonic across a `conversation_reset`.** It is an unread *cursor*
103
+ diffed against stored monotonic watermarks, not an item count — resetting it to the fresh row
104
+ count would leave every stored mark above it and that session's badge silently dead. After a
105
+ `/clear` it deliberately exceeds the rendered row count.
98
106
  - **`ENGINE_CAPABILITIES` is pinned by identity, and is a *fallback*.** A server that reports its
99
107
  own record wins; this table is what a client uses when talking to one that doesn't. Editing a
100
108
  value here is a cross-client change, not a local one.