Skip to content

Release BIMRI v5.1.2: integrity, recovery and CLI fixes - #9

Merged
EvolutionUnleashed merged 2 commits into
mainfrom
agent/bimri-v5.1.2-defects
Sep 8, 2026
Merged

EvolutionUnleashed merged 2 commits into
mainfrom
agent/bimri-v5.1.2-defects

Conversation

@EvolutionUnleashed

@EvolutionUnleashed EvolutionUnleashed commented Sep 8, 2026 •

Copy link
Copy Markdown
Owner

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, recall and search is unchanged. README is unchanged.

What changed:

  • Memory text, rationale, falsifier, question and journal text may no longer contain U+0085, U+2028 or U+2029. The validator accepted them while the parsers split lines on them, so one proposal could carry a forged [T:confirmed] [SRC:user] entry into the accepted head and then leave the store in AUTHORITY RECOVERY NEEDED.
  • A failed full audit at the sync, authority close and resolve boundaries now invalidates the audit checkpoint the way doctor already did, so the next start prints the recovery banner and exact reads refuse until the store is repaired. 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. A v5.0 or v5.0.1 store no longer upgrades 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.
  • 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 instead of opening a run nothing can close, and hook-close bounds the SessionEnd reason.
  • get, recall and search accept --json and return the full typed record, including a pattern's confidence, observations, evidence and falsifier; tags and falsifiers join the search text.
  • Installer: an orphan <!-- BIMRI:START --> marker in owner prose no longer makes the next install delete owner text; 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 (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.
  • Prior 5.1.1 checkpoints remain usable as recovery evidence for quarantines and interrupted lifecycle/authority operations. They never bypass the new policy audit. A strict restoration still refuses unrelated drift.
  • Closed pipes are handled during writes and shutdown, including unbuffered output. Disk-full and other real output failures retain a nonzero exit status.
  • Docs: a 5.1.2 CHANGELOG section, REFERENCE, PROTOCOL, MIGRATION and INSTALL updated, and MIGRATION's paragraph on a divergent view corrected to match the code.

Validation: all four jobs passed at head fd4425ee1f25b07c1f60f15b87b36a6c5fdd9f28 in 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.

EvolutionUnleashed and others added 2 commits September 8, 2026 10:06
…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>
@EvolutionUnleashed
EvolutionUnleashed merged commit c22f3b2 into main Sep 8, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant