Commit Graph

155 Commits

Author SHA1 Message Date
Dave
77547972c4 feat(story-193): clickable code references in frontend 2026-02-26 12:34:57 +00:00
Dave
8d29956dea story-kit: merge 199_story_web_ui_submits_all_queued_items_at_once 2026-02-26 12:05:08 +00:00
Dave
b5e5b783a3 story-kit: done 195_story_preserve_newlines_in_chat_message_submission 2026-02-25 18:19:33 +00:00
Dave
9f469068fc story-kit: merge 195_story_preserve_newlines_in_chat_message_submission 2026-02-25 18:16:46 +00:00
Dave
91a2daf481 story-kit: merge 196_story_render_code_fences_in_user_chat_messages 2026-02-25 18:08:08 +00:00
Dave
cc59f0fcfc story-kit: merge 186_story_add_storkit_branding_to_header 2026-02-25 15:32:03 +00:00
Dave
71691a63ce story-kit: merge 178_story_fix_chat_textarea_input_lag 2026-02-25 11:41:44 +00:00
Dave
48223b517d story-kit: create 174_story_matrix_chatbot_interface_for_story_kit 2026-02-25 11:40:09 +00:00
Dave
42c40209d2 story-kit: merge 174_story_constrain_thinking_traces_in_chat_panel 2026-02-25 09:32:48 +00:00
Dave
150f654e04 story-kit: merge 166_story_add_done_column_to_pipeline_board
Add Done column to pipeline board. Adds the 'done' stage to
PipelineState, exposes it via the WebSocket and REST API, and
renders a Done column in the frontend pipeline board view.

Squash merge from feature/story-166_story_add_done_column_to_pipeline_board.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:42:59 +00:00
Dave
dc631d1933 story-kit: merge 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped 2026-02-24 23:09:13 +00:00
Dave
74eeb308e1 story-kit: merge 168_bug_agent_message_queue_limited_to_one_line 2026-02-24 19:17:33 +00:00
Dave
464b1e5530 story-kit: merge 160_story_constrain_thinking_trace_height_in_agent_stream_ui 2026-02-24 18:03:08 +00:00
Dave
ee8be90ce5 story-kit: merge 163_story_remove_bubble_styling_from_streaming_chat_messages 2026-02-24 17:51:55 +00:00
Dave
6f7338dfdb story-kit: accept 145_story_persist_chat_history_to_localstorage_across_rebuilds 2026-02-24 17:03:04 +00:00
Dave
bb1c3ac97c story-kit: merge 155_story_queue_messages_while_agent_is_busy 2026-02-24 16:29:05 +00:00
Dave
5567cdf480 story-kit: merge 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:34:31 +00:00
Dave
03ca8624cd story-kit: start 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix 2026-02-24 15:26:39 +00:00
Dave
de79644263 story-kit: merge 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds 2026-02-24 14:01:55 +00:00
Dave
41d86d29d0 story-kit: merge 143_story_remove_0_running_count_from_agents_panel_header 2026-02-24 13:59:10 +00:00
Dave
a39ba2cef6 story-kit: merge 140_bug_activity_status_indicator_never_visible_due_to_display_condition 2026-02-24 13:28:43 +00:00
Dave
17abf36d9f story-kit: merge 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates 2026-02-24 13:09:25 +00:00
Dave
5226438b16 story-kit: merge 138_bug_no_heartbeat_to_detect_stale_websocket_connections 2026-02-24 13:05:30 +00:00
Dave
557b6e9267 fix: resolve merge conflict artifacts from story-86 merge
- Add missing closing brace and #[test] attr between test functions in claude_code.rs
- Remove premature semicolon in TypeScript union type in client.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:33:31 +00:00
Dave
4e4802314f story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat 2026-02-24 12:32:14 +00:00
Dave
2e2f70df72 Revert "story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat"
This reverts commit ef162d91ff.
2026-02-24 12:16:45 +00:00
Dave
ef162d91ff story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat 2026-02-24 12:08:59 +00:00
Dave
e6339979de feat(story-115): hot-reload project.toml agent config without server restart
- Extend `WatcherEvent` to an enum with `WorkItem` and `ConfigChanged` variants
  so the watcher can distinguish between pipeline-file changes and config changes
- Watch `.story_kit/project.toml` at the project root (ignoring worktree copies)
  and broadcast `WatcherEvent::ConfigChanged` on modification
- Forward `agent_config_changed` WebSocket message to connected clients; skip
  pipeline state refresh for config-only events
- Add `is_config_file()` helper with unit tests covering root vs. worktree paths
- Accept `configVersion` prop in `AgentPanel` and re-fetch the agent roster
  whenever it increments
- Increment `agentConfigVersion` in `Chat` on receipt of `agent_config_changed`
  WS event via new `onAgentConfigChanged` handler in `ChatWebSocket`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 22:58:51 +00:00
Dave
85fddcb71a story-kit: merge 117_story_show_startup_reconciliation_progress_in_ui 2026-02-23 22:50:57 +00:00
Dave
6bf523d31e story-kit: merge 112_story_add_test_coverage_for_app_tsx 2026-02-23 22:45:59 +00:00
Dave
17b909c97f story-kit: merge 113_story_add_test_coverage_for_usepathcompletion_hook 2026-02-23 22:32:39 +00:00
Dave
cee2fbe99e story-kit: merge 111_story_add_test_coverage_for_api_agents_ts 2026-02-23 22:31:25 +00:00
Dave
a8f3624b4c story-kit: merge 110_story_add_test_coverage_for_api_settings_ts 2026-02-23 22:30:04 +00:00
Dave
a3b0dc0161 story-kit: merge 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components 2026-02-23 22:28:13 +00:00
Dave
40b0cd77c9 fix: resolve merge conflicts from story-95/96 squash merges
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:39:40 +00:00
Dave
52b9bc2994 story-kit: accept 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop 2026-02-23 21:37:05 +00:00
Dave
fcf7984a89 story-kit: queue 100_story_test_coverage_http_context_rs_to_100 for QA 2026-02-23 21:34:59 +00:00
Dave
94ac7639ad Merge branch 'feature/story-85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating'
# Conflicts:
#	.coverage_baseline
2026-02-23 21:24:44 +00:00
Dave
4740a24032 fix: add text reporter to vitest so coverage script can parse frontend coverage
The coverage script parses "All files" from vitest text table output, but
vitest was only configured with json-summary reporter. This caused frontend
coverage to show as 0%, pulling overall coverage below threshold.

Frontend line coverage is 68.4%, making overall coverage 66.4% vs 64.60% threshold.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 21:11:51 +00:00
Dave
a0f317292c story-kit: merge 93_story_expose_server_logs_to_agents_via_mcp
Adds log_buffer ring buffer and slog! macro for in-memory server log
capture, plus get_server_logs MCP tool for agents to read recent logs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:53:37 +00:00
Dave
bed46fea1b story-kit: accept 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster 2026-02-23 20:52:06 +00:00
Dave
c1ff530e50 fix: allow e2e tests to reuse existing vite server on port conflict
Set reuseExistingServer:true in playwright config so acceptance gates
don't fail when port 41700 is already occupied by a prior test run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 20:39:57 +00:00
Dave
6c1f8555e8 feat(story-85): agent lozenges move between roster and work items
- Add `hiddenRosterAgents: ReadonlySet<string>` to LozengeFlyContext:
  - Derived from pipeline: any agent currently assigned to a work item
  - `flyingOutAgents` state keeps badge hidden for 500 ms during the
    fly-out animation so the returning clone lands before the badge reappears
  - Union of both sets exposed as `hiddenRosterAgents` in context
- Update AgentPanel: wrap each RosterBadge in a collapsing div
  controlled by `hiddenRosterAgents`. The div transitions max-width
  0→300px / opacity 0→1 so the roster gap closes/opens smoothly.
- Add tests covering:
  - `hiddenRosterAgents` is empty when no agents are assigned
  - Badge hidden immediately when agent appears in pipeline
  - Badge hidden during fly-out (0–499 ms) and visible after (≥500 ms)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 19:52:23 +00:00
Dave
af1625a132 story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat 2026-02-23 18:38:15 +00:00
Dave
ac22e9a882 story-kit: merge 87_story_update_agent_lozenge_colour_scheme_across_panels 2026-02-23 18:23:01 +00:00
Dave
d278c194fd fix: remove stray conflict marker in AgentPanel.test.tsx
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:19:38 +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
8c2b6ee02c Merge story 81: agent roster badges show availability state
Green dot and styling for idle agents, blue pulsing dot for active.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:06:16 +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
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