Automated release: version and notes generated from pull requests merged since 1.10.0.
Fixed
render.pynow refuses an unrecognised key in a project — top level or in any stage/clip object — naming the object, the key and the nearest valid key, instead of silently ignoring it (a clipstart/endtypo rendered the clip untrimmed; a stage typo dropped the stage, both reported as success).write_plan()and the at-exit plan hook use theContextemit()/die()were given:emit(ctx=…)no longer writes an empty plan, anddie(ctx=…)no longer leaves a plan behind for a failed run.- The nine tools that declared
--crfwithout a help string now show the(deprecated: use --quality)mark in--help(and in their MCPcrfdescription). - The
--crfdeprecation warning fires for the abbreviations argparse accepts (--cr,--c) as well, andbatch.pyno longer swallows a recipe step's warning;export.pystays exempt. - A non-numeric time says
'zz': not a timeinstead of leaking the interpreter'scould not convert string to float. - docs/contract.md:
tools/listunderFFMPEG_SKILL_MCP_LEANis stable in tool and argument names andrequiredlists — what the frozen snapshot pins — not byte-identical (descriptions may change). - SKILL.md: the time-grammar sentence is scoped to the timestamp flags (
--start/--end/--at/--from/--duration/--offsetand cue/chapter files);doctor's tool list isdoctor --json'stools. - references/scripts.md notes the
--crfdeprecation andFFMPEG_SKILL_NO_OVERWRITE; README marksproxy.py --crfas the deprecated alias. - fix: render.py refuses unknown project keys, ctx= reaches write_plan and the exit hook, --crf mark on every tool with --quality, time refusals say not a time (#211)
- docs: eval iteration 10 at 1.10.0, README catches up with 1.8-1.10, PR checklist names the README (#210)
What's Changed
- docs: eval iteration 10 at 1.10.0 (108 runs, focused independent grader, trigger set, corpus report) by @claude[bot] in #210
- fix: audit-9 follow-ups on 1.10.0 (render.py unknown keys, ctx= in write_plan/exit hook, --crf mark on every tool, time refusals) by @claude[bot] in #211
Full Changelog: v1.10.0...v1.10.1