fix(halachot): ספירת-תור אמיתית + עדכון-חי בתגי-הכרעה (#6/#7/#8) #273

Merged
chaim merged 1 commits from worktree-halacha-real-counts into main 2026-06-16 08:48:49 +00:00
Owner

מה ולמה

תגי-הספירה בתור-ההלכות הציגו מספרים עגולים-וחשודים שהם תקרות-שאילתה, לא ספירה אמיתית:

מה הוצג מקור אמיתי
ממתינות 500 pendingData.items.length (limit=500) 1373
נדחו 1000 useHalachotByStatus(...,1000) 1638
אושרו 1000 useHalachotByStatus(...,1000) 2100

בנוסף, התגים התעדכנו רק בכניסה לדף (אין refetchInterval).

התיקון

  • /api/precedent-library/stats כבר מריץ COUNT(*) אמיתי — מוסיף לו halachot_rejected + halachot_deferred.
  • HalachaReviewPanel קורא את שלוש הספירות מהמקור הזה במקום מ-len(rows) המתוקרת. useHalachaCount המיותר הוסר.
  • useLibraryStats מקבל refetchInterval (30s) → התגים עוקבים חי אחרי אישורים.

תור-העבודה עצמו עדיין נטען עד 500 פריטים (cap-עבודה לגיטימי) — רק תצוגת הספירות תוקנה.

Invariants

  • G1 — נרמול-במקור: ספירה אמיתית מ-COUNT(*) במקום len(rows) מתוקרת-בקריאה.
  • G2 — אין endpoint-ספירה מקביל; מאוחד על מקור-הספירה הקיים (precedent_library_stats).

בדיקות

  • tsc --noEmit ✓ · eslint (קבצים שהשתנו) ✓ · py_compile
  • npm run api:types ידחה לאחר deploy (ה-openapi החי טרם כולל את השדות החדשים); ה-type הכתוב-ביד LibraryStats כבר מעודכן.

הקשר

חלק מבאצ'-עדכוני-המסכים. סעיפים 1–5,11 (שינויי-UI) מנותבים בנפרד דרך שער-העיצוב Claude Design.

🤖 Generated with Claude Code

## מה ולמה תגי-הספירה בתור-ההלכות הציגו מספרים עגולים-וחשודים שהם **תקרות-שאילתה**, לא ספירה אמיתית: | מה הוצג | מקור | אמיתי | |---|---|---| | ממתינות **500** | `pendingData.items.length` (limit=500) | **1373** | | נדחו **1000** | `useHalachotByStatus(...,1000)` | **1638** | | אושרו **1000** | `useHalachotByStatus(...,1000)` | **2100** | בנוסף, התגים התעדכנו **רק בכניסה לדף** (אין `refetchInterval`). ## התיקון - `/api/precedent-library/stats` כבר מריץ `COUNT(*)` אמיתי — מוסיף לו `halachot_rejected` + `halachot_deferred`. - `HalachaReviewPanel` קורא את שלוש הספירות מהמקור הזה במקום מ-`len(rows)` המתוקרת. `useHalachaCount` המיותר הוסר. - `useLibraryStats` מקבל `refetchInterval` (30s) → התגים עוקבים חי אחרי אישורים. תור-העבודה עצמו עדיין נטען עד 500 פריטים (cap-עבודה לגיטימי) — רק **תצוגת הספירות** תוקנה. ## Invariants - **G1** — נרמול-במקור: ספירה אמיתית מ-`COUNT(*)` במקום `len(rows)` מתוקרת-בקריאה. - **G2** — אין endpoint-ספירה מקביל; מאוחד על מקור-הספירה הקיים (`precedent_library_stats`). ## בדיקות - `tsc --noEmit` ✓ · `eslint` (קבצים שהשתנו) ✓ · `py_compile` ✓ - `npm run api:types` ידחה לאחר deploy (ה-openapi החי טרם כולל את השדות החדשים); ה-type הכתוב-ביד `LibraryStats` כבר מעודכן. ## הקשר חלק מבאצ'-עדכוני-המסכים. סעיפים 1–5,11 (שינויי-UI) מנותבים בנפרד דרך שער-העיצוב Claude Design. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-16 08:48:43 +00:00
fix(halachot): ספירת-תור אמיתית + עדכון-חי בתגי-הכרעה (#6/#7/#8)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
Lint — undefined names / undefined-names (pull_request) Successful in 11s
0c78e30e07
המספרים בתגי תור-ההלכות היו תקרות-שאילתה ולא ספירה אמיתית:
- "ממתינות 500" = pendingData.items.length עם limit=500
- "נדחו 1000 / אושרו 1000" = useHalachotByStatus(...,1000) — תקרה 1000
ובלי refetchInterval התגים התעדכנו רק בכניסה לדף.

המקור האמיתי כבר קיים: /api/precedent-library/stats מריץ COUNT(*) אמיתי
(pending=1373, approved=2100). מוסיף לו halachot_rejected + halachot_deferred,
מחבר את תגי-ה-HalachaReviewPanel למקור הזה, ומוסיף polling (30s) כדי שהם
יתעדכנו חי. מסיר את useHalachaCount המיותר.

תור-העבודה עצמו עדיין נטען עד 500 פריטים (cap-עבודה לגיטימי); רק תצוגת
הספירות תוקנה להציג את הסך-האמיתי.

Invariants: מקיים G1 (נרמול-במקור — ספירה אמיתית מ-COUNT(*) במקום len(rows)
מתוקרת בקריאה) ו-G2 (מאחד על מקור-הספירה הקיים, ללא endpoint-ספירה מקביל).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 2570949b30 into main 2026-06-16 08:48:49 +00:00
chaim deleted branch worktree-halacha-real-counts 2026-06-16 08:48:50 +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#273