Skip to content

v7.223.10

Choose a tag to compare

@github-actions github-actions released this 12 Aug 16:27
· 17 commits to main since this release

Every Improve lifecycle mutator now validates BASE then PROPOSED state before ANY byte is written. load_valid_manifest reads, validates and snapshots a cycle manifest in ONE pass (no first-read/second-read ambiguity) with an allowed-status gate; abort/complete/archive validate their own proposed manifest before journaling, and create_cycle refuses an invalid created_at/project_identity with ZERO writes (no directory left behind). write_sweep_entry validates the existing SWEEP ledger and the owning report via the bound bar before appending, and validates the proposed ledger -- a malformed SWEEP or malformed COMPLETE report is never extended. validate_bound_report is the ONE shared proof bar (structural + roster-bound provenance + source freshness), wired into resume, append, complete_report, verify_cycle, complete_cycle and the validator's ACTIVE strict scan; a report's agent is compared to the ROSTER seat (its owning directory), never to itself. create_report and prepare_audit_seat DERIVE protocol fingerprint/version from the installed SAIPEN -- a caller-supplied digest is refused on mismatch, so fabricated provenance can never be created, resumed, completed, verified or sealed. Resume refuses forged metadata with INVALID_REPORT/STALE_REPORT. cycle_aborted has one legal meaning (ARCHIVED + canonical draft-preserved); ACTIVE/COMPLETE+aborted, duplicates and unknown values are invalid. Canonical CLEAN pruned 9 stale DONE tickets (keeping the needs-chain) so the board is back under the soft cap. The warn-ownership harness proves isolation by asserting the WARN slug SET delta, never just returncode. Ticket-ID allocation reads STRUCTURED records only (BOARD ticket lines + LOG [T-###] field) -- prose mentions of T-NNN can no longer poison the allocator. Hostile controls cover the full mutator matrix. (T-638)