Repository navigation
Release BIMRI v5.1.2: integrity, recovery and CLI fixes - #9
Merged
Merged
Conversation
…team Engine-only, defects-only release. Memory format stays 5.1.0 and the hot grammar stays 5.0.2; no new owner prompt; the tab-separated output of get, recall and search is unchanged. - Refuse U+0085, U+2028 and U+2029 in memory text, rationale, falsifier, question and journal text. The validator accepted them while the parsers split on them, so one proposal could plant a forged confirmed/user entry in the accepted head and push the store into recovery. - A failed full audit at the sync, authority close and resolve boundaries now condemns the audit checkpoint (epoch advance, bytes retained), as doctor already did after the 2 September ruling. Read-only doctor, the quarantine shadow audit and strict restore comparisons keep their exemptions. - The --quiescent attestation is checked before version routing for every existing v5 store; v5.0 and v5.0.1 stores no longer upgrade without it. - --trust contested cannot be authored; it is derived from a conflict record only. Stored records still parse. - Tier 3 proposals no longer write a false drift receipt: the pattern counter advances when the pattern is accepted, inside the write scope. - Orphan candidates are classified by inactivity; the brief prints a count plus the five newest ids above five candidates; hook-start refuses a payload with no session identity (exit 2, [hook-identity-missing], nothing created); hook-close bounds the SessionEnd reason. - get, recall and search accept --json and return the full typed record; tags and falsifiers join the search text. - Installer: the block-merge regex no longer deletes owner text after an orphan START marker; a same-format update receipt reads code-only-update; a command whose stdout pipe closes early exits with its own code. - Engine 5.1.2, authority policy 5.1.2-authority-1 (existing checkpoints re-prove once), preflight receipts accept 5.1.0, 5.1.1 and 5.1.2. - Docs: CHANGELOG 5.1.2 section; REFERENCE, PROTOCOL, MIGRATION and INSTALL updated; MIGRATION's divergent-view paragraph corrected. - Tests: 23 new (18 in tests/test_v512_defects.py, 4 checkpoint boundary tests in test_v511_performance.py, 1 installer test); one existing test updated to pass --quiescent; workflow compile step lists the new module. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Engine-only, defects-only release. Memory format stays 5.1.0, the hot grammar stays 5.0.2, no new owner prompt, and the tab-separated output of
get,recallandsearchis unchanged. README is unchanged.What changed:
[T:confirmed] [SRC:user]entry into the accepted head and then leave the store inAUTHORITY RECOVERY NEEDED.sync, authoritycloseandresolveboundaries now invalidates the audit checkpoint the waydoctoralready did, so the nextstartprints the recovery banner and exact reads refuse until the store is repaired. Read-onlydoctor, the quarantine shadow audit and strict restore comparisons keep their exemptions.--quiescentattestation is checked before version routing for every existing v5 store. A v5.0 or v5.0.1 store no longer upgrades without it.--trust contestedcannot be authored; it is derived from a conflict record only. Stored records still parse.hook-startrefuses a payload with no session identity instead of opening a run nothing can close, andhook-closebounds the SessionEnd reason.get,recallandsearchaccept--jsonand return the full typed record, including a pattern's confidence, observations, evidence and falsifier; tags and falsifiers join the search text.<!-- BIMRI:START -->marker in owner prose no longer makes the next install delete owner text; a same-format update receipt readscode-only-update; a command whose stdout pipe closes early exits with its own code.5.1.2-authority-1(an existing checkpoint re-proves once on the first command after the update), preflight receipts accept 5.1.0, 5.1.1 and 5.1.2. A 5.1.1 engine refuses the store after the first 5.1.2 proposal, so take the quiescent snapshot MIGRATION asks for before updating.Validation: all four jobs passed at head
fd4425ee1f25b07c1f60f15b87b36a6c5fdd9f28in GitHub Actions. Each job ran 285 tests: 283 passed and 2 skipped on Linux; 279 passed and 6 skipped on Windows, for both Python 3.8 and 3.12. All canonical benchmark gates passed. The recovery regressions execute the actual pinned 5.1.1 source and cover interrupted start/close/authority completion, strict quarantine restoration, and revalidation under the new policy. Buffered/unbuffered closed pipes and genuine output failures also passed. The original populated-store copy proof preserved all 1,837 protected paths across two updates; that proof predates these review corrections. No local tests were run before publication; checks of the merged release follow on disposable stores.Post-merge verification on Windows/Python 3.10: the release module passed with 24 passes and one Linux-only skip, and the fresh-store benchmark passed every gate. The first local pass encountered one Windows access-denied error while publishing a temporary backup directory, before code replacement. That case and the full module passed unchanged on rerun; the initial failure is retained in the release notes.