refactor(court-fetch): usage_status קורא ממקור-האמת המשותף usage_limits (איחוד ההעתק השלישי) #268

Merged
chaim merged 1 commits from worktree-court-fetch-usage-dedup into main 2026-06-15 04:25:11 +00:00
Owner

מה ולמה

המשך ל-#265. שם אוחדו הדריינר+הסופרוויזר למודול usage_limits, אך נותר העתק שלישי של קריאת ה-OAuth usage endpoint ב-court_fetch_service/server.py:usage_status (הגשר שמזין את /operations). PR זה מסיר אותו — כעת מקור-אמת יחיד אחד לכל שלושת הקוראים.

השינוי

  • usage_status שומר את ה-cache-60ש' + serve-stale שלו, אבל את ה-fetch הגולמי קורא מ-usage_limits.subscription_usage() דרך run_in_executor (הקורא סינכרוני, urllib — לא חוסם את event-loop של aiohttp).
  • הסרת 3 הקבועים המשוכפלים: _CLAUDE_CRED_PATH / _OAUTH_USAGE_URL / _USAGE_UA.
  • התנהגות זהה: HTTP 200 + נתוני-ניצול · serve-stale ב-None · 502 אם אין cache.
  • נטו: -16 שורות.

אימות

  • import תחת venv תקין; usage_limits מחווט (75/65/65).
  • usage_status(None)HTTP 200, five_hour=50% / seven_day=45% דרך הקורא המשותף.
  • py_compile עובר; אין הפניות שיוריות לקבועים שהוסרו.

Invariants

G1/G2 — מקור-אמת יחיד ויחידי לקריאת-המכסה; אין מסלול/העתק מקביל.

הערה (post-merge)

שירות host-side (legal-court-fetch-service, pm2) — אחרי סנכרון הקובץ לעץ הראשי צריך pm2 restart legal-court-fetch-service + אימות curl 127.0.0.1:8771/usage.

🤖 Generated with Claude Code

## מה ולמה המשך ל-#265. שם אוחדו הדריינר+הסופרוויזר למודול `usage_limits`, אך נותר **העתק שלישי** של קריאת ה-OAuth usage endpoint ב-`court_fetch_service/server.py:usage_status` (הגשר שמזין את /operations). PR זה מסיר אותו — כעת **מקור-אמת יחיד אחד** לכל שלושת הקוראים. ## השינוי - `usage_status` שומר את ה-cache-60ש' + serve-stale שלו, אבל את ה-fetch הגולמי קורא מ-`usage_limits.subscription_usage()` דרך `run_in_executor` (הקורא סינכרוני, urllib — לא חוסם את event-loop של aiohttp). - הסרת 3 הקבועים המשוכפלים: `_CLAUDE_CRED_PATH` / `_OAUTH_USAGE_URL` / `_USAGE_UA`. - התנהגות זהה: HTTP 200 + נתוני-ניצול · serve-stale ב-None · 502 אם אין cache. - נטו: -16 שורות. ## אימות - import תחת venv תקין; `usage_limits` מחווט (75/65/65). - `usage_status(None)` → **HTTP 200, five_hour=50% / seven_day=45%** דרך הקורא המשותף. - `py_compile` עובר; אין הפניות שיוריות לקבועים שהוסרו. ## Invariants **G1/G2** — מקור-אמת יחיד ויחידי לקריאת-המכסה; אין מסלול/העתק מקביל. ## הערה (post-merge) שירות **host-side** (`legal-court-fetch-service`, pm2) — אחרי סנכרון הקובץ לעץ הראשי צריך `pm2 restart legal-court-fetch-service` + אימות `curl 127.0.0.1:8771/usage`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-15 04:25:05 +00:00
refactor(court-fetch): usage_status קורא ממקור-האמת המשותף usage_limits
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
62e4a962d4
מסיר את ההעתק השלישי של קריאת ה-OAuth usage endpoint. usage_status שומר את
ה-cache-60ש' + serve-stale שלו, אבל את ה-fetch הגולמי קורא כעת מ-
legal_mcp.services.usage_limits.subscription_usage() (אותו קורא שהדריינר
והסופרוויזר מגודרים עליו) דרך run_in_executor — כי הקורא סינכרוני (urllib).

- הסרת 3 הקבועים המשוכפלים (_CLAUDE_CRED_PATH/_OAUTH_USAGE_URL/_USAGE_UA).
- התנהגות זהה: HTTP 200 עם נתוני-ניצול, serve-stale ב-None, 502 אם אין cache.

אומת: import תחת venv תקין; usage_status(None) → HTTP 200, five_hour=50% /
seven_day=45% דרך הקורא המשותף. py_compile עובר.

הערה: שירות host-side (legal-court-fetch-service, pm2) — דורש pm2 restart אחרי
סנכרון לעץ הראשי.

Invariants: G1/G2 — מקור-אמת יחיד אחד ויחיד לקריאת-המכסה (כל שלושת הקוראים).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit bea2065640 into main 2026-06-15 04:25:11 +00:00
chaim deleted branch worktree-court-fetch-usage-dedup 2026-06-15 04:25:11 +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#268