v0.51.76 — Release AZ
Stage-369: 4-PR safe-lane batch.
Composition
Added
- PR #2195 by @Michaelyklam (refs #692) — OpenRouter cost history backend. Process-local lock + reset-aware delta computation.
Fixed
- PR #2347 by @franksong2702 (fixes #2344) — Preserve live agent timeline across session switches. Snapshot live assistant turn DOM; merge back on return.
- PR #2393 by @Michaelyklam (refs #2313) — Cap live chat stream transports to selected session.
- PR #2396 by @starship-s — Preserve session agents for credential pools (stable cache identity for pool routes).
Maintainer-applied (stage-369)
- Widened brittle
setCompressionUi({source-string assertion intests/test_run_journal_frontend_static.pyto accept either inline-object or hoisted-variable form (PR #2347 hoisted state to share withappendLiveCompressionCard; behavior identical). - Fixed
**PR TBD**placeholder →**PR #2347**in CHANGELOG (Opus catch).
Verification
- pytest: 5767 passed, 10 skipped, 1 xfailed, 2 xpassed, 8 subtests passed in 144.85s. EXIT=0. Single run, no self-loop (
os.execvguard active). - Opus advisor: SHIP verdict. All 5 risk areas verified (cache identity / dataset.sessionId stamping / SSE transport ordering / cost-snapshot lock / cross-PR boundaries). No further SHOULD-FIX.
- Agent self-verify (unmocked, against production code):
DEFER (follow-up)
- PR #2195
_COST_SNAPSHOT_LOCKis process-local; add file-lock for multi-worker WebUI if/when enabled. - PR #2347
interim_assistantjoins with\n\ninstead of raw concat — UX pass for sessions with many interim outputs. - PR #2347
_thinkingCardHtml(text, open)template duplication — trivial refactor.
Auto-close issues
What's Changed
- v0.51.76 — Release AZ (stage-369: 4-PR safe-lane batch) by @nesquena-hermes in #2400
- Add OpenRouter cost history backend by @Michaelyklam in #2195
- Preserve live agent timeline across session switches by @franksong2702 in #2347
- fix(streaming): preserve session agents for credential pools by @starship-s in #2396
Full Changelog: v0.51.75...v0.51.76