v0.10.0 - Codex E2E reliability hardening
v0.10.0 - Codex E2E reliability hardening
Minor release from v0.9.3 to v0.10.0.
This release focuses on making long-running Symphony boards easier to trust:
workers get better prompt context, operators get clearer cost and dependency
signals, workspace reuse is guarded before hooks run, and the 9999 web app no
longer fails on YAML timestamp frontmatter in issue details.
Highlights
- Stage-local turn watchdogs: workflows can set
agent.max_state_turns_by_stateso reasoning-heavyIn Progresswork and
stricterVerify/Learngates can use different same-state turn limits. - Token attention without surprise stops: productive zero-token reports and
configuredagent.token_attention_threshold_by_statevalues now surface as
operator attention, while high token use remains telemetry unless an explicit
hard cap is configured. - Stage-aware prompt context compaction:
agent.compact_issue_context: true
preserves user scope, the newest evidence/failure context, and a full-ticket
path while dropping repeated history from worker prompts. Measured copied-board
Verify prompt size:TASK-005went from 5,453 to 3,944o200k_basetokens
(27.7% smaller). - Workspace ownership protection: Symphony records workspace owner sidecars
under the workspace root and blocks foreignTASK-*reuse before
after_createhooks can mutate the wrong project. - Hook failure evidence:
after_createstdout/stderr and a JSON manifest are
persisted outside the ticket worktree, so failed setup remains inspectable
even when the worktree is cleaned up. - Stricter contract rewind scope: Verify evidence failures now carry structured
rows, table row numbers, and expected artifact path shapes into the rewind
prompt instead of a vague failure note. - Dependency-aware file-board dispatch: unresolved dependency IDs now remain
visible asblocked_dependencybeyondTodo, so held work does not silently
run. - 9999 admin UI documentation: README surfaces now lead with the browser admin
UI and a sanitized screenshot, while still keeping the terminal TUI visible.
Fixes
- Fixed
GET /api/v1/issues/<ID>for issue files whose YAML frontmatter parses
unquoted timestamps into Pythondateordatetimeobjects. This fixes the
Could not load CODEX-E2E-001: Object of type datetime is not JSON serializabledrawer failure. - OpenCode 1.17 token accounting now follows
step_finish.part.tokens, handles
nested cache and reasoning fields, and avoids double-counting explicit cache
totals. - File ticket parsing auto-heals shallow accidental indentation on canonical
metadata keys such asupdated_at, preventing post-turn refresh failures from
malformed agent-authored YAML. symphony doctornow warns on masked setup commands such as|| trueand
pipedtailby default; workflows can opt into fatal warnings with
hooks.fail_on_warning_patterns: true.
Compatibility Notes
- Prompt compaction is opt-in and remains off unless a workflow sets
agent.compact_issue_context: true. - Token attention thresholds do not block or move tickets by themselves.
symphony doctorwarning-pattern checks are warnings by default.- Verify contract checks are stricter about placeholder or prose-only evidence;
use durable evidence files such asdocs/<ID>/qa/...instead ofn/a,-,
or "validated in source" table cells.
Verification
- Focused release-prep checks on
dev:
rtk pytest tests/test_cli_main_routing.py::test_version_flag_prints_version_and_exits_zero tests/test_webapi.py::test_issue_detail_serializes_unquoted_frontmatter_timestamps -q
-> 2 passed. devpre-push CI-parity gate:
1,109 passed, 2 skipped, 2 warnings.mainfull local gate after fast-forward:
rtk pytest -q-> 1,109 passed, 2 skipped.mainpre-push CI-parity gate:
1,109 passed, 2 skipped, 2 warnings.- Prior fresh remote-clone Codex E2E rerun reached
Human Reviewon
CODEX-E2E-002withworker_exit reason=normal; the issue-detail API
returned string timestamps.
Commit Scope
db55768e6bc2d3d8283ec238a08d566c6e55da5b-
docs(readme): showcase 9999 admin ui6fe480b6abc9c2844d35d9974b7cb52466bee10b-
feat: harden symphony token reliability8710ec736840a08b07e24013681af9f770639a0a-
fix: serialize issue detail frontmatter timestamps1c48d9bb73d82464907e0bfdad69884895fc46b1-
chore: prepare v0.10.0 release
Tag target: 1c48d9bb73d82464907e0bfdad69884895fc46b1.