You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ All notable changes follow Semantic Versioning.
4
4
5
5
## Unreleased
6
6
7
+
- Fixed ZCode CLI 0.16.3 conversation progress compatibility: bounded initial, online-overflow, and recovery snapshots now establish silent sequence baselines; all five production delta operations are structurally accepted; and only validated tool/turn rows can emit bounded public progress. Online deltas require the exact exclusive baseline, and any overlap or ordinal/sequence gap fences further online progress until an authoritative snapshot or a recovery delta covering the trusted sequence resets it. Online frame state and watermarks now commit transactionally after asynchronous descriptions settle, so ignored frames cannot leak later tool summaries. Structurally accepted zero-event frames remain diagnostic-only and no longer suppress or stop snapshot fallback; only a frame with bounded public semantic progress establishes online health. Snapshot history, state patches, row text deltas, and removed-row content are never rendered, while fragments remain unsupported and fall back through the existing observational progress path.
7
8
- Fixed terminal ZCode failure handling so failures are no longer replaced by `ZCODE_RESULT_MISSING`: failed and cancelled jobs remain queryable through `$zcode:result`, stored errors appear in result and status output, and natural-language result references without an ID select the latest finished owned job. This does not repair upstream provider SSE or network failures.
8
9
- Added an instance-bound Rescue launcher rendered by the owned parent hook, so Root and child reuse one exact plugin-instance command instead of constructing companion paths. Installed and source-development namespaces remain intentionally isolated; `source-session-unproven` and unsafe-launcher failures are terminal with no setup retry or cross-instance redirect. Existing data locations remain unchanged, while the managed Role digest requires the normal owned upgrade through `$zcode:setup`.
9
10
- Added exact stopped-child Rescue continuation: Root privately prepares the next bound turn and follows up the same stopped child, which reuses `invoke-prepared rescue` with no second `SubagentStart`; fresh work still creates a new child.
**Goal:** Complete PR #36 so it fixes both the ZCode 0.16.3 conversation-frame incompatibility and the incident-specific fallback/state-integrity failures.
4
+
5
+
**Constraints:** Preserve bounded parsing, sequence/recovery fencing, source/marketplace byte identity, and existing lifecycle behavior. A structurally accepted online frame is not semantically healthy until it emits at least one public progress event.
6
+
7
+
## Task 1: Make online frame application transactional
1. Add a regression test where an online frame mutates a tool state, then waits on an async path description while a gap/overflow is marked. Recover and complete the same tool; assert data from the ignored frame is never emitted and its watermark was not committed.
15
+
2. Run the focused test and confirm it fails for the state leak.
16
+
3. Stage online-frame row/tool state, public events, terminal state, and watermarks locally. Commit them only after all async descriptions finish and the frame is still admissible.
17
+
4. Copy the implementation to the marketplace mirror and verify byte identity.
18
+
5. Run `node --test tests/conversation-progress.test.mjs`.
19
+
20
+
## Task 2: Keep fallback active until semantic online progress exists
1. Reverse the zero-event expectations: structurally accepted empty online frames still increment diagnostics but neither clean up an active snapshot fallback nor block compatibility-boundary activation.
29
+
2. Add an incident-shaped regression: repeated sequence/row-shape rejects activate fallback; interleaved accepted empty online frames preserve heartbeat snapshot reads; the first nonempty online event exits fallback exactly once; later empty frames do not regress state.
30
+
3. Run focused tests and confirm they fail before implementation.
31
+
4. Track semantic online health separately from structural acceptance and use it for fallback activation/cleanup.
32
+
5. Copy the implementation to the marketplace mirror and verify byte identity.
33
+
6. Run `node --test tests/progress.test.mjs tests/integration/companion.test.mjs`.
34
+
35
+
## Task 3: Align the design contract and changelog
Copy file name to clipboardExpand all lines: marketplace/plugins/zcode/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ All notable changes follow Semantic Versioning.
4
4
5
5
## Unreleased
6
6
7
+
- Fixed ZCode CLI 0.16.3 conversation progress compatibility: bounded initial, online-overflow, and recovery snapshots now establish silent sequence baselines; all five production delta operations are structurally accepted; and only validated tool/turn rows can emit bounded public progress. Online deltas require the exact exclusive baseline, and any overlap or ordinal/sequence gap fences further online progress until an authoritative snapshot or a recovery delta covering the trusted sequence resets it. Online frame state and watermarks now commit transactionally after asynchronous descriptions settle, so ignored frames cannot leak later tool summaries. Structurally accepted zero-event frames remain diagnostic-only and no longer suppress or stop snapshot fallback; only a frame with bounded public semantic progress establishes online health. Snapshot history, state patches, row text deltas, and removed-row content are never rendered, while fragments remain unsupported and fall back through the existing observational progress path.
7
8
- Fixed terminal ZCode failure handling so failures are no longer replaced by `ZCODE_RESULT_MISSING`: failed and cancelled jobs remain queryable through `$zcode:result`, stored errors appear in result and status output, and natural-language result references without an ID select the latest finished owned job. This does not repair upstream provider SSE or network failures.
8
9
- Added an instance-bound Rescue launcher rendered by the owned parent hook, so Root and child reuse one exact plugin-instance command instead of constructing companion paths. Installed and source-development namespaces remain intentionally isolated; `source-session-unproven` and unsafe-launcher failures are terminal with no setup retry or cross-instance redirect. Existing data locations remain unchanged, while the managed Role digest requires the normal owned upgrade through `$zcode:setup`.
9
10
- Added exact stopped-child Rescue continuation: Root privately prepares the next bound turn and follows up the same stopped child, which reuses `invoke-prepared rescue` with no second `SubagentStart`; fresh work still creates a new child.
0 commit comments