fix(ia): IA גל-1 — סנכרון-cache + נתונים-שגויים + מחיקת-מתים (#130, X17) #207

Merged
chaim merged 1 commits from worktree-ia-wave1-sync-fixes into main 2026-06-11 20:48:20 +00:00
Owner

גל-1 מבקלוג #127 (docs/ia-audit-redesign.md §4) — תיקון מקומי, ללא הגירת-IA. מרים את G2 (מקור-אמת יחיד) לשכבת-ה-UI דרך INV-IA1/IA2/IA5/IA6 (docs/spec/X17).

א) פערי-סנכרון (INV-IA2 — mutation מבטל כל קורא)

ממצא תיקון
CAS-1/2 העלאת-DOCX/export-docx מבטלים ['decision-blocks'] → מחוון source_of_truth לא נתקע
APR-1/4 פתרון/יצירת-הערה מבטלים ['chair','pending'] → תיבת-/approvals + תג-הסרגל מתעדכנים
APR-5/ADM-2 אישור/batch הלכות מבטלים ['chair','pending'] + ['operations']
APR-6/ADM-3 create/update/delete/upload פסיקה-חסרה מבטלים שניהם
LRN-6 ComparePanel גוזר את הבחירה מהקורפוס המרוענן (id מחוק→null, אין POST→404)
LRN-8 מחיקת-קורפוס מבטלת את רשימת-הצ'אטים (chat שהתייתם לא נשאר עם קישור-קורפוס תקוע)
LRN-10/MET-1/MET-8 promote מבטל גם lessons וגם methodology (LessonsTab + /methodology)

ב) נתונים-שגויים (INV-IA5 — סטטוס מגובה-צרכן)

ממצא תיקון
LRN-4 KPI "דפוסי סגנון" — הוסר היחס-השקרי "מתוך total_patterns" (שאילתות עצמאיות, אין תת-קבוצה)
LRN-5 findings_applied (דגל אינפורמטיבי-בלבד, LRN-1) → findings_approved (שער INV-LRN1 האמיתי, #126)
ADM-1 halacha_backlog שהוחזר ונזרק → מרונדר ב-/diagnostics, מצביע ל-/approvals (INV-IA1)
ADM-6 מוני-סוכנים מסמנים "⚠ חלקי+" כשחברת-Paperclip לא נטענה
APR-3 מכוסה ע"י APR-1 (count+sample מאותה שאילתה ב-/api/chair/pending; הבעיה היתה staleness-cache)
MET-6 עורך-צ'קליסטים מציג "חל על: …" — איזה case בוחר כל צ'קליסט (explainer-תחולה inline)
ADM-5 ערך-Container מסומן "ממתין ל-redeploy" כש-drift (Coolify≠Container), בעברית-פשוטה

ג) מתים / jargon

  • PRE-2: הוסר GET /api/precedent-library/queue/pending (אפס צרכני-frontend; ה-MCP worker קורא מה-DB ישירות).
  • PRE-3/5: AuthorityBadge (binding/persuasive) מרונדר גם בחיפוש (library-search-panel), לא רק בתור-הביקורת.
  • MET-5: הוסר ז'רגון T7/T15 מטקסט-העזר ב-/methodology (INV-IA6).

Invariants

מקיים INV-IA1/IA2/IA5/IA6 (X17), G2 (מקור-אמת יחיד, בשכבת-UI), G10לא הוסר שום שער-אנושי, רק משטח/נתון/קוד כפול-או-מת. שומר INV-LRN1.

בדיקות

  • python3 -m py_compile web/app.py
  • npx tsc --noEmit
  • npm run lint ✓ (לבד מ-learning-panel.tsx:109 unescaped-quote — קיים-מראש ב-main, מחוץ לסט-הממצאים)
  • next build נכשל ב-worktree רק בגלל symlink node_modules (Turbopack "points out of filesystem root") — ה-build ב-Docker/CI עם תיקייה אמיתית תקין.

🤖 Generated with Claude Code

גל-1 מבקלוג #127 (`docs/ia-audit-redesign.md` §4) — תיקון מקומי, ללא הגירת-IA. מרים את **G2 (מקור-אמת יחיד)** לשכבת-ה-UI דרך INV-IA1/IA2/IA5/IA6 ([`docs/spec/X17`](docs/spec/X17-information-architecture.md)). ## א) פערי-סנכרון (INV-IA2 — mutation מבטל כל קורא) | ממצא | תיקון | |------|-------| | CAS-1/2 | העלאת-DOCX/`export-docx` מבטלים `['decision-blocks']` → מחוון `source_of_truth` לא נתקע | | APR-1/4 | פתרון/יצירת-הערה מבטלים `['chair','pending']` → תיבת-/approvals + תג-הסרגל מתעדכנים | | APR-5/ADM-2 | אישור/batch הלכות מבטלים `['chair','pending']` + `['operations']` | | APR-6/ADM-3 | create/update/delete/upload פסיקה-חסרה מבטלים שניהם | | LRN-6 | `ComparePanel` גוזר את הבחירה מהקורפוס המרוענן (id מחוק→null, אין POST→404) | | LRN-8 | מחיקת-קורפוס מבטלת את רשימת-הצ'אטים (chat שהתייתם לא נשאר עם קישור-קורפוס תקוע) | | LRN-10/MET-1/MET-8 | `promote` מבטל גם `lessons` וגם `methodology` (LessonsTab + /methodology) | ## ב) נתונים-שגויים (INV-IA5 — סטטוס מגובה-צרכן) | ממצא | תיקון | |------|-------| | LRN-4 | KPI "דפוסי סגנון" — הוסר היחס-השקרי "מתוך total_patterns" (שאילתות עצמאיות, אין תת-קבוצה) | | LRN-5 | `findings_applied` (דגל אינפורמטיבי-בלבד, LRN-1) → `findings_approved` (שער INV-LRN1 האמיתי, #126) | | ADM-1 | `halacha_backlog` שהוחזר ונזרק → מרונדר ב-/diagnostics, מצביע ל-/approvals (INV-IA1) | | ADM-6 | מוני-סוכנים מסמנים "⚠ חלקי+" כשחברת-Paperclip לא נטענה | | APR-3 | מכוסה ע"י APR-1 (count+sample מאותה שאילתה ב-`/api/chair/pending`; הבעיה היתה staleness-cache) | | MET-6 | עורך-צ'קליסטים מציג "חל על: …" — איזה case בוחר כל צ'קליסט (explainer-תחולה inline) | | ADM-5 | ערך-Container מסומן "ממתין ל-redeploy" כש-`drift` (Coolify≠Container), בעברית-פשוטה | ## ג) מתים / jargon - **PRE-2:** הוסר `GET /api/precedent-library/queue/pending` (אפס צרכני-frontend; ה-MCP worker קורא מה-DB ישירות). - **PRE-3/5:** `AuthorityBadge` (binding/persuasive) מרונדר גם בחיפוש (`library-search-panel`), לא רק בתור-הביקורת. - **MET-5:** הוסר ז'רגון `T7`/`T15` מטקסט-העזר ב-/methodology (INV-IA6). ## Invariants מקיים **INV-IA1/IA2/IA5/IA6** (X17), **G2** (מקור-אמת יחיד, בשכבת-UI), **G10** — *לא הוסר שום שער-אנושי*, רק משטח/נתון/קוד כפול-או-מת. שומר **INV-LRN1**. ## בדיקות - `python3 -m py_compile web/app.py` ✓ - `npx tsc --noEmit` ✓ - `npm run lint` ✓ (לבד מ-`learning-panel.tsx:109` unescaped-quote — **קיים-מראש ב-main**, מחוץ לסט-הממצאים) - `next build` נכשל ב-worktree רק בגלל symlink `node_modules` (Turbopack "points out of filesystem root") — ה-build ב-Docker/CI עם תיקייה אמיתית תקין. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-11 20:48:09 +00:00
fix(ia): IA גל-1 — סנכרון-cache + נתונים-שגויים + מחיקת-מתים (#130, X17)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 13s
36bae6c592
גל-1 מבקלוג #127 (docs/ia-audit-redesign.md §4) — תיקון מקומי, ללא הגירת-IA.
מקיים G2 בשכבת-ה-UI דרך INV-IA1/IA2/IA5/IA6 (docs/spec/X17).

א) פערי-סנכרון (INV-IA2 — mutation מבטל כל קורא):
- CAS-1/2: העלאת-DOCX/export מבטלים ['decision-blocks'] (מחוון source_of_truth)
- APR-1/4: פתרון/יצירת-הערה מבטלים ['chair','pending'] (תיבה+תג-סרגל)
- APR-5/ADM-2: אישור/batch הלכות מבטלים ['chair','pending']+['operations']
- APR-6/ADM-3: create/update/delete/upload פסיקה-חסרה מבטלים שניהם
- LRN-6: ComparePanel גוזר בחירה מהקורפוס המרוענן (אין POST ל-id מחוק → 404)
- LRN-8: מחיקת-קורפוס מבטלת רשימת-צ'אטים (chat שהתייתם לא נשאר עם קישור-קורפוס תקוע)
- LRN-10/MET-1/MET-8: promote מבטל גם lessons וגם methodology (LessonsTab+/methodology)

ב) נתונים-שגויים (INV-IA5 — סטטוס מגובה-צרכן):
- LRN-4: KPI "דפוסי סגנון" — הוסר היחס-השקרי "מתוך total_patterns" (שאילתות עצמאיות)
- LRN-5: findings_applied (דגל אינפורמטיבי-בלבד) → findings_approved (שער INV-LRN1 האמיתי)
- ADM-1: halacha_backlog שהוחזר ונזרק → מרונדר ב-/diagnostics, מצביע ל-/approvals (INV-IA1)
- ADM-6: מוני-סוכנים מסמנים "חלקי+" כשחברת-Paperclip לא נטענה
- APR-3: מכוסה ע"י APR-1 (count+sample מאותה שאילתה; הבעיה היתה staleness-cache)
- MET-6: עורך-צ'קליסטים מציג איזה case בוחר כל צ'קליסט (explainer-תחולה)
- ADM-5: ערך-Container מסומן "ממתין ל-redeploy" כש-Coolify≠Container

ג) מתים/jargon:
- PRE-2: הוסר GET /api/precedent-library/queue/pending (אפס צרכני-frontend)
- PRE-3/5: AuthorityBadge (binding/persuasive) מרונדר גם בחיפוש, לא רק בתור-הביקורת
- MET-5: הוסר ז'רגון T7/T15 מטקסט-העזר ב-/methodology (INV-IA6)

Invariants: מקיים INV-IA1/IA2/IA5/IA6 (X17), G2 (מקור-אמת יחיד בשכבת-UI), G10
(לא הוסר שום שער-אנושי — רק סנכרון/נתון/קוד-מת). שומר INV-LRN1.

בדיקות: py_compile web/app.py ✓ · tsc --noEmit ✓ · eslint ✓ (לבד מ-learning-panel:109
unescaped-quote — קיים-מראש ב-main, מחוץ לסט-הממצאים). next build נכשל רק בגלל
symlink node_modules ב-worktree (Turbopack) — ה-build ב-Docker/CI תקין.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit fc2de64700 into main 2026-06-11 20:48:20 +00:00
chaim deleted branch worktree-ia-wave1-sync-fixes 2026-06-11 20:48:22 +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#207