Commit Graph

113 Commits

Author SHA1 Message Date
Dave
8fb6d09aa0 story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 18:22:23 +00:00
Dave
8e12156e1b story-kit: accept 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 18:20:45 +00:00
Dave
225073649b story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 18:20:24 +00:00
Dave
2e0f516530 story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for QA 2026-02-23 18:17:25 +00:00
Dave
393cd567c2 story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating 2026-02-23 18:12:33 +00:00
Dave
7146f2a70c story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 18:12:29 +00:00
Dave
b37364b4ea story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating 2026-02-23 18:11:43 +00:00
Dave
361ffbffa0 story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 18:05:56 +00:00
Dave
329fca2f84 story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 18:05:52 +00:00
Dave
af14d1c03f story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 18:00:33 +00:00
Dave
1453651ec5 story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 17:59:35 +00:00
Dave
c68de1a6b8 story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for merge 2026-02-23 17:51:38 +00:00
Dave
bbeda44b81 story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 17:49:30 +00:00
Dave
6e035f25c5 story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 17:48:31 +00:00
Dave
c99e941676 story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment 2026-02-23 17:47:59 +00:00
Dave
2717d90c51 story-kit: create 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 17:46:37 +00:00
Dave
b7cc919d7e story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 17:37:25 +00:00
Dave
0113d89cbf story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment 2026-02-23 17:33:07 +00:00
Dave
6003834d4c story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for QA 2026-02-23 17:21:19 +00:00
Dave
328247d835 story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup 2026-02-23 17:19:58 +00:00
Dave
6be3c3fda6 story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 17:15:09 +00:00
Dave
dcd5727032 story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for QA 2026-02-23 17:05:33 +00:00
Dave
c62f6a103e story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 16:57:02 +00:00
Dave
cb86297caa story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 16:56:24 +00:00
Dave
501ddafe38 story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 16:52:06 +00:00
Dave
cc885d90ab story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 16:48:50 +00:00
Dave
48c0b94f6a story-kit: start 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat 2026-02-23 16:48:48 +00:00
Dave
ecdc51c283 story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA 2026-02-23 16:46:59 +00:00
Dave
cbaed652c7 story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 16:45:46 +00:00
Dave
530d5c4094 story-kit: queue 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees for QA 2026-02-23 16:30:19 +00:00
Dave
c6026b9e22 story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA 2026-02-23 16:28:22 +00:00
Dave
61a3454585 story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating 2026-02-23 16:27:17 +00:00
Dave
53ffd2af2d story-kit: start 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees 2026-02-23 16:18:01 +00:00
Dave
72f4ec9ab7 story-kit: remove 83_story_remove_active_work_list_from_agents_panel 2026-02-23 16:09:59 +00:00
Dave
71ed6f429a Merge story 80: remove model/apikey and rate limit notifications from chat UI
Resolves conflict in claude_code.rs — keeps story 62's permission_request
handler alongside story 80's suppression of system/rate_limit events.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:09:43 +00:00
Dave
87c2e60dd4 Merge story 62: allow frontend UI to accept permission requests
Surfaces permission prompts in the web UI chat so the interactive
agent can request file writes, commits, etc.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:07:38 +00:00
Dave
d3bd26a4de story-kit: start 62_story_allow_frontend_ui_to_accept_permissions_requests 2026-02-23 16:07:24 +00:00
Dave
72741f7ea2 Merge story 83: remove active work list from agents panel
Resolves conflict in AgentPanel.test.tsx (duplicate RosterBadge tests
from story 81 merge).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:07:19 +00:00
Dave
016ad7f359 story-kit: accept 83_story_remove_active_work_list_from_agents_panel 2026-02-23 16:04:18 +00:00
Dave
29eff51182 story-kit: start 83_story_remove_active_work_list_from_agents_panel 2026-02-23 16:04:02 +00:00
Dave
0e8451c412 story-kit: accept 62_story_allow_frontend_ui_to_accept_permissions_requests 2026-02-23 16:01:43 +00:00
Dave
6962e92f0c fix: resolve merge conflict in claude_code.rs
Keep master's quiet system/rate_limit_event handlers while preserving
the story-62 permission_request handler (the core feature).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 16:01:22 +00:00
Dave
1a73b88d85 story-83: remove active work list from Agents panel
Remove the "agents-at-work" list section from AgentPanel. The roster
badges with flying lozenge animations already convey which agents are
active, making the redundant list unnecessary.

- Remove StatusBadge, DiffCommand, EditorCommand components
- Remove expandedKey, logEndRefs, fade-timer state and effects
- Remove handleStop (no more Stop buttons)
- Keep agents state + SSE subscriptions (roster badges still need it)
- Delete diff-command and fade-out tests (feature removed)
- Add test asserting no agent-entry divs are rendered

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 16:00:14 +00:00
Dave
a2409c2ace story-kit: queue 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input for QA 2026-02-23 15:57:21 +00:00
Dave
3c5dbf7050 story-kit: queue 62_story_allow_frontend_ui_to_accept_permissions_requests for QA 2026-02-23 15:56:35 +00:00
Dave
e0bc4bdc90 feat(story-62): add permission request prompts to web UI
When Claude Code requires user approval before executing a tool (file
writes, commits, etc.) the agent sends a permission_request message
over the WebSocket.  The web UI now intercepts that message, surfaces a
modal dialog showing the tool name and input, and lets the user approve
or deny.  The decision is sent back as a permission_response, allowing
the agent to continue or adjust its approach.

Backend changes:
- claude_code.rs: parse "permission_request" NDJSON events from the PTY,
  block the PTY thread via a sync channel, and write the user's decision
  back to the PTY stdin as a JSON permission_response.
- chat.rs: thread an optional UnboundedSender<PermissionReqMsg> through
  to the provider.
- ws.rs: create a permission-request channel, forward requests to the
  client, collect responses via a pending-perms map, and interleave all
  of this with the active chat session using tokio::select!.

Frontend changes:
- client.ts: add permission_request to WsResponse, permission_response
  to WsRequest, onPermissionRequest handler to ChatWebSocket.connect(),
  and sendPermissionResponse() method.
- types.ts: mirror the same type additions.
- Chat.tsx: add permissionRequest state, wire onPermissionRequest
  callback, and render an approval modal with tool name, input context,
  Approve and Deny buttons.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:56:01 +00:00
Dave
d19a548b96 story-kit: start 83_story_remove_active_work_list_from_agents_panel 2026-02-23 15:53:48 +00:00
Dave
980b7f880a story-kit: start 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input 2026-02-23 15:50:26 +00:00
Dave
b62ccc9573 story-kit: queue 81_story_agent_roster_badges_show_availability_state for QA 2026-02-23 15:44:03 +00:00
Dave
2386484c49 story-kit: start 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:40:11 +00:00