Files
hermes-agent/agent
John Paul Soliva 63c34ec442 fix(compression): the repair counts every durable row it retires without an id
Two more shapes reached the in-place commit with rows nothing named:

- Two killed tool calls in a row. The repair merges the two assistant rows,
  which pops the persist marker, and then drops the merged dict. The drop
  was gated on that marker, so neither row was retired and carried
  messages were recalled twice on every reload shape.
- Two assistant rows in a row on a reload without row ids. The merged dict
  equals neither row and has no marker, so the commit read it as a turn
  that was never persisted: the gateway hid a summarized message and the
  CLI restore recalled the oldest carried message twice.

A dropped dict's row ids are now retired whatever its marker says, as
assistant turn as well as a dropped one, and a dict that carries a count
is known to have been loaded. The key is renamed _unnamed_durable_rows to
say what it counts.

(cherry picked from commit 9bf1653471ecceed23794f09f7659986c43b7404)
(cherry picked from commit 7f4c8f540ea035d68a8cb1696b5da39deeba5f37)
2026-10-03 18:17:35 +05:30
..
…