feat(halachot): חיפוש/איתור בתור-ההלכות + הערת חלון-תצוגה #282

Merged
chaim merged 1 commits from worktree-halacha-queue-search into main 2026-06-17 04:00:01 +00:00
Owner

הבעיה

תיק 1180-11-25 ("הכט וסדובסקי") רשום עם 2 הלכות ממתינות בספריית-התקדימים, אך בתור-ההלכות הן לא הופיעו — וגם לא היה כל אמצעי-חיפוש לאתר החלטה/פס"ד מסוים בתור.

שורש: התור שולף רק את 500 ההלכות בעלות-העדיפות מתוך 1,372 ממתינות (useHalachotPending limit:500, order_by_priority). שתי ההלכות של 1180-11-25 מדורגות במקומות 921 ו-1305 — מעבר לחלון, ולכן לא נשלפו כלל. הספירה בספרייה (COUNT WHERE pending_review, ללא תקרה) הראתה "2 ממתינות" — אך התור החתוך לא. ~872 הלכות ממתינות היו בלתי-נגישות מהתור.

הפתרון

חיפוש/איתור בצד-השרת שמדלג על חלון ה-500:

Backend

  • db.list_halachot: פרמטר search (case_number / case_name / rule_statement, ILIKE) — מרחיב את מסלול-השליפה היחיד, לא יוצר מסלול מקביל (G2).
  • db.count_halachot: ספירה מלאה לאותו פילטר → "N מתוך TOTAL".
  • /api/halachot: search + with_total (ברירת-מחדל off; קוראים קיימים לא מושפעים).

Frontend (/precedents → תור הלכות)

  • שורת-חיפוש (debounce 300ms) — מספר-פס"ד / שם-תיק / נוסח-הלכה.
  • הערת "חלון התצוגה" (מציג N מתוך הסך) כשהתור חתוך.
  • שורת-הקשר-תוצאה עם ניקוי; בחיפוש כל הקבוצות התואמות נפתחות. ניווט-מקלדת ושערי-יו"ר (G10) ללא שינוי.

אימות

  • מול ה-DB: search='1180-11-25' → 2 הממתינות (index 20 נקייה → "להכרעתך"; index 23 nli_unsupported → "דורש תיקון-חילוץ"); count=2. חיפוש לפי שם ("הכט") עובד גם.
  • py_compile ✓ · tsc --noEmit ✓ · lint 0 errors (אזהרות קיימות-מראש בלבד). build מלא ב-CI (worktree Turbopack symlink).

עיצוב ו-Invariants

  • עבר שער Claude Design (X17, כרטיס 19-halacha-queue-unified) ואושר ע"י חיים לפני הטמעה.
  • מקיים G2 (מסלול-שליפה יחיד), INV-G10 (שער-יו"ר ללא שינוי), INV-IA (מקור-אמת יחיד לתור). ללא בליעת-שגיאות.

הערה: npm run api:types יורץ לאחר deploy (ה-schema החי עדיין ללא הפרמטרים החדשים); ה-frontend משתמש בטיפוס inline ולכן אינו תלוי בכך לקומפילציה.

🤖 Generated with Claude Code

## הבעיה תיק 1180-11-25 ("הכט וסדובסקי") רשום עם **2 הלכות ממתינות** בספריית-התקדימים, אך בתור-ההלכות הן לא הופיעו — וגם לא היה כל אמצעי-חיפוש לאתר החלטה/פס"ד מסוים בתור. **שורש:** התור שולף רק את **500 ההלכות בעלות-העדיפות מתוך 1,372 ממתינות** (`useHalachotPending limit:500`, `order_by_priority`). שתי ההלכות של 1180-11-25 מדורגות במקומות **921 ו-1305** — מעבר לחלון, ולכן לא נשלפו כלל. הספירה בספרייה (`COUNT WHERE pending_review`, ללא תקרה) הראתה "2 ממתינות" — אך התור החתוך לא. ~872 הלכות ממתינות היו בלתי-נגישות מהתור. ## הפתרון חיפוש/איתור **בצד-השרת** שמדלג על חלון ה-500: **Backend** - `db.list_halachot`: פרמטר `search` (case_number / case_name / rule_statement, `ILIKE`) — מרחיב את מסלול-השליפה היחיד, **לא** יוצר מסלול מקביל (G2). - `db.count_halachot`: ספירה מלאה לאותו פילטר → "N מתוך TOTAL". - `/api/halachot`: `search` + `with_total` (ברירת-מחדל off; קוראים קיימים לא מושפעים). **Frontend (`/precedents` → תור הלכות)** - שורת-חיפוש (debounce 300ms) — מספר-פס"ד / שם-תיק / נוסח-הלכה. - הערת "חלון התצוגה" (מציג N מתוך הסך) כשהתור חתוך. - שורת-הקשר-תוצאה עם ניקוי; בחיפוש כל הקבוצות התואמות נפתחות. ניווט-מקלדת ושערי-יו"ר (G10) ללא שינוי. ## אימות - מול ה-DB: `search='1180-11-25'` → 2 הממתינות (index 20 נקייה → "להכרעתך"; index 23 `nli_unsupported` → "דורש תיקון-חילוץ"); `count=2`. חיפוש לפי שם ("הכט") עובד גם. - `py_compile` ✓ · `tsc --noEmit` ✓ · `lint` 0 errors (אזהרות קיימות-מראש בלבד). build מלא ב-CI (worktree Turbopack symlink). ## עיצוב ו-Invariants - עבר **שער Claude Design** (X17, כרטיס `19-halacha-queue-unified`) ואושר ע"י חיים לפני הטמעה. - מקיים **G2** (מסלול-שליפה יחיד), **INV-G10** (שער-יו"ר ללא שינוי), **INV-IA** (מקור-אמת יחיד לתור). ללא בליעת-שגיאות. > הערה: `npm run api:types` יורץ לאחר deploy (ה-schema החי עדיין ללא הפרמטרים החדשים); ה-frontend משתמש בטיפוס inline ולכן אינו תלוי בכך לקומפילציה. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-17 03:59:28 +00:00
feat(halachot): חיפוש/איתור בתור-ההלכות + הערת חלון-תצוגה (פסיקה מחוץ ל-500 נגישה)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 3s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
896df0cb8c
תור-ההלכות שלף רק 500 ממתינות בעלות-עדיפות מתוך ~1,372, בלי שום דרך
לאתר פס"ד מסוים. הלכה מדורגת מתחת לחלון (למשל 1180-11-25, מקומות 921/1305)
פשוט נעלמה — הספירה בספרייה הציגה "2 ממתינות" אך התור לא הראה אותן.

- list_halachot: פרמטר search (case_number/case_name/rule_statement, ILIKE)
  — סינון בצד-השרת כך שפריט מתחת לחלון נשאר נגיש. מרחיב את מסלול-השליפה
  היחיד, לא יוצר מסלול מקביל (G2).
- count_halachot: ספירה מלאה לאותו פילטר (ל-"N מתוך TOTAL").
- /api/halachot: search + with_total (ברירת-מחדל off; קוראים קיימים לא מושפעים).
- UI (תור-הלכות): שורת-חיפוש מהוקצבת (debounce 300ms), הערת "חלון התצוגה"
  (500 מתוך הסך), ושורת-הקשר-תוצאה עם ניקוי. בחיפוש — כל הקבוצות התואמות
  נפתחות; הניווט המקלדתי והשערים (G10) ללא שינוי.

מאומת מול ה-DB: search='1180-11-25' → 2 הממתינות (index 20 נקייה→להכרעתך,
index 23 nli_unsupported→דורש תיקון-חילוץ); count=2.

עיצוב: עבר שער Claude Design (X17, כרטיס 19-halacha-queue-unified) ואושר.
Invariants: מקיים G2 (מסלול-שליפה יחיד), INV-G10 (שער-יו"ר ללא שינוי),
INV-IA (מקור-אמת יחיד לתור). ללא בליעת-שגיאות.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 26aff99ac7 into main 2026-06-17 04:00:01 +00:00
chaim deleted branch worktree-halacha-queue-search 2026-06-17 04:00:01 +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#282