Skip to content

v0.1.7-rc2

Pre-release
Pre-release

Choose a tag to compare

@kuun993 kuun993 released this 26 Sep 09:55

Fixes for the durable session logs the hosted drivers write. No API change and no peer-range change: the union stays >=0.1.5-rc.1 <0.1.6-0 || >=0.1.7-rc.1 <0.1.8-0, so users on either line are unaffected.

Session V4 log correctness

A hosted engine's session log is authored by this plugin, and Session V4 validates its relationships on every load -- so one malformed event makes a whole session unopenable rather than merely untidy. Three writers got that wrong:

  • Projected tool-call mismatch (all four drivers). The assistant/message tool-call block kept the engine's spelling (Bash, Read, command_execution) while the tool/call event carried the projected dsh spelling (bash, read); V4 requires them byte-identical. Measured on a real log: 87 of 102 calls disagreed, all on name. Each driver now normalizes once and feeds the same values to both writers.
  • Duplicate tool/result (claude and pi). The Claude Agent SDK delivers the same result in two user messages, and Pi reports every execution twice (tool_execution_end, then again in turn_end.toolResults); neither driver de-duplicated, so a second result arrived for an already-settled call and V4 rejected it as has no advertised tool lifecycle. One real log had 269 doubled calls. Both drivers now keep a per-step settled-call set; kimi and codex were audited and need nothing.

Chat turn-status row

  • The 0.1.7 row is a button[data-turn-process] that stays on screen after its turn ends, one per turn, so a session-level mid-turn gate alone re-painted every finished row whenever a later turn ran. The row selector is now button[data-turn-process]:disabled [class$="_label"] -- :disabled is ui-chat's "this turn cannot be collapsed", true only for the live row.

Repair for logs already written

scripts/repair-session-logs.mjs (repo-only, not shipped) repairs the artifacts older builds produced, on v3 and v4 logs, and verifies itself against the harness's real migration and V4 validation. On the machine it was written for it repaired 30 v3 + 3 v4 logs, including a 2 221-event session whose 269 duplicated results are gone.