Skip to content

v0.19.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Jul 04:00
df9239e

Lossless Context Management for Hermes: hardens lossless replay and operator diagnostics while completing the WS5 engine decomposition.

Highlights

  • Hardened lossless storage and replay boundaries for externalized payloads, persisted Hermes tool outputs, ignored-message drops, and redacted durable retries.
  • Added stronger storage safety around lifecycle/DAG write serialization, monotonic frontiers, path-contained payloads, ReDoS-safe redaction, wrapped-base64 handling, summary spend limits, and future-schema rollback protection.
  • Expanded operator surfaces with read-only lcm_inspect, JSONL session export import, compression no-op status, compaction telemetry, and benchmark-backed preset validation.
  • Added steady-state hot-path benchmarking and CI-backed ruff linting so release validation catches performance/tooling regressions earlier.
  • Completed and documented the WS5 behaviour-preserving engine decomposition into cohesive mixins and helper modules while keeping the public LCM surface stable.

Changes

  • #295 Add benchmark-backed preset validation
  • #298 Data-safety fixes: GC tombstone, ingest visibility, ignore-drop count, recall order
  • #299 Memoize token counts and skip unchanged metadata commits
  • #300 Serialize lifecycle/DAG writes and keep the frontier monotonic
  • #301 Harden ingest protection: ReDoS-safe redaction, wrapped base64, path containment
  • #302 Add a summary spend guard and a schema-too-new open guard
  • #303 Add a steady-state per-turn hot-path benchmark
  • #304 Reuse precomputed stored-row identities in the store-id map
  • #305 Spike async compaction atomic publish
  • #306 Add JSONL session export import
  • #307 Add read-only LCM inspect tool
  • #308 Recover persisted Hermes tool outputs losslessly
  • #309 Expose compression no-op status
  • #310 Bound ignored session context fallback
  • #311 Hotfix: port missed PR 306 and 308 fixes
  • #312 Use auxiliary usage for bypass checks
  • #313 Fix strict persisted-output replay identity
  • #314 Add a ruff lint configuration and CI gate
  • #315 Harden JSONL import follow-up edge cases
  • #316 Move metadata JSON read/write onto MessageStore
  • #320 Add compaction telemetry (per-conversation snapshot)
  • #322 Harden auxiliary lifecycle edge cases
  • #323 Encapsulate MessageStore connection behind a public accessor
  • #324 Move backup/rotate maintenance ops into maintenance.py (WS5 seam 3)
  • #325 Extract active-context sanitizers into sanitize.py (WS5 seam 2)
  • #326 Drive scalar env config from a declarative field spec (WS5.6)
  • #327 Lift /lcm doctor session-stat scans into MessageStore (WS5.5)
  • #328 Extract Codex OAuth route detection into codex_routing.py (WS5 seam)
  • #329 Extract SQLite lock-contention helpers into sqlite_util.py (WS5 seam)
  • #330 Extract plugin/git runtime-identity helpers into runtime_identity.py (WS5 seam)
  • #331 Extract message tool-call/noise analysis into message_analysis.py (WS5 seam)
  • #332 Extract active-engine registry into engine_registry.py (WS5 seam)
  • #333 Extract placeholder-ledger bookkeeping into a mixin (WS5 Seam 1)
  • #334 Extract the leaf-compaction pipeline into a mixin (WS5 Seam 6)
  • #335 Extract ingest-cursor reconciliation into a mixin (WS5 Seam 4)
  • #336 Document the WS5 engine decomposition and module layout
  • #337 Extract auxiliary-session tracking into a mixin (WS5 Seam 5)
  • #338 Prefer the host's explicit subagent signal over the call-stack frame walk (WS5.7)
  • #339 Encapsulate DAG/lifecycle connections behind a public accessor (WS5.5)

Contributors