Repository navigation
v0.7.0
·
1293 commits
to master
since this release
Phase 4 of the 2026-09-28 architecture stabilization, and its gate: the stabilization freeze is lifted. The architecture ratchet now runs in CI, so a change that worsens a metric goes red. Per-stage detail is in docs/stabilization/ROADMAP.md, "Gate 4".
- A sub-workflow path is resolved by one function (
library.resolve_sub_workflow_reference) at every site, so a path a run can open is one validation, the realized workflow's digest and the observed-cost lookup can open too.builtin:builtin:x.jsonno longer loadsx.json: only the leading prefix is stripped, so the namebuiltin:x.jsonis looked up and reported asSubWorkflowNotFound.- At run time a missing
builtin:workflow now raisesSubWorkflowNotFound(naming the packaged root) instead ofvalidate_workflow_path's missing-file error. - The realized workflow's sub-workflow digest and a composed child's observed cost now fall back to the same catalog root, so a catalog sub-workflow a run could open is also digested and costed.
- A run that fails before it opens its run directory no longer rewrites the previous run's
manifest.jsonwhen the same workflow instance is reused:Workflow.runresets the directory and version it carried. - The per-variant lines of a kernels "Cannot find a build variant" error are sorted by dw (
kernel_availability.stable_message), so the message no longer varies by process. - The
argument_templateschema description now says what the code does: handed arguments are held on the child at run time, never written into the definition, and an authored value is the fallback. gain_audiorounds a frame-addressed region's end once, asslice_audiodoes, so a region's end can no longer be one sample off the matching slice's.concat_videosrefuses a track with no sample rate (concat_videos: '<name>' has audio with no sample rate) instead of joining it unresampled at the wrong speed and pitch;dissolve_videosgives the same message in place of the resample error. Save that step withaudio_sample_ratein its result and join the saved file through anoutput:reference. An unpinneddissolve_videoswith such a track now raises thisValueErrorrather than aTypeError.- For developers (Python paths only; nothing on the API or MCP reaches them):
Workflow's one-line check methods are gone:validation_context,sub_workflow_warnings,adapter_warnings,inherited_vram_warnings,slice_past_end_warnings,shot_span_warnings,null_variable_argument_warningsandcache_hits. Callvalidation.workflow_context(workflow, ...),validation.run_warning_check(workflow, "<name>", ...)andworkflow_run.cache_hits(workflow, arguments).- Reference prefixes (
variable:,asset:,output:, ...) are read and built only throughdw.references; a hand-written prefix check elsewhere fails theprefix_handlingratchet. scripts/arch_metrics.py --check docs/stabilization/baseline.jsonruns in CI andscripts/preflight.sh, so a PR that raises any architecture metric goes red. The module-size metric ismodules_over_size_ceiling(fail over 1,100 lines, warn over 1,000), renamed frommodules_over_1000_lines.- Agent context: CLAUDE.md files went from 957 to 129 lines;
docs/ARCHITECTURE.mdis the seam map (concept, owning module, rule, enforced-by).
- The stabilization freeze is lifted (
stabilization-gate-4).
What's Changed
Full Changelog: v0.6.0...v0.7.0