Skip to content

fix(repair): recognize SQLite 3.53 FTS5 corruption - #2035

Closed
igorls wants to merge 1 commit into
developfrom
agent/fix-sqlite-353-fts5-classification
Closed

fix(repair): recognize SQLite 3.53 FTS5 corruption#2035
igorls wants to merge 1 commit into
developfrom
agent/fix-sqlite-353-fts5-classification

Conversation

@igorls

@igorls igorls commented Jul 16, 2026

Copy link
Copy Markdown
Member

Summary

  • recognize SQLite 3.53.x's fts5: corruption found reading blob ... wording as the same isolated, recoverable FTS5 index corruption already handled by repair
  • keep mixed FTS5 plus page/row corruption classified as unsafe to auto-heal
  • add regression coverage for the new diagnostic shape

Root cause

PRAGMA quick_check changed the wording it emits for a corrupt FTS5 index on SQLite 3.53.x. MemPalace only matched the older malformed inverted index for FTS5 table text, so repair treated the derived-index failure as broader SQLite corruption and aborted instead of rebuilding the index.

Closes #1925.

Validation

  • python -m pytest tests/test_repair.py -q — 90 passed
  • ruff check mempalace/repair.py tests/test_repair.py
  • ruff format --check mempalace/repair.py tests/test_repair.py
  • full non-benchmark suite: 2,988 passed, 268 skipped; 12 unrelated Windows environment failures (WSL Bash cannot resolve the Windows worktree path; Strawberry OpenSSL points at a missing build-time openssl.cnf)

@igorls

igorls commented Jul 16, 2026

Copy link
Copy Markdown
Member Author

Closing as redundant after rebasing against the current develop release line. Commit f9db9b7, merged via #1928 and now included in develop/#2020, already implements the SQLite 3.53 FTS5 wording fix with broader end-to-end regression coverage. No need to carry a competing patch.

@igorls igorls closed this Jul 16, 2026
@igorls
igorls deleted the agent/fix-sqlite-353-fts5-classification branch July 16, 2026 19:09
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.

test_repair.py: 2 tests fail on SQLite 3.53.2 — FTS5 corruption message wording mismatch in _errors_are_isolated_fts5

1 participant