fix(corpus): refresh searchable flag on metadata patch (INV-DM1, G1) #308

Merged
chaim merged 1 commits from worktree-searchable-freshness into main 2026-06-20 11:36:27 +00:00
Owner

מה

דגל ה-searchable (חוזה-שלמות INV-DM1) חושב-מחדש רק בסיום-קליטה ואחרי מחלץ-המטא של Gemini. החלטות-פנים מדלגות על Gemini, ולכן כשהמטא/תגיות/summary שלהן מתמלאות אחרי הקליטה — הדגל מתיישן והרשומה נשארת בלתי-נראית ל-RAG למרות שהיא שלמה.

נמצאו 4 החלטות כאלה — כולן שלמות (chunks+embeddings, extraction+halacha=completed, מטא קיימת) אך searchable=false:
1049-06-21 · 8126-03-25 (יעקב עמיאל) · 8181-21 (האוניברסיטה העברית) · 85074-04-25.

שינוי

recompute_searchable() בסוף update_case_law — צומת-העדכון היחיד למטא — כך שהדגל הנגזר לא יסטה מהתוכן (G1).

נתונים קיימים

תוקנו כבר דרך הרצה חד-פעמית של הפונקציה הקנונית recompute_searchable(None) על כל הקורפוס (328 → 332 searchable; כל 93 החלטות-הפנים כעת נגישות).

Invariants

INV-DM1 (חוזה-שלמות) · G1 (נרמול הערך-הנגזר בכתיבה, לא תיקון-בקריאה)

🤖 Generated with Claude Code

## מה דגל ה-`searchable` (חוזה-שלמות INV-DM1) חושב-מחדש רק בסיום-קליטה ואחרי מחלץ-המטא של Gemini. **החלטות-פנים מדלגות על Gemini**, ולכן כשהמטא/תגיות/summary שלהן מתמלאות אחרי הקליטה — הדגל **מתיישן** והרשומה נשארת בלתי-נראית ל-RAG למרות שהיא שלמה. נמצאו **4** החלטות כאלה — כולן שלמות (chunks+embeddings, extraction+halacha=completed, מטא קיימת) אך `searchable=false`: `1049-06-21` · `8126-03-25` (יעקב עמיאל) · `8181-21` (האוניברסיטה העברית) · `85074-04-25`. ## שינוי `recompute_searchable()` בסוף `update_case_law` — צומת-העדכון היחיד למטא — כך שהדגל הנגזר לא יסטה מהתוכן (G1). ## נתונים קיימים תוקנו כבר דרך הרצה חד-פעמית של הפונקציה הקנונית `recompute_searchable(None)` על כל הקורפוס (328 → **332** searchable; כל 93 החלטות-הפנים כעת נגישות). ## Invariants INV-DM1 (חוזה-שלמות) · G1 (נרמול הערך-הנגזר בכתיבה, לא תיקון-בקריאה) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-20 11:36:20 +00:00
fix(corpus): refresh searchable flag on metadata patch (INV-DM1, G1)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 3s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
92f0c7d208
The `searchable` completeness flag is recomputed only at ingest end and after
the Gemini metadata extractor. Internal-committee decisions skip Gemini, so
when their summary/subject_tags/metadata are filled after ingest the flag goes
stale and the row stays invisible to RAG despite being complete. Found 4 such
decisions (1049-06-21, 8126-03-25 [יעקב עמיאל], 8181-21 [האוניברסיטה העברית],
85074-04-25) — all complete (chunks+embeddings, extraction+halacha completed,
metadata present) yet searchable=false.

Fix: recompute_searchable() at the end of update_case_law — the single
chokepoint for metadata patches — so the derived flag never drifts from the
content (G1). Existing stale rows already corrected via a one-off canonical
recompute_searchable(None) run (corpus: 328 -> 332 searchable).

Invariants: INV-DM1 (completeness contract) · G1 (normalize derived value at
the write, no read-time patch).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 473c54fc43 into main 2026-06-20 11:36:27 +00:00
chaim deleted branch worktree-searchable-freshness 2026-06-20 11:36:27 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#308