Commit Graph

93 Commits

Author SHA1 Message Date
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
Dave
2cc5907501 story-kit: start 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:37:40 +00:00
Dave
be3db53524 story-kit: accept 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui 2026-02-23 15:36:25 +00:00
Dave
8133ef2847 story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for merge 2026-02-23 15:36:09 +00:00
Dave
6afad0d10b story-kit: start 62_story_allow_frontend_ui_to_accept_permissions_requests 2026-02-23 15:34:56 +00:00
Dave
722a63949c story-80: approve test plan
Updates test_plan status to approved in the story file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:31:23 +00:00
Dave
2f09ce2584 story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for QA 2026-02-23 15:29:59 +00:00
Dave
2833cbcda9 story-80: remove model/apiKey and rate limit notifications from chat UI
Suppresses the noisy system-init notification '[model | apiKey: source]'
and rate limit notifications that were being streamed into the chat UI
from the claude_code provider. Normal chat functionality is unaffected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:29:41 +00:00
Dave
1d011d9041 story-kit: queue 79_story_agents_panel_skips_archived_work_on_startup for QA 2026-02-23 15:27:51 +00:00
Dave
de0f06dd4d story-kit: start 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:27:14 +00:00
Dave
e8153eabfa story-kit: start 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui 2026-02-23 15:26:34 +00:00
Dave
4e418f806c story-kit: start 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:19:29 +00:00
Dave
44e641966d story-kit: remove 70_story_server_owned_agent_completion_remove_report_completion_dependency 2026-02-23 15:18:39 +00:00
Dave
a18d78e7ac story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 15:14:08 +00:00
Dave
8bdbe8193c chore: sync pipeline story/bug files in worktree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:00:33 +00:00
Dave
e34dc6fb2c story-kit: queue 73_story_fade_out_completed_agents for QA 2026-02-23 14:18:47 +00:00
Dave
df94c2fa0b story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:15:50 +00:00
Dave
c672528294 story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for QA 2026-02-23 14:15:18 +00:00
Dave
4edf136f38 story-kit: queue 71_bug_server_health_endpoint_missing for QA 2026-02-23 14:09:56 +00:00
Dave
2826ff0349 story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:06:30 +00:00
Dave
2ed1bd8a00 story-kit: start 71_bug_server_health_endpoint_missing 2026-02-23 14:06:28 +00:00