Repository navigation
fix(diagnostics): classify encrypted-database failures and surface damaged receipt chains - #316
Merged
Merged
Conversation
A user-host report showed a forked receipt chain followed by the provider going unavailable with EncryptionError. Since 1.7.6 receipt damage is audit-only, but there was no supported way to see it outside the host log, and every encrypted-open failure was reported as a wrong key. Extract receipt_chain_state/verify_receipt_chain so the install doctor verifies chains read-only through its own connection and reports damage with recovery guidance, bounded to 20k receipts and 25 scopes. Classify EncryptionError with stable codes; driver text is still never rendered because it can echo paths or the PRAGMA key. Refresh the checksum-bound offline evidence artifact and its rendered SVG/PNG surfaces because tracked producer files changed. Refs discussion #151. Agent: opencode
Main now carries the 1.7.12 release, the sync/manifest hardening, and the canonical evidence artifact. Rebind the receipt-diagnostics evidence to the three producer files main changed (__init__, routes/v2_api, chunking_eval), recompute the suite digest and artifact SHA, and repin the README, benchmark guide, tests, and both rendered SVG/PNG pairs.
The merge that brought main's 1.7.12 release into this branch rewrote BENCHMARKS.md, README.md, and both benchmark SVGs with CRLF line endings, which changed their exact bytes under the repository's -text policy, and left the PNG provenance hashes bound to the pre-normalization SVG bytes. Restore LF bytes, rebuild the sidecar with its required LF terminator, and re-stamp the artifact/SVG SHA-256 tEXt chunks so the checksum-bound evidence tests compare the committed bytes. Agent: opencode
The embedder check inferred exact mode from a non-empty embed_model, while the factory uses the explicit require_exact_backends setting. Honor the same policy so a configured model may fall back when exact mode is off, and a deployment that requires exact backends is checked strictly even with the default model. The regression test sets the policy it exercises.
CVE-2026-115557 in the Python 3.11.17 runtime is fixed in 3.11.18. Pin the new multi-arch digest so the release grype gate can pass.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Bring the branch current with main for review.
Coding-Dev-Tools
force-pushed
the
main
branch
2 times, most recently
from
November 4, 2026 06:12
3d330e8 to
8ef46b6
Compare
## Why upgrade to Pro or Team in the README - Adds a prominent upgrade section after the local feature list. - Explains memory health analytics, scheduled upkeep, encrypted sync, team roles/audit, and the included Jev allowance. - Shows how Jev helps agentic memory: safe vs risky actions, contradictory vs reinforcing memories, supported vs unsupported answers, and complete vs unfinished work. - Adds pricing, no-card trial details, comparison link, and Pro/Team signup links. Tests: documentation contracts, Pro CTA, plugin distribution, and skill package pass; ruff clean.
Bring the branch current with main.
Coding-Dev-Tools
force-pushed
the
fix/receipt-chain-diagnostics
branch
from
November 5, 2026 07:07
0341cf7 to
00f89b4
Compare
- Read receipt rows and the chain anchor in one snapshot so a live writer cannot make a healthy chain look damaged. - Run the read-only receipt check before the write probe, so a preserved read-only copy still gets a receipt diagnosis. - Check the most recently written scopes, not the largest ones. - Share the factory's exact-backend policy with the doctor, including ENGRAPHIS_ENV=prod. - Give key-file failures their own actionable message and document the nonzero exit on a damaged sampled chain.
…octor The read transaction and shared exactness policy change two producer files. Re-record their hashes, recompute the suite digest and artifact SHA, and repin the README, benchmark guide, tests, and both SVG/PNG provenance pairs.
Bring the branch current for the gate.
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.
Summary
Preserves the receipt-chain diagnostics work from the closed #310 and adds the doctor exactness fix:
EncryptionErrornow carries stable codes (database_damaged,database_busy,database_unavailable,key_rejected,driver_missing, key-file codes) so a damaged or locked SQLCipher file is no longer reported as a wrong key.engraphis-init --checkverifies operation-receipt chains through its own read-only connection and reports damage with recovery guidance, bounded to 25 scopes and 20k receipts. Receipt damage remains audit-only; memory writes and recall continue.settings.require_exact_backends, matching the factory, instead of inferring exact mode from a non-emptyembed_model.Verification
tests/test_receipts.py,tests/test_init.py,tests/test_encryption_dependency.py— passed.main(6c75758a).This supersedes closed #310. The earlier PR was closed after its branch was rebased and pushed past the closed head.
Agent: commandcode