v1.12.0
Strata 1.12.0 is the Strata MVP. A Claude Code session and a Codex session bound to the same scope share judged memory.
What's in it
- Session identity + harness (M1): each MCP connection's session is recorded with its harness (
claude-code/codex), from the client's owninitializehandshake. Verified live on codex-cli 0.153.4 (two concurrent sessions, distinct ids). - Write-back rate as an engine metric (M2):
strata stats writeback [--since] [--json] [--export]. Sessions are recorded at connect, so silent sessions count. Per-harness and overall rows show the raw counts, anacceptedcolumn, andaccounted for(contributed + closed out). - Close-out without hooks (M3, M3b, M3c):
ended_aton disconnect with an idle window; rollover on a reused session id; a nudge from the first read that names both exits. Strict Stop hook on by default (--no-strictto opt out), blocking at most twice, never looping. Fixed: the Claude Code Stop hook runs under a surviving/bin/sh -c, so the hook now walks its ancestors to find its session.mcppinned>=1.28,<1.30(#206). - Binding fix: a scope named via
STRATA_AGENT_SCOPEwith an empty skill now takes itsdefault_skill. Before this, every multi-scope fleet refused to bind. - Quickstart (M6): one path for both harnesses;
strata doctorchecks that thestrataon PATH is the install that registered the hooks (#207); the first-run traps that leave a session memory-blind, in bold; "What the demo shows"; "Out of the MVP".
Evidence
strata-evals results/m4-cross-harness-2026-09-19.md: live cross-harness transfer PASSED both ways (judge qwen/qwen3-235b-a22b-2507 via OpenRouter). The operator rehearsal on 017a629 passed transfer both ways.
Known limits (stated in the README)
- The judge admitted 2 of 72 hard adversarial items in the demo eval (#209); a fix that regressed elsewhere was not merged.
- In the operator rehearsal the judge admitted an irrelevant office note from Codex as context; filtering that kind of junk relies on the agent today (#210).
- Nothing is claimed about the default Claude judge; it wasn't measured.
1.11.0 was never published to PyPI; 1.12.0 is the first PyPI release since 1.10.5 and includes 1.11.0.
The evidence file lives in the strata-evals repository, which is not public yet.
Release PR: #211
Full Changelog: v1.11.0...v1.12.0