Commit Graph

1665 Commits

Author SHA1 Message Date
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
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
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
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
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
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