v2.7.0 — post-v2.6.0 hardening & the #203 audit-trail epic #220
danielPoloWork
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
v2.7.0 is a MINOR, additive release: it hardens the phase engine, the learning loop, the renderer's write path, and the self-lint, and completes the #203 audit-trail epic. It groups 13 merged PRs (#204–#218) across issues #194–#202 + the epic children #213/#214/#215. No breaking changes; a legacy manifest renders unchanged.
Added
delivery-state-consistentcheck rejects phase-skips (workflow: phase-state advancement is honor-system — nothing verifies gates were green when delivery_state.phase changed #199).delivery_state.checkpointsmust be a legal, contiguous chain ending at the current phase, withconfirmed_byon human-gated moves; a hallucinating agent can no longer setphase: scaffoldwithout the intervening checkpoints.--strict; the dead--linksplumbing dropped (tools: deterministic phase gates fail open —skippednever blocks andrun_phase's--linksis threaded but never read #200). Gate marks distinguishskipped(not applicable) fromneeds-input(a checkable input was withheld);--strictfails the phase onneeds-input, so a gate can't be satisfied by omission.questionnaire_version), so a partial block no longer silently starves the learning loop.agent-registryself-lint is now bidirectional (lint: agent-registry check is one-way — a README link to a deleted persona stays green #202). A dead index link (a renamed/deleted persona) is caught, not just a missing persona.gate_resultsin a transition's checkpoint — the phase audit trail (audit: emit a phase-tagged action record for every phase (not just scaffold) — wire live gate_results into the #199 checkpoint #213). The checkpoint records the runner's own live evaluation of the deterministic gates, and — withat/confirmed_by— is the phase-tagged action record for every transition.manifest_rev+--expect-rev(manifest: add optimistic concurrency (manifest_rev / content-hash) so parallel sessions can't silently lose updates #214). Parallel sessions can no longer silently lose an update; a stale write is refused with aCONFLICT.--failurechannel + phase-tagged records, a corpus-scaledautotuneconfidence floor, and redaction of sensitive override values.Fixed
yamlminirejects folded>block scalars instead of silently dropping the body (tools: yamlmini silently drops folded (>) block-scalar bodies instead of rejecting them #194) — the fix also recovered thenotesbodies in every language profile.Security
--forceto regenerate (render: --in-place clobbers pre-existing files in the target repo, contradicting the additive no-clobber posture #195)..gitpath segment is rejected at validation time, not just at write time (render: write_file lacks the.git-at-any-depth refusal that sandbox.py enforces #196).Verified on
main: 16 self-lint checks green (incl. version-lockstep + i18n-freshness), 44/44 test scripts pass. Full detail in CHANGELOG.md.This discussion was created from the release v2.7.0 — post-v2.6.0 hardening & the #203 audit-trail epic.
Beta Was this translation helpful? Give feedback.
All reactions