v0.7.1
Patch release: the fixes surfaced by dogfooding 0.7.0 against a real foreign model (yarradev-ai).
- An apply diff is exactly the answer it landed (#114, ADR 0062):
applynow writes by splicing minimal text edits into the authored source instead of re-serializing the YAML AST. Untouched bytes — folded prose, comments, authored wrapping — stay byte-identical. The atomic compile gate validates the spliced text itself, so splice defects reject the batch instead of corrupting a document. The incident batch replayed: previously a 350-line diff, now exactly 10 inserted lines. - Retraction (#115): update operations accept
remove: [<field> ...]— the assert → catch → retract loop closes through the same audited surface, restoring exact prior bytes. Identity fields are never removable; removing an unset field is a located error. - One answer, many subjects (#116): subject-scoped
designsteps carry the fullopenSubjectsroster, so when one policy answer covers N subjects (ownership, classically) the harness lands it as oneapplybatch instead of interviewing N times. The agent skill names the pattern.