Dave
453e819b34
story-kit: accept 101_story_test_coverage_http_chat_rs_to_80
2026-02-23 22:03:22 +00:00
Dave
28146fc259
story-kit: merge 101_story_test_coverage_http_chat_rs_to_80
2026-02-23 22:02:55 +00:00
Dave
2a2e4884d2
story-kit: accept 93_bug_agent_session_id_is_null_while_running
2026-02-23 22:02:42 +00:00
Dave
5c708d17f9
story-kit: queue 105_story_test_coverage_io_shell_rs_to_95 for QA
2026-02-23 22:02:26 +00:00
Dave
85246a05a4
story-kit: queue 106_story_test_coverage_http_settings_rs_to_80 for QA
2026-02-23 22:01:00 +00:00
Dave
2422f26eff
story-kit: create 115_story_hot_reload_project_toml_agent_config_without_server_restart
2026-02-23 22:00:40 +00:00
Dave
a759a59a46
story-kit: queue 101_story_test_coverage_http_chat_rs_to_80 for merge
2026-02-23 22:00:33 +00:00
Dave
f45bc13522
story-kit: queue 93_bug_agent_session_id_is_null_while_running for merge
2026-02-23 21:54:16 +00:00
Dave
d2b0e7b940
story-kit: start 108_story_test_coverage_http_agents_rs_to_70
2026-02-23 21:47:09 +00:00
Dave
b798ac33fc
story-kit: queue 104_story_test_coverage_io_search_rs_to_95 for QA
2026-02-23 21:45:37 +00:00
Dave
f87fe6d5a8
story-kit: accept 100_story_test_coverage_http_context_rs_to_100
2026-02-23 21:41:44 +00:00
Dave
d3a29aac1a
story-kit: merge 100_story_test_coverage_http_context_rs_to_100
2026-02-23 21:41:25 +00:00
Dave
c755a4e633
story-kit: queue 100_story_test_coverage_http_context_rs_to_100 for merge
2026-02-23 21:40:53 +00:00
Dave and Claude Opus 4.6
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
2ad003b893
story-kit: accept 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 21:39:07 +00:00
Dave
3087297b88
story-kit: merge 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 21:38:45 +00:00
Dave
02a1edc3de
story-kit: accept 102_story_test_coverage_http_model_rs_to_80
2026-02-23 21:38:33 +00:00
Dave
7d18f93885
story-kit: start 104_story_test_coverage_io_search_rs_to_95
2026-02-23 21:37:55 +00:00
Dave
97df5845f0
story-kit: start 103_story_test_coverage_http_project_rs_to_80
2026-02-23 21:37:33 +00:00
Dave
e21c982d8b
story-kit: merge 102_story_test_coverage_http_model_rs_to_80
2026-02-23 21:37:20 +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
2408d41a33
story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for merge
2026-02-23 21:35:37 +00:00
Dave
f234def26a
story-kit: start 101_story_test_coverage_http_chat_rs_to_80
2026-02-23 21:35:34 +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
0bb13d2b67
story-kit: queue 102_story_test_coverage_http_model_rs_to_80 for QA
2026-02-23 21:29:22 +00:00
Dave
a4e1048bc8
story-kit: queue 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop for merge
2026-02-23 21:29:18 +00:00
Dave
dad0a76892
story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for QA
2026-02-23 21:28:09 +00:00
Dave
6b1a3c1ca3
story-kit: start 102_story_test_coverage_http_model_rs_to_80
2026-02-23 21:26:13 +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
5b7f65aa2c
story-kit: start 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 21:16:33 +00:00
Dave
1c2ee3c1bd
story-kit: create 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 21:16:00 +00:00
Dave
f71677256a
story-kit: create 113_story_add_test_coverage_for_usepathcompletion_hook
2026-02-23 21:13:52 +00:00
Dave
83b91aace3
story-kit: create 112_story_add_test_coverage_for_app_tsx
2026-02-23 21:13:46 +00:00
Dave
69b058e257
story-kit: create 111_story_add_test_coverage_for_api_agents_ts
2026-02-23 21:13:41 +00:00
Dave
d321294cc9
story-kit: create 110_story_add_test_coverage_for_api_settings_ts
2026-02-23 21:13:36 +00:00
Dave
5d6b269ed4
story-kit: create 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components
2026-02-23 21:13:30 +00:00
Dave
c3b9b29fa9
story-kit: accept 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
2026-02-23 21:13:22 +00:00
Dave
ee2cce0b26
story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for merge
2026-02-23 21:12:50 +00:00
Dave and Claude Sonnet 4.6
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
b5cec1942b
story-kit: create 108_story_test_coverage_http_agents_rs_to_70
2026-02-23 21:11:10 +00:00
Dave
e284483cbb
story-kit: create 107_story_test_coverage_http_assets_rs_to_85
2026-02-23 21:11:07 +00:00
Dave
a4ce32ca88
story-kit: create 106_story_test_coverage_http_settings_rs_to_80
2026-02-23 21:11:05 +00:00
Dave
ecab2ef916
story-kit: create 105_story_test_coverage_io_shell_rs_to_95
2026-02-23 21:11:02 +00:00
Dave
4a206f3294
story-kit: create 104_story_test_coverage_io_search_rs_to_95
2026-02-23 21:11:00 +00:00
Dave
8502bdf80c
story-kit: create 103_story_test_coverage_http_project_rs_to_80
2026-02-23 21:10:54 +00:00
Dave
c09f91ff27
story-kit: create 102_story_test_coverage_http_model_rs_to_80
2026-02-23 21:10:52 +00:00
Dave
76d72a66a1
story-kit: create 101_story_test_coverage_http_chat_rs_to_80
2026-02-23 21:10:49 +00:00
Dave
9b8f9d788b
story-kit: create 100_story_test_coverage_http_context_rs_to_100
2026-02-23 21:10:47 +00:00
Dave
73fbd11689
story-kit: create 99_story_test_coverage_http_health_rs_to_100
2026-02-23 21:10:45 +00:00
Dave
6498f9d994
story-kit: start 98_story_expand_work_item_to_full_screen_detail_view
2026-02-23 21:02:03 +00:00
Dave
25802b8a28
story-kit: create 98_story_expand_work_item_to_full_screen_detail_view
2026-02-23 21:01:27 +00:00
Dave
058ea8f398
story-kit: create 98_story_expand_work_item_to_full_screen_detail_view
2026-02-23 21:00:39 +00:00
Dave
6d87355577
Merge branch 'feature/story-97_bug_agent_pool_allows_multiple_instances_of_the_same_agent_to_run_concurrently'
2026-02-23 20:53:54 +00:00
Dave and Claude Opus 4.6
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 and Claude Sonnet 4.6
b09b6ce4f1
fix(agents): enforce single-instance concurrency per agent name
...
The agent pool allowed the same agent (e.g. "qa") to run concurrently
on multiple stories because start_agent() only checked whether that
story+agent combo was already active. It did not check whether the
agent was busy on a different story.
Two concurrent QA runs each spawn cargo clippy + cargo test + vitest,
causing extreme CPU load (load average >33 on M1 Mac).
Fix: before registering a new agent as Pending, scan all active entries
for any Running or Pending entry with the same agent_name. If one is
found, return an error explaining that the story will be picked up when
the agent becomes available.
The existing auto_assign_available_work() mechanism already scans
pipeline directories (3_qa/, 4_merge/, etc.) for unassigned stories
and uses find_free_agent_for_stage() — which respects single-instance
limits — to assign work when an agent slot opens up. So the queuing
behaviour is naturally provided: the story stays in its directory,
and auto-assign picks it up when the previous run completes.
Adds two regression tests:
- start_agent_rejects_when_same_agent_already_running_on_another_story
- start_agent_allows_new_story_when_previous_run_is_completed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-23 20:46:51 +00:00
Dave
7f18542c09
story-kit: queue 93_story_expose_server_logs_to_agents_via_mcp for merge
2026-02-23 20:42:26 +00:00
Dave
0de1a3f113
story-kit: queue 89_story_persistent_per_session_agent_logs for merge
2026-02-23 20:42:23 +00:00
Dave
1366f64c3d
story-kit: queue 89_story_persistent_per_session_agent_logs for QA
2026-02-23 20:40:24 +00:00
Dave
b46a72730c
story-kit: queue 93_story_expose_server_logs_to_agents_via_mcp for QA
2026-02-23 20:40:13 +00:00
Dave and Claude Sonnet 4.6
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
ec0f48656b
story-kit: start 97_bug_agent_pool_allows_multiple_instances_of_the_same_agent_to_run_concurrently
2026-02-23 20:39:47 +00:00
Dave
64e76f4bb9
story-kit: accept 94_bug_stale_agent_state_persists_after_server_restart
2026-02-23 20:38:37 +00:00
Dave and Claude Sonnet 4.6
8c6bd4cf74
feat(story-93): expose server logs to agents via get_server_logs MCP tool
...
- Add log_buffer module: bounded 1000-line ring buffer with push/get_recent API
- Add slog! macro: drop-in for eprintln! that also captures to ring buffer
- Replace all eprintln! calls across agents, watcher, search, chat, worktree, claude_code with slog!
- Add get_server_logs MCP tool: accepts count (1-500) and optional filter params
- 5 unit tests for log_buffer covering push/retrieve, eviction, filtering, count limits, empty buffer
- 262 tests passing, clippy clean
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-23 20:38:19 +00:00
Dave
cd902ff219
story-kit: merge 94_bug_stale_agent_state_persists_after_server_restart
2026-02-23 20:38:17 +00:00
Dave
39dbace8bf
story-kit: create 97_bug_agent_pool_allows_multiple_instances_of_the_same_agent_to_run_concurrently
2026-02-23 20:38:16 +00:00
Dave
dc1e441a86
story-kit: queue 94_bug_stale_agent_state_persists_after_server_restart for merge
2026-02-23 20:38:04 +00:00
Dave
1a70d4303d
story-kit: queue 94_bug_stale_agent_state_persists_after_server_restart for QA
2026-02-23 20:36:52 +00:00
Dave
c291613887
story-kit: start 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster
2026-02-23 20:34:54 +00:00
Dave
7925fd8fbc
story-kit: queue 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop for QA
2026-02-23 20:33:36 +00:00
Dave
d371960d05
story-kit: create 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster
2026-02-23 20:33:02 +00:00
Dave
f0ec507cc4
story-kit: start 93_story_expose_server_logs_to_agents_via_mcp
2026-02-23 20:31:01 +00:00
Dave
3d480e7c22
story-kit: accept 78_story_create_spike_mcp_tool
2026-02-23 20:27:28 +00:00
Dave
a25553f1bc
story-kit: merge 78_story_create_spike_mcp_tool
2026-02-23 20:27:09 +00:00
Dave
2b3063ace2
story-kit: queue 78_story_create_spike_mcp_tool for merge
2026-02-23 20:26:55 +00:00
Dave
0c9883fe10
story-kit: start 89_story_persistent_per_session_agent_logs
2026-02-23 20:26:24 +00:00
Dave
421c702aad
story-kit: queue 78_story_create_spike_mcp_tool for QA
2026-02-23 20:25:47 +00:00
Dave
c4f92ee7db
story-kit: start 94_bug_stale_agent_state_persists_after_server_restart
2026-02-23 20:24:15 +00:00
Dave
64e76b21c3
story-kit: start 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop
2026-02-23 20:23:45 +00:00
Dave
22b862023b
story-kit: start 78_story_create_spike_mcp_tool
2026-02-23 20:21:35 +00:00
Dave
a18d4350ae
chore: add .vite/ Vitest cache to .gitignore
2026-02-23 20:19:11 +00:00
Dave
aa2149e506
story-kit: create 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop
2026-02-23 20:15:28 +00:00
Dave
8d58e3999d
story-kit: create 94_bug_stale_agent_state_persists_after_server_restart
2026-02-23 20:04:46 +00:00
Dave
06586a5b70
story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
2026-02-23 20:02:47 +00:00
Dave
9da25a149d
story-kit: create 93_story_expose_server_logs_to_agents_via_mcp
2026-02-23 19:59:07 +00:00
Dave
1a7948b15a
story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for QA
2026-02-23 19:54:05 +00:00
Dave
41fce3322c
story-kit: start 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 19:52:53 +00:00
Dave
7f139917b4
story-kit: create 91_bug_permissions_dialog_never_triggers_in_web_ui
2026-02-23 19:52:26 +00:00
Dave and Claude Sonnet 4.6
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 and Claude Opus 4.6
d1d7ce47ac
Switch all Sonnet agents from 4.6 to 4.5 for speed
...
Sonnet 4.6 is too slow for small stories — agents burn through turns
without completing. Reverting coders, QA, and mergemaster to Sonnet 4.5.
Supervisor and coder-opus remain on Opus.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 19:50:10 +00:00
Dave
02a617eee3
story-kit: queue 93_bug_agent_session_id_is_null_while_running for QA
2026-02-23 19:49:04 +00:00
Dave
306514e6d2
story-kit: start 93_bug_agent_session_id_is_null_while_running
2026-02-23 19:43:18 +00:00
Dave
0aaefc34c2
story-kit: create 93_bug_agent_session_id_is_null_while_running
2026-02-23 19:39:37 +00:00
Dave
03f243b670
story-kit: create 92_spike_stop_auto_committing_intermediate_pipeline_moves
2026-02-23 19:37:28 +00:00
Dave
63cfd5818c
story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
2026-02-23 19:27:08 +00:00
Dave
a91d663894
story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
2026-02-23 19:26:54 +00:00
Dave and Claude Opus 4.6
04e7a1e854
Remove invalid --directory flag that broke agent spawning
...
The --directory flag does not exist in Claude Code CLI. It was added in
c169cfc but caused every agent spawn to exit immediately with "unknown
option", resulting in Session: None errors. The process cwd (set via
cmd.cwd()) already correctly pins agents to the worktree directory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 19:26:37 +00:00
Dave
42ad712a74
story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
2026-02-23 19:19:44 +00:00
Dave
c70399a39b
story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
2026-02-23 19:13:35 +00:00
Dave
8b9d77e2f2
story-kit: remove 92_story_test_story_creation_without_test_plan
2026-02-23 19:13:11 +00:00