fix(archive): מיון תיקי-ארכיב לפי תאריך-ארכוב (server-authoritative) #217

Merged
chaim merged 1 commits from worktree-archive-sort-fix into main 2026-06-12 04:40:21 +00:00
Owner

בעיה

דף /archive הציג תיקים בסדר updated_at במקום לפי תאריך-הארכוב, למרות שעמודת "תאריך ארכוב" סומנה כממוינת (▼). אומת על הנתונים החיים: archived_at מאוכלס ותקין; פונקציית-המיון של TanStack ממיינת נכון — אך ההסתמכות על מיון-בדפדפן לא הבטיחה את הסדר בטעינה.

שורש

list_cases() החזיר תמיד ORDER BY updated_at DESC (db.py), כך שהסדר ההתחלתי שגוי לפני/בלי מיון-לקוח.

תיקון

כש-archived_only=TrueORDER BY archived_at DESC NULLS LAST. הסדר הופך server-authoritative.

  • לא נוגע ברשימה הפעילה (updated_at DESC כשהיה).
  • ה-MCP tool cases.py:list_cases אינו מעביר archived_only → ללא שינוי התנהגות.
  • NULLS LAST הגנתי — archived_only ממילא מסנן NULLs.

Invariants

  • G1 — נרמול-במקור: הסדר נקבע בשאילתה (מקור-האמת), לא תיקון-בקריאה ב-UI.
  • G2 — אין מסלול-מקביל: אותו list_cases, ORDER BY מותנה.
  • INV-IA* — מקור-אמת יחיד לרשימת-הארכיב.

בדיקות

py_compile עובר. אין בדיקות-יחידה ל-list_cases; השינוי מינימלי ומבודד למסלול הארכיב.

🤖 Generated with Claude Code

## בעיה דף `/archive` הציג תיקים בסדר `updated_at` במקום לפי **תאריך-הארכוב**, למרות שעמודת "תאריך ארכוב" סומנה כממוינת (▼). אומת על הנתונים החיים: `archived_at` מאוכלס ותקין; פונקציית-המיון של TanStack ממיינת נכון — אך ההסתמכות על מיון-בדפדפן לא הבטיחה את הסדר בטעינה. ## שורש `list_cases()` החזיר תמיד `ORDER BY updated_at DESC` ([db.py](mcp-server/src/legal_mcp/services/db.py)), כך שהסדר ההתחלתי שגוי לפני/בלי מיון-לקוח. ## תיקון כש-`archived_only=True` → `ORDER BY archived_at DESC NULLS LAST`. הסדר הופך **server-authoritative**. - לא נוגע ברשימה הפעילה (`updated_at DESC` כשהיה). - ה-MCP tool `cases.py:list_cases` אינו מעביר `archived_only` → ללא שינוי התנהגות. - `NULLS LAST` הגנתי — `archived_only` ממילא מסנן NULLs. ## Invariants - **G1** — נרמול-במקור: הסדר נקבע בשאילתה (מקור-האמת), לא תיקון-בקריאה ב-UI. - **G2** — אין מסלול-מקביל: אותו `list_cases`, ORDER BY מותנה. - **INV-IA*** — מקור-אמת יחיד לרשימת-הארכיב. ## בדיקות `py_compile` עובר. אין בדיקות-יחידה ל-`list_cases`; השינוי מינימלי ומבודד למסלול הארכיב. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-12 04:39:54 +00:00
fix(archive): מיון תיקי-ארכיב לפי תאריך-ארכוב (server-authoritative)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 7s
d4dc58fe5a
דף /archive הציג תיקים בסדר updated_at במקום לפי תאריך-הארכוב, למרות
שעמודת "תאריך ארכוב" סומנה כממוינת. השורש: list_cases() החזיר תמיד
ORDER BY updated_at DESC, וההסתמכות על מיון-בדפדפן (TanStack) לא הבטיחה
את הסדר בטעינה הראשונית.

התיקון: כש-archived_only=True → ORDER BY archived_at DESC NULLS LAST.
הסדר הופך server-authoritative; לא נוגע ברשימה הפעילה ולא ב-MCP tool
(שאינו מעביר archived_only).

Invariants: G1 (נרמול-במקור — סדר נקבע בשאילתה, לא תיקון-בקריאה),
G2 (לא מסלול-מקביל — אותו list_cases), INV-IA* (מקור-אמת יחיד לרשימה).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit ebb9c211af into main 2026-06-12 04:40:21 +00:00
chaim deleted branch worktree-archive-sort-fix 2026-06-12 04:40:21 +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#217