v0.35.1
·
1303 commits
to master
since this release
v0.35.1
Patch release: bug fixes across the transform, historian, and runtime-compatibility surfaces.
Fixes
- Duplicate
tool_useids after a model switch — a regression re-enabled duplicate tool blocks in the served array on the first hard fold after switching models (Anthropic rejected the request withtool_use ids must be unique). Adjacent reduced call/result pairs coalesce unconditionally again, and a serialization-time uniqueness guard now fails loud in tests if any future emitter collides. - Historian could act on historical instructions (#293) — long imperative user messages inside the summarized transcript could pull weaker models into executing the transcript instead of summarizing it. The proven correction framing now stands on every historian run as an instruction-data separation guard, on both the TypeScript and Rust legs, validated empirically on a weak-model harness with an adversarial fixture.
- Raw crash on Bun-only runtimes without
node:sqlite(#291) — runtime detection now falls back toglobalThis.Bunwhen the process surface is trimmed, the SQLite selector reports a clear requirement message instead of a module-not-found crash, anddoctorpreflights the backend with remediation steps (including Docker guidance). - Regenerating the A1 prompt-surface golden broke its consumers (#292, by @iceteaSA) — the export script now derives and emits the hash-baseline section it previously deleted, and golden readers throw on missing section headings instead of silently comparing empty slices.
- Internal agents leaked into Task routing (#285) — hidden Magic Context agents (historian, dreamer, sidekick) are excluded from primary Task tool routing and carry internal descriptions.
- Faster Pi cold start (#286) — the Pi tokenizer is lazy-loaded, keeping plugin import time low.
No database migrations; no configuration changes.