refactor(web-ui): פירוק התנגשות-שם של Paperclip agent DTO + גבול-פלטפורמה מוצהר (R3, G12, #112) #176

Merged
chaim merged 1 commits from worktree-web-ui-platform-types into main 2026-06-10 09:34:12 +00:00
Owner

מה ולמה

R3 (G12) — עם תיקון-היקף בעקבות ממצא:

הממצא: התוכנית המקורית (namespace ל-paperclip.* בתוך types.ts) בלתי-ישימהtypes.ts נוצר-אוטומטית מ-OpenAPI ("Do not make direct changes"); 39 הפניות-Paperclip שם רק משקפות את ה-API של ה-backend (נשלט ע"י מודלי-Pydantic, לא ע"י הפרונט). הפרונט אינו שכבת-אינטליגנציה — שאר ההפניות הן הצגת-נתוני-פלטפורמה (activity feed, קישור-דאשבורד, סטטוס-ארכוב) או UI-ניהול מוצהר (paperclip-tab/agents-tab/paperclip-agents.ts) — כולן shell-adjacent לגיטימי תחת G12.

הבעיה האמיתית-והישימה שתוקנה: התנגשות-שם — PaperclipAgent הוגדר פעמיים עם shapes שונים: config מלא (paperclip-agents.ts) מול activity קל (agents.ts). פוצל: ה-activity-DTO → PaperclipAgentStatus; ה-config שומר PaperclipAgent. הוסף comment-כותרת שמסמן את agents.ts כמודול הצגת-פלטפורמה מוצהר.

מזין את R4 (#113): ה-leak-guard חייב להחריג קבצים-נוצרים (types.ts) ולא לכלול את הפרונט בהיקף שכבת-האינטליגנציה המוגנת (זו mcp-server/src + ה-Port ב-backend).

Invariants — הצהרה (חובה)

  • נוגע / מקיים: G12 (גבול-פלטפורמה מוצהר בפרונט; הפרדה בין הצגת-פלטפורמה לאינטליגנציה) · G2 (הסרת שם-טיפוס דו-משמעי).

צ'קליסט — פרוטוקול כתיבת-קוד

  • קראתי X15 + web-ui/AGENTS.md (types.ts auto-generated)
  • לא יוצר מסלול מקביל (G2) — מסיר התנגשות-שם
  • אין בליעה שקטה — לא רלוונטי
  • בדקתי מול X15 — תיקון-היקף ל-R3 מתועד
  • בדיקות עוברות

אימות

tsc --noEmit  →  clean ✓
eslint (agents.ts, agent-status-widget.tsx)  →  clean ✓
bare PaperclipAgent refs נותרו  →  רק config (paperclip-agents.ts) — אין עוד התנגשות

🤖 Generated with Claude Code

## מה ולמה R3 (G12) — **עם תיקון-היקף בעקבות ממצא**: **הממצא:** התוכנית המקורית (namespace ל-`paperclip.*` בתוך `types.ts`) **בלתי-ישימה** — `types.ts` נוצר-אוטומטית מ-OpenAPI ("Do not make direct changes"); 39 הפניות-Paperclip שם רק **משקפות את ה-API של ה-backend** (נשלט ע"י מודלי-Pydantic, לא ע"י הפרונט). הפרונט אינו שכבת-אינטליגנציה — שאר ההפניות הן **הצגת-נתוני-פלטפורמה** (activity feed, קישור-דאשבורד, סטטוס-ארכוב) או **UI-ניהול מוצהר** (`paperclip-tab`/`agents-tab`/`paperclip-agents.ts`) — כולן shell-adjacent לגיטימי תחת G12. **הבעיה האמיתית-והישימה שתוקנה:** התנגשות-שם — `PaperclipAgent` הוגדר **פעמיים** עם shapes שונים: config מלא (`paperclip-agents.ts`) מול activity קל (`agents.ts`). פוצל: ה-activity-DTO → `PaperclipAgentStatus`; ה-config שומר `PaperclipAgent`. הוסף comment-כותרת שמסמן את `agents.ts` כמודול הצגת-פלטפורמה מוצהר. **מזין את R4 (#113):** ה-leak-guard חייב **להחריג קבצים-נוצרים** (`types.ts`) ולא לכלול את הפרונט בהיקף שכבת-האינטליגנציה המוגנת (זו `mcp-server/src` + ה-Port ב-backend). ## Invariants — הצהרה (חובה) - **נוגע / מקיים:** **G12** (גבול-פלטפורמה מוצהר בפרונט; הפרדה בין הצגת-פלטפורמה לאינטליגנציה) · **G2** (הסרת שם-טיפוס דו-משמעי). ## צ'קליסט — פרוטוקול כתיבת-קוד - [x] קראתי X15 + web-ui/AGENTS.md (types.ts auto-generated) - [x] לא יוצר מסלול מקביל (G2) — מסיר התנגשות-שם - [x] אין בליעה שקטה — לא רלוונטי - [x] בדקתי מול X15 — תיקון-היקף ל-R3 מתועד - [x] בדיקות עוברות ## אימות ``` tsc --noEmit → clean ✓ eslint (agents.ts, agent-status-widget.tsx) → clean ✓ bare PaperclipAgent refs נותרו → רק config (paperclip-agents.ts) — אין עוד התנגשות ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-10 09:34:06 +00:00
ממצא: התוכנית המקורית (namespace ל-paperclip.* ב-types.ts) בלתי-ישימה — types.ts
נוצר-אוטומטית מ-OpenAPI ("Do not make direct changes"); הפניות-Paperclip שם רק משקפות
את ה-API של ה-backend, ונשלטות ע"י מודלי-ה-Pydantic, לא ע"י הפרונט. הפרונט אינו
שכבת-אינטליגנציה — הפניות-Paperclip בו הן הצגת-נתוני-פלטפורמה (activity feed, קישור
לדאשבורד, סטטוס-ארכוב) או UI-ניהול מוצהר (paperclip-tab/agents-tab) — כולן shell-adjacent
לגיטימי תחת G12.

הבעיה האמיתית-והישימה: התנגשות-שם — `PaperclipAgent` הוגדר פעמיים עם shapes שונים
(config ב-paperclip-agents.ts מול activity ב-agents.ts). פוצל: ה-activity-DTO →
`PaperclipAgentStatus`; ה-config שומר `PaperclipAgent`. + הערת-כותרת שמסמנת את agents.ts
כמודול הצגת-פלטפורמה מוצהר.

מזין את R4 (#113): leak-guard חייב להחריג קבצים-נוצרים (types.ts) ולא לכלול את הפרונט
בהיקף שכבת-האינטליגנציה המוגנת.

אימות: tsc --noEmit נקי; eslint נקי על הקבצים ששונו.

Invariants: G12 (גבול-פלטפורמה מוצהר בפרונט), G2 (הסרת שם-טיפוס כפול-משמעות).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 20781398ee into main 2026-06-10 09:34:12 +00:00
chaim deleted branch worktree-web-ui-platform-types 2026-06-10 09:34:12 +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#176