Patch release stabilizing the scaffolds around the functionality introduced in 3.2.0. Remediates
blocking issues witnessed after 3.2.0; not every discovered issue is remediated here, and further
patch releases are expected in quick succession.
🐛 Fixed
- Orchestrator coord-read of coord-only missions (#2016):
orchestrator_apinow resolves a mission that
exists only as a coordination worktree (no primarymeta.json) by adopting the canonical mid8 cascade
(meta.mid8→ declaredmission_id→<slug>-<mid8>tail) instead of a strict-only reimplementation that
returnedNone. Legacy non-coord missions keep their primary-read path; genuinely unresolvable handles still
fail closed. - Charter status/sync/preflight coherence (#2009, epic #2007/C2):
charter status --jsonno longer crashes on
a non-JSON-safedatetimein the bundle metadata; the DRG "built_in_only+ stalegraph.yamlresidue" state
is now a non-blocking read-time diagnostic instead of a preflight-blockinginvalid; and a BOM/CRLF hash
divergence betweensyncandstatus/freshness (which produced anoop-despite-stalecharter sync) is fixed
by canonicalizing line endings/BOM in the singlecharter.hasher.hash_contentseam. Regression tests pin the
already-landed status side-effect-free and hash-unification fixes. - Green the architectural CI gate (#2025): corrected pytest markers on a subprocess/git test, removed a
mission-diff-scoped test that did not belong onmain, and made the architectural ratchet composite keys
interpreter-stable (Python 3.11 ↔ 3.12 f-string tokenization), re-greening thetests/architectural/**shard
that went red when 3.2.0's gate-un-mask first ran onmain.
🔧 Changed
- merge.py decomposition, slice 1 (#2027, epic #2026): extracted the
baseline_merge_commitrecord/verify
cluster from the oversizedcli/commands/merge.pyinto a dedicatedspecify_cli/merge/baseline.py,
behavior-preserving with back-compat re-exports (public + legacy private names). - Charter constant single-sourced: the
_GRAPH_FILENAMEvalue, previously duplicated across three modules,
now resolves from one leafcharter.synthesizer._constants.
🐛 Fixed (security follow-up)
- SonarCloud + Dependabot: re-exported the charter package helper named in
__all__, hardened merge
bookkeeping projection so status-surface paths cannot resolve outside trusted repo roots, and refreshed locked
crypto/tooling dependencies to patched releases (cryptography 49.0.0,pip 26.1.2) so the security gates stay
clean.