Chaim
d2b622f28e
G12 Leak-Guard / leak-guard (pull_request) Successful in 5s
feat(ci): G12 leak-guard — enforce the Agent Platform Port seam (R4, #113)
המאכף האוטומטי של INV-G12 (docs/spec/X15 §4). שני כללים קשיחים:
1. mcp-server/src (שכבת-האינטליגנציה) ללא סמלי-Paperclip — allowlist מנומק לפי
substring ל-6 ההפניות הלגיטימיות (pm2-bridge + הערות-מקור company_id).
2. import seam — רק web/agent_platform_port.py (+ קבצי-המעטפת) מייבאים paperclip_*.
מימוש קנוני אחד (scripts/leak_guard.py, stdlib-בלבד), משותף לשלושה אכיפנים (G2):
• CI hard gate: .gitea/workflows/leak-guard.yaml (pull_request + push→main)
• pytest: mcp-server/tests/test_platform_port_leak_guard.py (כולל self-test שמוודא
שה-guard תופס הזרקה — לא ירקב)
• hook בזמן-אמת: spec-guard.sh בודק את התוכן-הנכתב (new_string/content) על כתיבה
ל-mcp-server/src ומזהיר על הזרקת-Paperclip (לא-deduped); תזכורת-הספ עודכנה ל-G1–G12.
מחריג קבצים-נוצרים (web-ui types.ts) ומעטפת מוצהרת; הפרונט מחוץ להיקף-האינטליגנציה
(ממצא R3). עודכן scripts/SCRIPTS.md.
אימות: סריקה נקייה exit 0; הזרקת pc.sh ל-mcp-server → exit 1; seam-violation ב-web → exit 1;
hook מזהיר על mcp-server ומזכיר-ספ על web; pytest 3 passed; bash -n + YAML תקינים.
Invariants: G12 (אכיפה), G2 (מאכף יחיד לשלושה צרכנים).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 09:40:42 +00:00
..
2026-05-10 05:58:52 +00:00
2026-05-31 18:42:13 +00:00
2026-05-26 11:26:52 +00:00
2026-05-27 10:06:22 +00:00
2026-04-14 15:28:16 +00:00
2026-05-03 20:04:33 +00:00
2026-05-26 08:34:40 +00:00
2026-06-08 06:53:31 +00:00
2026-05-26 11:26:52 +00:00
2026-06-06 19:45:43 +00:00
2026-06-06 18:10:01 +00:00
2026-04-03 10:21:47 +00:00
2026-04-09 16:45:49 +00:00
2026-06-06 19:55:45 +00:00
2026-05-26 11:26:52 +00:00
2026-04-16 18:49:10 +00:00
2026-06-08 11:59:21 +00:00
2026-04-16 18:49:30 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 08:57:23 +00:00
2026-05-31 14:58:13 +00:00
2026-05-31 14:58:13 +00:00
2026-06-08 15:19:14 +00:00
2026-06-08 10:21:39 +00:00
2026-05-04 17:47:05 +00:00
2026-05-31 08:57:42 +00:00
2026-05-31 14:12:45 +00:00
2026-06-07 18:18:41 +00:00
2026-06-07 20:12:58 +00:00
2026-06-06 21:29:46 +00:00
2026-06-06 19:55:45 +00:00
2026-06-08 10:21:39 +00:00
2026-06-08 05:01:03 +00:00
2026-06-07 21:11:30 +00:00
2026-06-07 18:18:41 +00:00
2026-06-08 08:07:45 +00:00
2026-06-07 20:33:18 +00:00
2026-06-10 09:40:42 +00:00
2026-06-07 21:04:44 +00:00
2026-06-07 20:31:53 +00:00
2026-06-07 21:04:44 +00:00
2026-06-08 08:57:23 +00:00
2026-06-08 06:04:53 +00:00
2026-06-08 05:13:49 +00:00
2026-06-07 19:43:53 +00:00
2026-06-06 15:34:49 +00:00
2026-05-26 11:26:52 +00:00
2026-05-03 19:24:52 +00:00
2026-06-06 19:45:43 +00:00
2026-04-14 15:55:55 +00:00
2026-05-04 17:25:45 +00:00
2026-05-26 09:34:23 +00:00
2026-06-07 19:43:53 +00:00
2026-06-03 07:55:42 +00:00
2026-05-03 16:43:48 +00:00
2026-04-03 10:21:47 +00:00
2026-04-16 18:49:30 +00:00
2026-06-10 09:40:42 +00:00
2026-06-10 09:40:42 +00:00
2026-06-08 10:57:57 +00:00
2026-05-31 11:14:44 +00:00
2026-05-04 17:25:45 +00:00
2026-05-30 11:26:19 +00:00
2026-05-26 09:17:33 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00
2026-05-03 18:43:41 +00:00