feat(case-ui): agents tab v2 + dismiss/reaper for stale interactions (#215)
מוקאפ 18i v2 (מאושר ב-Claude Design) + תיקון-מקור להצטברות pending interactions. UI (agent-activity-feed.tsx): - רוסטר-סוכנים קומפקטי, כל הסוכנים בשורה אחת (grid-cols-9); הוסרה שורת "מה הסוכן עושה עכשיו" — היא שייכה תגובה לפי role-fallback, כך שסוכנים בעלי אותו תפקיד הציגו טקסט זהה. - כל אירוע "ממתין לתשובתך" מקופל כאקורדיון (הראשון פתוח). - כפתור "התעלם" לכל בקשה ממתינה — מבטל שאלה כפולה/מיושנת בלי להעיר את הסוכן. - ציר-הזמן מקובץ לפי משימה (issue), כל קבוצה אקורדיון עם מזהה+סטטוס+מונה. Backend (#215 — מניעת הצטברות pending): - cancel_interaction: ביטול interaction בודד ישירות ל-cancelled, ללא wake_assignee (resolve רגיל היה מעיר את הסוכן). אין triggers על הטבלה. - reap_stale_interactions: reaper שמבטל pending על issues סגורים (done/cancelled) — המקור הדומיננטי לערימה. רץ כל 15 דק' ב-lifespan. - endpoint POST /api/cases/{case}/agents/interaction-dismiss (מאחורי כפתור "התעלם"). הכל דרך agent_platform_port (G12). supersede-at-creation נדחה (תועד ב-#215): ביטול-אוטומטי של שאלה על issue פעיל אחד על-פני אחר אינו דטרמיניסטי; הליבה הבטוחה = reaper-ליתומים + כפתור-ביטול, והשורש האמיתי הוא ריסון לולאות-recovery של Paperclip. Invariants: מקיים G12 (מגע-Paperclip רק דרך הפורט), G2 (אין מסלול מקביל — מרחיב את endpoints הסוכנים הקיימים), §6 (אין בליעת-שגיאות שקטה — הביטול מחזיר {ok,error}, ה-reaper מתעד warning). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,7 @@ from web.paperclip_client import (
|
||||
COMPANIES as PAPERCLIP_COMPANIES,
|
||||
accept_interaction as pc_accept_interaction,
|
||||
archive_project as pc_archive_project,
|
||||
cancel_interaction as pc_cancel_interaction,
|
||||
cancel_run as pc_cancel_run,
|
||||
create_project as pc_create_project,
|
||||
create_workflow_issue as pc_create_workflow_issue,
|
||||
@@ -50,6 +51,7 @@ from web.paperclip_client import (
|
||||
get_run_log as pc_get_run_log,
|
||||
list_live_runs as pc_list_live_runs,
|
||||
post_comment as pc_post_comment,
|
||||
reap_stale_interactions as pc_reap_stale_interactions,
|
||||
reject_interaction as pc_reject_interaction,
|
||||
reset_agent_session as pc_reset_agent_session,
|
||||
reset_case_agents as pc_reset_case_agents,
|
||||
@@ -111,6 +113,8 @@ __all__ = [
|
||||
"pc_accept_interaction",
|
||||
"pc_reject_interaction",
|
||||
"pc_respond_to_interaction",
|
||||
"pc_cancel_interaction",
|
||||
"pc_reap_stale_interactions",
|
||||
# agent-run observability + control (live view + smart management)
|
||||
"pc_list_live_runs",
|
||||
"pc_get_run_log",
|
||||
|
||||
Reference in New Issue
Block a user