-
v0.4.1 Stable
released this
2026-03-20 12:58:04 +00:00 | 56 commits to master since this releaseWhat's Changed
Features
- Improve htop output formatting for mobile matrix clients
- Show token cost per story in bot status command output
- Whatsapp business api integration for bot commands
- Whatsapp 24 hour messaging window and template support
- Whatsapp llm passthrough for conversational queries
- Slack bot integration for bot commands
- Slack slash commands for pipeline management
- Bot overview command shows implementation summary for a story
- Bot start command to start a coder on a story
- Bot move command to move stories between pipeline stages
- Web ui button to start a coder on a story
- Web ui button to stop an agent on a story
- Web ui agent assignment dropdown on work items
- Web ui rebuild and restart button
- Web ui button to delete a story from the pipeline
- Mcp tool for shell command execution
- Bot reset command to clear conversation context
- Add party emoji to done stage notification messages
Bug Fixes
- Auto assign assigns mergemaster to coding stage stories
- Ambient on off command not intercepted by bot after refactors
Refactors
- Abstract bot transport layer for multi platform support
- Split pool rs into pipeline auto assign and agent management modules
- Split mcp rs into domain specific tool modules
- Split workflow rs into story bug and test result modules
- Split commands rs into individual command handler modules
Full diff: https://code.crashlabs.io/dave/storkit/compare/v0.4.0...v0.4.1
Downloads
-
v0.4.0 Stable
released this
2026-03-19 17:08:30 +00:00 | 200 commits to master since this releaseWhat's Changed
Features
- Human qa gate with rejection flow
- Show server logs in web ui
- Register all bot commands in the command registry
- Rename app title from story kit to storkit
- Track per agent token usage for cost visibility and optimisation
- Improve bot status command formatting
- Bot htop command with live updating process dashboard
- Bot git status command shows working tree and branch info
- Show token cost badge on pipeline board work items
- Dedicated token usage page in web ui
- Bot cost command shows total and per story token spend
- Mcp tool to move stories between pipeline stages
- Bot show command displays story text in chat
- Replace manual qa boolean with configurable qa mode field
- Configurable coder pool size and default model in project toml
- Show token cost breakdown in expanded work item detail panel
- Bot delete command removes a story from the pipeline
- Server enforced retry limits for failed merge and empty diff stories
Other Changes
- fix: suppress unused variable TS errors that block release build
- fix: suppress unused variable TS errors that block release build
- fix: biome formatting and lint fixes in App.tsx and TokenUsagePage.tsx
- fix: return arrays for list endpoints in test fetch mock
- fix: mock fetch in test setup to suppress URL parse errors in jsdom
- chore: gitignore token_usage.jsonl
- fix: call auto_assign_available_work after every pipeline advance (bug 295)
- fix: default manual_qa to false so stories advance automatically
- Updated toml to 1.0.7
- Fixed some bot tests.
- fix: rename remaining 1_upcoming references to 1_backlog in bot.rs
- chore: commit pending changes from session
Full diff: https://code.crashlabs.io/dave/story-kit/compare/v0.3.2...v0.4.0
Downloads
-
v0.3.2 Stable
released this
2026-03-18 15:32:56 +00:00 | 296 commits to master since this releaseWhat's Changed
Features
- Matrix bot ambient mode toggle via chat command
- Matrix bot status command shows pipeline and agent availability
- Matrix bot help command lists available bot commands
- Server self rebuild and restart via mcp tool
- Rename upcoming pipeline stage to backlog
- Show agent output stream in expanded work item detail panel
Bug Fixes
- Ambient mode state lost on server restart
- Rebuild and restart mcp tool does not rebuild
Other Changes
- fix: biome formatting in Chat.test.tsx and ChatInput.tsx
- fix: QA agents must not pkill -f story-kit (kills vite dev server)
- Update Cargo.lock version to 0.3.1
Full diff: https://code.crashlabs.io/dave/story-kit/compare/v0.3.1...v0.3.2
Downloads
-
v0.3.1 Stable
released this
2026-03-18 11:51:45 +00:00 | 348 commits to master since this releaseWhat's Changed
Features
- Matrix bot announces itself when it comes online
Other Changes
- Update Cargo.lock
- fix: unused system_prompt variable warning
- fix: --system is not a valid Claude Code CLI flag
Full diff: https://code.crashlabs.io/dave/story-kit/compare/v0.3.0...v0.3.1
Downloads
-
v0.3.0 Stable
released this
2026-03-18 11:37:16 +00:00 | 357 commits to master since this releaseWhat's Changed
Features
- Spikes skip merge and stop for human review
- Matrix bot structured conversation history
- Mcp update story tool should support front matter fields
- Show assigned agent in expanded work item view
- Clear merge error front matter when story leaves merge stage
- Matrix bot surfaces claude code permission prompts to chat
- 277 - bot uses configured display name
Bug Fixes
- Qa test server overwrites root mcp json with wrong port
Refactors
- Upgrade tokio tungstenite to 0 29 0
Other Changes
- fix: Chat.test.tsx type errors from 271 merge
- fix: session_id wiped on every trim, breaking --resume
- fix: update should_commit_stage test to match 5_done in COMMIT_WORTHY_STAGES
- fix: remove stale 266 from archived (came from 271 branch history)
- fix: revert broken auto-merge of 266 in bot.rs
- spike(92): stop auto-committing intermediate pipeline moves
- fix: skip frontend tests when frontend dir absent in sparse worktrees
- Expand vite watch ignore list to prevent silent crashes on merge
- Stop tracking .mcp.json — it is generated at runtime
- Improve release changelog and fix MCP port
Full diff: https://code.crashlabs.io/dave/story-kit/compare/v0.2.0...v0.3.0
Downloads
-
v0.2.0 Stable
released this
2026-03-17 16:25:26 +00:00 | 517 commits to master since this releaseWhat's Changed
- Fix MCP server URL to match actual running port (3010)
- story-kit: create 266_story_matrix_bot_structured_conversation_history
- story-kit: remove 266_story_matrix_bot_structured_conversation_history
- story-kit: create 266_story_matrix_bot_structured_conversation_history
- Fix TS narrowing errors in Chat.test.tsx
- story-kit: queue 265_story_spikes_skip_merge_and_stop_for_human_review for QA
- Bump version to 0.2.0
- Fix cross-signing bootstrap by passing UIA password auth
- Fixing mcp location
- story-kit: start 265_story_spikes_skip_merge_and_stop_for_human_review
- story-kit: create 265_story_spikes_skip_merge_and_stop_for_human_review
- story-kit: create 260_refactor_upgrade_libsqlite3_sys
- story-kit: done 260_refactor_upgrade_libsqlite3_sys
- Revert "story-kit: merge 260_refactor_upgrade_libsqlite3_sys"
- story-kit: done 264_bug_claude_code_session_id_not_persisted_across_browser_refresh
- story-kit: merge 264_bug_claude_code_session_id_not_persisted_across_browser_refresh
- story-kit: queue 264_bug_claude_code_session_id_not_persisted_across_browser_refresh for merge
- story-kit: create 247_story_human_qa_gate_with_rejection_flow
- story-kit: create 265_story_spikes_skip_merge_and_stop_for_human_review
- story-kit: done 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption
- story-kit: merge 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: done 262_story_bot_error_notifications_for_story_failures
- story-kit: merge 262_story_bot_error_notifications_for_story_failures
- story-kit: queue 264_bug_claude_code_session_id_not_persisted_across_browser_refresh for QA
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for merge
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for merge
- story-kit: start 264_bug_claude_code_session_id_not_persisted_across_browser_refresh
- story-kit: create 264_bug_claude_code_session_id_not_persisted_across_browser_refresh
- story-kit: queue 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption for QA
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for QA
- story-kit: start 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption
- story-kit: start 262_story_bot_error_notifications_for_story_failures
- story-kit: create 263_story_matrix_bot_self_signs_device_keys_at_startup_for_verified_encryption
- Ignoring some folders to keep vite running across merges
- story-kit: create 262_story_bot_error_notifications_for_story_failures
- story-kit: done 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: merge 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for merge
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for QA
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for QA
- story-kit: start 262_story_bot_error_notifications_for_story_failures
- story-kit: done 261_story_bot_notifications_when_stories_move_between_stages
- story-kit: merge 261_story_bot_notifications_when_stories_move_between_stages
- story-kit: queue 261_story_bot_notifications_when_stories_move_between_stages for merge
- story-kit: queue 261_story_bot_notifications_when_stories_move_between_stages for QA
- story-kit: start 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: done 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: remove 263_refactor_extract_common_matrix_messaging_for_story_notifications
- story-kit: create 262_story_bot_error_notifications_for_story_failures
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for merge
- story-kit: start 261_story_bot_notifications_when_stories_move_between_stages
- story-kit: queue 261_story_bot_notifications_when_stories_move_between_stages for merge
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for merge
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for merge
- story-kit: queue 261_story_bot_notifications_when_stories_move_between_stages for merge
- story-kit: queue 261_story_bot_notifications_when_stories_move_between_stages for merge
- story-kit: done 260_refactor_upgrade_libsqlite3_sys
- story-kit: merge 260_refactor_upgrade_libsqlite3_sys
- story-kit: done 258_bug_auto_assign_not_called_after_merge_failure
- story-kit: create 263_refactor_extract_common_matrix_messaging_for_story_notifications
- story-kit: merge 258_bug_auto_assign_not_called_after_merge_failure
- story-kit: queue 260_refactor_upgrade_libsqlite3_sys for merge
- story-kit: queue 262_story_bot_error_notifications_for_story_failures for QA
- story-kit: queue 258_bug_auto_assign_not_called_after_merge_failure for merge
- story-kit: queue 258_bug_auto_assign_not_called_after_merge_failure for QA
- story-kit: start 262_story_bot_error_notifications_for_story_failures
- story-kit: start 261_story_bot_notifications_when_stories_move_between_stages
- story-kit: start 258_bug_auto_assign_not_called_after_merge_failure
- story-kit: queue 260_refactor_upgrade_libsqlite3_sys for QA
- story-kit: create 262_story_bot_error_notifications_for_story_failures
- story-kit: create 261_story_bot_notifications_when_stories_move_between_stages
- story-kit: done 259_story_move_story_kit_ignores_into_story_kit_gitignore
- story-kit: merge 259_story_move_story_kit_ignores_into_story_kit_gitignore
- story-kit: queue 259_story_move_story_kit_ignores_into_story_kit_gitignore for merge
- story-kit: done 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: merge 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: remove 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: create 92_spike_stop_auto_committing_intermediate_pipeline_moves
- story-kit: create 92_spike_stop_auto_committing_intermediate_pipeline_moves
- story-kit: queue 259_story_move_story_kit_ignores_into_story_kit_gitignore for QA
- story-kit: start 260_refactor_upgrade_libsqlite3_sys
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: create 260_refactor_upgrade_libsqlite3_sys
- story-kit: create 260_refactor_upgrade_libsqlite3_sys
- story-kit: create 260_refactor_upgrade_libsqlite3_sys
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: start 259_story_move_story_kit_ignores_into_story_kit_gitignore
- story-kit: create 259_story_move_story_kit_ignores_into_story_kit_gitignore
- story-kit: create 259_story_move_story_kit_ignores_into_story_kit_gitignore
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for QA
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- Fix pipe buffer deadlock in quality gate test runner
- story-kit: accept 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch
- story-kit: done 257_story_rename_storkit_to_story_kit_in_header
- story-kit: merge 257_story_rename_storkit_to_story_kit_in_header
- story-kit: create 258_bug_auto_assign_not_called_after_merge_failure
- Make merge_agent_work async to avoid MCP 60-second tool timeout
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for merge
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for merge
- story-kit: create 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for merge
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for merge
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for merge
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for QA
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- Add 10-minute timeout to test commands and disable e2e in merge pipeline
- story-kit: queue 257_story_rename_storkit_to_story_kit_in_header for QA
- story-kit: start 257_story_rename_storkit_to_story_kit_in_header
- story-kit: create 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: create 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch
- story-kit: done 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: accept 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: create 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: start 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch
- story-kit: done 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: done 254_story_add_refactor_work_item_type
- story-kit: done 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for merge
- story-kit: accept 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: merge 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for merge
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for merge
- story-kit: queue 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch for merge
- story-kit: queue 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression for QA
- story-kit: merge 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: queue 255_story_show_agent_logs_in_expanded_story_popup for merge
- story-kit: queue 255_story_show_agent_logs_in_expanded_story_popup for merge
- story-kit: merge 254_story_add_refactor_work_item_type
- story-kit: queue 254_story_add_refactor_work_item_type for merge
- story-kit: queue 255_story_show_agent_logs_in_expanded_story_popup for QA
- story-kit: queue 254_story_add_refactor_work_item_type for merge
- story-kit: queue 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch for merge
- story-kit: done 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: queue 254_story_add_refactor_work_item_type for QA
- story-kit: accept 242_story_status_slash_command
- story-kit: queue 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes for merge
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for merge
- story-kit: queue 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch for merge
- story-kit: queue 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes for QA
- story-kit: queue 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch for merge
- story-kit: accept 249_story_agent_assignment_via_story_front_matter
- story-kit: queue 250_bug_merge_pipeline_cherry_pick_fails_with_bad_revision_on_merge_queue_branch for merge
- story-kit: support agent assignment via story front matter (story 249)
- story-kit: done 249_story_agent_assignment_via_story_front_matter
- story-kit: queue 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification for QA
- story-kit: start 245_bug_chat_history_persistence_lost_on_page_refresh_story_145_regression
- story-kit: start 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: start 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: create 256_story_bot_must_verify_other_users_cross_signing_identity_before_checking_device_verification
- story-kit: queue 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes for QA
- story-kit: accept 251_bug_archive_sweep_not_moving_stories_from_done_to_archived
- story-kit: done 251_bug_archive_sweep_not_moving_stories_from_done_to_archived
- story-kit: queue 249_story_agent_assignment_via_story_front_matter for QA
- story-kit: queue 254_story_add_refactor_work_item_type for QA
- story-kit: start 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: create 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: accept 252_story_coder_agents_must_find_root_causes_for_bugs
- story-kit: start 254_story_add_refactor_work_item_type
- story-kit: start 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: create 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: create 255_story_show_agent_logs_in_expanded_story_popup
- story-kit: create 255_bug_agent_logs_tab_shows_no_output_in_expanded_story_popup
- story-kit: queue 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes for QA
- story-kit: start 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: start 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes
- story-kit: accept 241_story_help_slash_command
- story-kit: queue 253_bug_watcher_and_auto_assign_do_not_reinitialize_when_project_root_changes for merge
- Refactor agents.rs (7631 lines) into agents/ module directory
- story-kit: instruct coder agents to find root causes for bugs (story 252)
- story-kit: merge 249_story_agent_assignment_via_story_front_matter
- story-kit: commit work pipeline files and package-lock
- story-kit: fix chat auto-scroll to bottom on new messages (bug 248)
- story-kit: enforce cryptographic identity verification for Matrix commands (story 246)
- story-kit: merge 241_story_help_slash_command
- story-kit: merge 243_bug_replace_pnpm_with_npm
- story-kit: done 240_story_btw_side_question_slash_command
- Reverting sqlite upgrade
- Dependencies upgrade
- story-kit: accept 233_story_auto_assign_backoff_for_failed_merge_items
- story-kit: done 233_story_auto_assign_backoff_for_failed_merge_items
- story-kit: done 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only
- story-kit: queue 233_story_auto_assign_backoff_for_failed_merge_items for merge
- story-kit: merge 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only
- story-kit: queue 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only for merge
- story-kit: queue 233_story_auto_assign_backoff_for_failed_merge_items for QA
- story-kit: queue 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only for QA
- story-kit: start 233_story_auto_assign_backoff_for_failed_merge_items
- story-kit: start 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only
Full diff: https://code.crashlabs.io/dave/story-kit/compare/v0.1.0...v0.2.0
Downloads
-
v0.1.0 Stable
released this
2026-03-13 13:17:52 +00:00 | 717 commits to master since this releaseWhat's Changed
- Use bundled sqlite to avoid cross-compilation problems
- Skipping compilation of front-end for musl build
- Adding changelog generation
- Noting release scripts
- Moving to rustls-tls on Matrix dependency so musl cross compilation works
- Getting set for release
- Renaming the binary to "story-kit"
- story-kit: accept 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: accept 236_story_show_test_results_for_a_story_in_expanded_work_item
- story-kit: accept 235_story_show_agent_logs_for_a_story_in_expanded_work_item
- story-kit: remove 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: done 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: merge 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: queue 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically for merge
- story-kit: queue 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically for merge
- story-kit: queue 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically for QA
- story-kit: start 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: create 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: create 238_story_mergemaster_handles_merge_conflicts_by_resolving_them_automatically
- story-kit: done 236_story_show_test_results_for_a_story_in_expanded_work_item
- story-kit: merge 236_story_show_test_results_for_a_story_in_expanded_work_item
- story-kit: done 235_story_show_agent_logs_for_a_story_in_expanded_work_item
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for merge
- story-kit: queue 236_story_show_test_results_for_a_story_in_expanded_work_item for merge
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for merge
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for merge
- story-kit: accept 237_bug_work_item_titles_render_too_large_in_expanded_view
- story-kit: done 237_bug_work_item_titles_render_too_large_in_expanded_view
- story-kit: merge 237_bug_work_item_titles_render_too_large_in_expanded_view
- story-kit: accept 230_story_prevent_duplicate_stage_agents_on_same_story
- story-kit: accept 224_story_expand_work_item_to_full_screen_detail_view
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for merge
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for merge
- story-kit: queue 237_bug_work_item_titles_render_too_large_in_expanded_view for merge
- story-kit: queue 236_story_show_test_results_for_a_story_in_expanded_work_item for QA
- story-kit: queue 237_bug_work_item_titles_render_too_large_in_expanded_view for merge
- story-kit: queue 237_bug_work_item_titles_render_too_large_in_expanded_view for QA
- story-kit: queue 235_story_show_agent_logs_for_a_story_in_expanded_work_item for QA
- story-kit: start 235_story_show_agent_logs_for_a_story_in_expanded_work_item
- story-kit: start 236_story_show_test_results_for_a_story_in_expanded_work_item
- story-kit: start 235_story_show_agent_logs_for_a_story_in_expanded_work_item
- story-kit: start 237_bug_work_item_titles_render_too_large_in_expanded_view
- story-kit: create 237_bug_work_item_titles_render_too_large_in_expanded_view
- story-kit: remove 234_story_show_story_bug_spike_text_and_acceptance_criteria_in_expanded_work_item
- story-kit: create 236_story_show_test_results_for_a_story_in_expanded_work_item
- story-kit: create 235_story_show_agent_logs_for_a_story_in_expanded_work_item
- story-kit: create 234_story_show_story_bug_spike_text_and_acceptance_criteria_in_expanded_work_item
- story-kit: remove 218_story_hide_thinking_traces_from_agents_panel
- fix: restore color/font inherit on button cards so work item titles are visible
- story-kit: accept 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: done 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: done 226_bug_mergemaster_accepts_stories_without_squash_merging_code
- story-kit: done 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list
- story-kit: done 231_bug_agent_silently_disappears_when_worktree_creation_fails
- story-kit: done 230_story_prevent_duplicate_stage_agents_on_same_story
- story-kit: done 229_story_coder_agents_should_check_off_acceptance_criteria_as_they_fulfill_them
- story-kit: done 225_story_surface_merge_conflicts_and_failures_in_the_web_ui
- story-kit: create 218_story_hide_thinking_traces_from_agents_panel
- story-kit: create 233_story_auto_assign_backoff_for_failed_merge_items
- fix: increase vitest testTimeout to 10s to prevent flaky App mount test
- Fix syntax error in StagePanel.tsx from merge conflict artifact
- fix: add missing closing brace and #[test] attribute in context.rs
- story-kit: done 224_story_expand_work_item_to_full_screen_detail_view
- story-kit: merge 224_story_expand_work_item_to_full_screen_detail_view
- story-kit: queue 218_story_hide_thinking_traces_from_agents_panel for merge
- story-kit: queue 218_story_hide_thinking_traces_from_agents_panel for QA
- story-kit: merge 230_story_prevent_duplicate_stage_agents_on_same_story
- story-kit: queue 230_story_prevent_duplicate_stage_agents_on_same_story for merge
- story-kit: merge 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list
- story-kit: queue 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list for merge
- story-kit: merge 231_bug_agent_silently_disappears_when_worktree_creation_fails
- story-kit: queue 231_bug_agent_silently_disappears_when_worktree_creation_fails for merge
- story-kit: queue 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list for QA
- story-kit: queue 229_story_coder_agents_should_check_off_acceptance_criteria_as_they_fulfill_them for merge
- story-kit: merge 226_bug_mergemaster_accepts_stories_without_squash_merging_code
- story-kit: queue 226_bug_mergemaster_accepts_stories_without_squash_merging_code for merge
- story-kit: queue 231_bug_agent_silently_disappears_when_worktree_creation_fails for QA
- story-kit: queue 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding for merge
- story-kit: queue 226_bug_mergemaster_accepts_stories_without_squash_merging_code for QA
- story-kit: merge 225_story_surface_merge_conflicts_and_failures_in_the_web_ui
- story-kit: queue 230_story_prevent_duplicate_stage_agents_on_same_story for QA
- story-kit: start 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list
- story-kit: create 232_story_fix_incorrect_bug_tool_descriptions_in_mcp_tools_list
- story-kit: queue 229_story_coder_agents_should_check_off_acceptance_criteria_as_they_fulfill_them for QA
- story-kit: start 231_bug_agent_silently_disappears_when_worktree_creation_fails
- story-kit: queue 225_story_surface_merge_conflicts_and_failures_in_the_web_ui for merge
- story-kit: create 231_bug_agent_silently_disappears_when_worktree_creation_fails
- story-kit: start 230_story_prevent_duplicate_stage_agents_on_same_story
- story-kit: create 230_story_prevent_duplicate_stage_agents_on_same_story
- story-kit: queue 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding for QA
- story-kit: queue 224_story_expand_work_item_to_full_screen_detail_view for merge
- story-kit: start 226_bug_mergemaster_accepts_stories_without_squash_merging_code
- story-kit: start 229_story_coder_agents_should_check_off_acceptance_criteria_as_they_fulfill_them
- story-kit: start 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: start 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: queue 224_story_expand_work_item_to_full_screen_detail_view for QA
- story-kit: create 229_story_coder_agents_should_check_off_acceptance_criteria_as_they_fulfill_them
- story-kit: start 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: create 228_story_auto_detect_tech_stack_and_generate_component_sections_during_scaffolding
- story-kit: queue 225_story_surface_merge_conflicts_and_failures_in_the_web_ui for QA
- story-kit: create 227_bug_thinking_traces_visible_in_agents_panel_in_release_builds_only
- story-219: add Always Allow button to web UI permission dialog
- story-kit: start 218_story_hide_thinking_traces_from_agents_panel
- story-kit: remove 218_story_hide_thinking_traces_from_agents_panel
- story-kit: start 218_story_hide_thinking_traces_from_agents_panel
- story-kit: create 226_bug_mergemaster_accepts_stories_without_squash_merging_code
- story-kit: start 225_story_surface_merge_conflicts_and_failures_in_the_web_ui
- story-kit: create 225_story_surface_merge_conflicts_and_failures_in_the_web_ui
- story-kit: start 224_story_expand_work_item_to_full_screen_detail_view
- story-kit: create 224_story_expand_work_item_to_full_screen_detail_view
- story-kit: accept 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage
- story-kit: accept 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic
- story-kit: accept 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline
- story-kit: accept 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy
- story-kit: accept 219_story_add_always_allow_option_to_web_ui_permission_dialog
- story-kit: accept 218_story_hide_thinking_traces_from_agents_panel
- story-kit: accept 217_story_scaffold_generates_claude_md
- story-kit: accept 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm
- story-kit: accept 215_bug_cancel_button_still_discards_queued_messages_197_regression
- story-kit: accept 214_story_scaffold_creates_complete_project_structure
- story-kit: done 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline
- story-kit: queue 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline for merge
- story-kit: done 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic
- story-kit: done 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy
- story-kit: done 219_story_add_always_allow_option_to_web_ui_permission_dialog
- story-kit: done 218_story_hide_thinking_traces_from_agents_panel
- story-kit: queue 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline for QA
- story-kit: done 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage
- story-kit: queue 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic for merge
- story-kit: queue 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage for merge
- story-kit: queue 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage for QA
- story-kit: queue 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic for QA
- story-kit: start 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline
- story-kit: start 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage
- story-kit: create 223_bug_qa_agent_not_stopped_when_story_moves_to_merge_stage
- story-kit: accept 213_story_remove_colored_left_border_from_work_item_cards
- story-kit: done 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm
- story-kit: start 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic
- story-kit: create 222_story_scaffolded_agent_permissions_should_be_tech_stack_agnostic
- story-kit: merge 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm
- story-kit: queue 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy for merge
- story-kit: queue 219_story_add_always_allow_option_to_web_ui_permission_dialog for merge
- story-kit: accept 211_story_skip_selection_screen_when_cli_path_argument_provided
- story-kit: queue 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy for QA
- story-kit: create 221_story_replace_llm_driven_qa_stage_with_deterministic_rust_pipeline
- story-kit: start 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy
- story-kit: create 220_story_acceptance_gates_in_current_stage_should_use_script_test_instead_of_hardcoded_cargo_clippy
- story-kit: queue 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm for merge
- story-kit: queue 219_story_add_always_allow_option_to_web_ui_permission_dialog for QA
- story-kit: queue 218_story_hide_thinking_traces_from_agents_panel for merge
- story-kit: accept 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure
- story-kit: queue 218_story_hide_thinking_traces_from_agents_panel for QA
- story-kit: queue 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm for QA
- story-kit: start 219_story_add_always_allow_option_to_web_ui_permission_dialog
- story-kit: start 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm
- story-kit: create 219_story_add_always_allow_option_to_web_ui_permission_dialog
- fix: permission-prompt-tool response format and scaffold .claude/settings.json
- story-kit: create 218_story_hide_thinking_traces_from_agents_panel
- story-kit: done 217_story_scaffold_generates_claude_md
- story-kit: merge 217_story_scaffold_generates_claude_md
- story-kit: accept 209_story_accept_optional_positional_path_argument_on_startup
- story-kit: accept 208_bug_project_scaffold_does_not_write_mcp_json_to_project_root
- fix: auto-assign after merge, persistent server logs, remove duplicate pnpm install
- story-kit: accept 207_story_rename_llm_provider_labels_claude_pty_to_claude_code_anthropic_to_anthropic_api
- story-kit: accept 206_story_claude_pty_should_be_selected_by_default_on_first_use
- story-kit: queue 217_story_scaffold_generates_claude_md for merge
- story-kit: queue 217_story_scaffold_generates_claude_md for QA
- story-kit: start 217_story_scaffold_generates_claude_md
- story-kit: create 217_story_scaffold_generates_claude_md
- story-kit: create 217_story_scaffold_generates_claude_md
- story-kit: accept 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: done 215_bug_cancel_button_still_discards_queued_messages_197_regression
- story-kit: merge 215_bug_cancel_button_still_discards_queued_messages_197_regression
- story-kit: create 216_story_merge_quality_gates_should_use_project_toml_components_and_script_test_instead_of_hardcoded_frontend_pnpm
- story-kit: done 214_story_scaffold_creates_complete_project_structure
- story-kit: merge 214_story_scaffold_creates_complete_project_structure
- story-kit: accept 180_bug_web_ui_permissions_handling_unreliable
- story-kit: done 180_bug_web_ui_permissions_handling_unreliable
- story-kit: merge 180_bug_web_ui_permissions_handling_unreliable
- chore: add MERGE-DEBUG traces for project_root lifecycle
- fix: e2e smoke test was nuking project_root on the live server
- story-kit: queue 214_story_scaffold_creates_complete_project_structure for merge
- story-kit: queue 180_bug_web_ui_permissions_handling_unreliable for merge
- story-kit: queue 215_bug_cancel_button_still_discards_queued_messages_197_regression for merge
- story-kit: queue 214_story_scaffold_creates_complete_project_structure for QA
- story-kit: queue 180_bug_web_ui_permissions_handling_unreliable for QA
- story-kit: queue 215_bug_cancel_button_still_discards_queued_messages_197_regression for QA
- story-kit: start 215_bug_cancel_button_still_discards_queued_messages_197_regression
- story-kit: create 215_bug_cancel_button_still_discards_queued_messages_197_regression
- story-kit: start 180_bug_web_ui_permissions_handling_unreliable
- story-kit: start 214_story_scaffold_creates_complete_project_structure
- story-kit: done 213_story_remove_colored_left_border_from_work_item_cards
- story-kit: create 214_story_scaffold_creates_complete_project_structure
- story-kit: remove 212_bug_permission_hook_returns_invalid_response_blocking_edit_and_write_tools
- story-kit: create 214_story_scaffold_creates_complete_project_structure
- story-211: skip selection screen when CLI path argument provided
- story-kit: merge 213_story_remove_colored_left_border_from_work_item_cards
- bug-210: prevent pipeline from moving story to done when mergemaster reports failure
- story-kit: queue 213_story_remove_colored_left_border_from_work_item_cards for merge
- story-kit: done 211_story_skip_selection_screen_when_cli_path_argument_provided
- story-kit: queue 211_story_skip_selection_screen_when_cli_path_argument_provided for merge
- story-kit: done 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure
- fix: add missing port argument to open_project test calls
- story-kit: queue 213_story_remove_colored_left_border_from_work_item_cards for QA
- story-kit: queue 211_story_skip_selection_screen_when_cli_path_argument_provided for QA
- story-kit: queue 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure for merge
- story-kit: start 213_story_remove_colored_left_border_from_work_item_cards
- story-kit: create 213_story_remove_colored_left_border_from_work_item_cards
- story-kit: queue 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure for QA
- story-198: distinguish work item types (story/bug/spike) in web UI
- story-kit: create 212_bug_permission_hook_returns_invalid_response_blocking_edit_and_write_tools
- story-kit: start 211_story_skip_selection_screen_when_cli_path_argument_provided
- story-kit: create 211_story_skip_selection_screen_when_cli_path_argument_provided
- story-kit: start 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure
- story-209: accept optional positional path argument on startup
- story-kit: create 210_bug_pipeline_moves_story_to_done_even_when_mergemaster_reports_merge_failure
- story-kit: done 209_story_accept_optional_positional_path_argument_on_startup
- Ignoring merge workspace
- Removing toml metadata to clear warning
- story-207: rename LLM provider labels - Claude Code (PTY) to Claude Code, Anthropic to Anthropic API
- story-206: default to claude-code-pty on first use
- story-kit: merge 208_bug_project_scaffold_does_not_write_mcp_json_to_project_root
- story-kit: done 208_bug_project_scaffold_does_not_write_mcp_json_to_project_root
- feat(story-200): auto-prune worktrees when stories are archived
- story-kit: start 208_bug_project_scaffold_does_not_write_mcp_json_to_project_root
- story-kit: queue 207_story_rename_llm_provider_labels_claude_pty_to_claude_code_anthropic_to_anthropic_api for merge
- story-kit: start 209_story_accept_optional_positional_path_argument_on_startup
- story-kit: done 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: create 209_story_accept_optional_positional_path_argument_on_startup
- story-kit: create 208_bug_project_scaffold_does_not_write_mcp_json_to_project_root
- story-kit: queue 206_story_claude_pty_should_be_selected_by_default_on_first_use for QA
- story-kit: queue 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep for merge
- story-kit: done 202_story_make_agent_watchdog_interval_configurable_via_project_toml
- story-kit: queue 207_story_rename_llm_provider_labels_claude_pty_to_claude_code_anthropic_to_anthropic_api for QA
- story-kit: queue 202_story_make_agent_watchdog_interval_configurable_via_project_toml for merge
- story-kit: done 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: queue 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep for QA
- fix: replace fast-forward with cherry-pick in mergemaster squash-merge
- story-kit: queue 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code for merge
- story-kit: start 207_story_rename_llm_provider_labels_claude_pty_to_claude_code_anthropic_to_anthropic_api
- story-kit: queue 202_story_make_agent_watchdog_interval_configurable_via_project_toml for QA
- story-kit: create 207_story_rename_llm_provider_labels_claude_pty_to_claude_code_anthropic_to_anthropic_api
- story-kit: start 206_story_claude_pty_should_be_selected_by_default_on_first_use
- story-kit: create 206_story_claude_pty_should_be_selected_by_default_on_first_use
- story-kit: queue 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code for QA
- Rename nav header branding from "Story Kit" to "StorkIt"
- story-kit: start 202_story_make_agent_watchdog_interval_configurable_via_project_toml
- story-kit: start 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: start 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: create 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: create 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: create 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: create 205_bug_mergemaster_marks_stories_as_done_without_squash_merging_code
- story-kit: done 204_story_rename_storkit_branding_to_story_kit
- story-kit: merge 204_story_rename_storkit_branding_to_story_kit
- story-kit: done 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent
- story-kit: merge 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent
- story-kit: done 202_story_make_agent_watchdog_interval_configurable_via_project_toml
- feat(story-193): clickable code references in frontend
- story-kit: done 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: remove 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: start 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: accept 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: done 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: remove 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: remove 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: merge 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: done 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: merge 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: done 201_story_make_watcher_sweep_interval_configurable_via_project_toml
- story-kit: queue 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep for merge
- story-kit: queue 199_story_web_ui_submits_all_queued_items_at_once for merge
- story-kit: queue 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent for merge
- story-kit: accept 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: done 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: queue 204_story_rename_storkit_branding_to_story_kit for merge
- story-kit: queue 202_story_make_agent_watchdog_interval_configurable_via_project_toml for merge
- story-kit: done 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: queue 204_story_rename_storkit_branding_to_story_kit for QA
- story-kit: queue 202_story_make_agent_watchdog_interval_configurable_via_project_toml for QA
- story-kit: queue 201_story_make_watcher_sweep_interval_configurable_via_project_toml for merge
- story-kit: queue 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent for QA
- story-kit: accept 193_story_clickable_code_references_in_frontend
- story-kit: done 193_story_clickable_code_references_in_frontend
- story-kit: queue 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep for merge
- story-kit: start 204_story_rename_storkit_branding_to_story_kit
- story-kit: create 204_story_rename_storkit_branding_to_story_kit
- story-kit: queue 199_story_web_ui_submits_all_queued_items_at_once for merge
- story-kit: start 202_story_make_agent_watchdog_interval_configurable_via_project_toml
- story-kit: queue 193_story_clickable_code_references_in_frontend for merge
- story-kit: start 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent
- story-kit: create 203_story_move_story_to_current_before_checking_agent_availability_in_start_agent
- story-kit: queue 201_story_make_watcher_sweep_interval_configurable_via_project_toml for QA
- story-kit: queue 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep for QA
- story-kit: queue 199_story_web_ui_submits_all_queued_items_at_once for QA
- story-kit: accept 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot
- story-kit: done 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot
- feat: enable Matrix E2EE with cross-signing verification on bot
- story-kit: start 201_story_make_watcher_sweep_interval_configurable_via_project_toml
- story-kit: start 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: create 202_story_make_agent_watchdog_interval_configurable_via_project_toml
- story-kit: create 201_story_make_watcher_sweep_interval_configurable_via_project_toml
- story-kit: create 200_story_auto_prune_worktrees_for_archived_stories_in_watcher_sweep
- story-kit: accept 198_story_distinguish_work_item_types_in_web_ui
- story-kit: accept 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input
- story-kit: accept 195_story_preserve_newlines_in_chat_message_submission
- story-kit: accept 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: accept 191_story_matrix_bot_should_only_respond_when_directly_addressed
- story-kit: accept 190_story_auto_select_available_agent_for_stage_in_start_agent
- story-kit: accept 189_story_surface_claude_code_compaction_notices_in_matrix_chat
- story-kit: accept 188_story_render_matrix_bot_messages_with_html_formatting
- story-kit: accept 187_story_preserve_queued_messages_in_chat_input_on_cancel
- story-kit: accept 186_story_add_storkit_branding_to_header
- story-kit: accept 170_story_add_test_first_requirements_to_agent_role_descriptions
- story-kit: done 198_story_distinguish_work_item_types_in_web_ui
- story-kit: queue 193_story_clickable_code_references_in_frontend for QA
- story-kit: start 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: start 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: queue 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot for merge
- story-kit: start 199_story_web_ui_submits_all_queued_items_at_once
- story-kit: queue 198_story_distinguish_work_item_types_in_web_ui for merge
- story-kit: done 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input
- story-kit: queue 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot for QA
- story-kit: queue 198_story_distinguish_work_item_types_in_web_ui for QA
- story-kit: queue 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input for merge
- story-kit: done 195_story_preserve_newlines_in_chat_message_submission
- story-kit: merge 195_story_preserve_newlines_in_chat_message_submission
- story-kit: queue 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input for QA
- story-kit: start 198_story_distinguish_work_item_types_in_web_ui
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: accept 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list
- story-kit: done 196_story_render_code_fences_in_user_chat_messages
- story-kit: start 193_story_clickable_code_references_in_frontend
- story-kit: merge 196_story_render_code_fences_in_user_chat_messages
- story-kit: create 198_story_distinguish_work_item_types_in_web_ui
- story-kit: queue 195_story_preserve_newlines_in_chat_message_submission for merge
- story-kit: queue 196_story_render_code_fences_in_user_chat_messages for merge
- story-kit: queue 195_story_preserve_newlines_in_chat_message_submission for QA
- story-kit: queue 196_story_render_code_fences_in_user_chat_messages for QA
- story-kit: start 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input
- story-kit: create 197_bug_cancel_button_discards_queued_messages_instead_of_preserving_them_in_chat_input
- story-kit: start 196_story_render_code_fences_in_user_chat_messages
- story-kit: start 195_story_preserve_newlines_in_chat_message_submission
- story-kit: start 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot
- story-kit: create 195_story_preserve_newlines_in_chat_message_submission
- story-kit: create 194_story_enable_matrix_e2ee_with_cross_signing_verification_on_bot
- story-kit: accept 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries
- story-kit: create 193_story_clickable_code_references_in_frontend
- story-kit: done 189_story_surface_claude_code_compaction_notices_in_matrix_chat
- story-kit: create 193_story_clickable_code_references_in_frontend
- story-kit: queue 189_story_surface_claude_code_compaction_notices_in_matrix_chat for merge
- story-kit: queue 189_story_surface_claude_code_compaction_notices_in_matrix_chat for QA
- updated markdown library to latest
- story-kit: start 189_story_surface_claude_code_compaction_notices_in_matrix_chat
- Fixed up @ mentions on the bot
- story-kit: done 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: merge 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: queue 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output for merge
- story-kit: queue 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output for QA
- story-kit: done 191_story_matrix_bot_should_only_respond_when_directly_addressed
- feat(matrix): bot only responds when directly addressed
- story-kit: start 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: create 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: queue 191_story_matrix_bot_should_only_respond_when_directly_addressed for merge
- story-kit: create 192_bug_code_fences_lose_newlines_when_pasted_from_agent_output
- story-kit: accept 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api
- story-kit: queue 191_story_matrix_bot_should_only_respond_when_directly_addressed for QA
- story-kit: done 190_story_auto_select_available_agent_for_stage_in_start_agent
- story-kit: merge 190_story_auto_select_available_agent_for_stage_in_start_agent
- story-kit: queue 190_story_auto_select_available_agent_for_stage_in_start_agent for merge
- story-kit: start 191_story_matrix_bot_should_only_respond_when_directly_addressed
- story-kit: create 191_story_matrix_bot_should_only_respond_when_directly_addressed
- story-kit: queue 190_story_auto_select_available_agent_for_stage_in_start_agent for QA
- story-kit: done 188_story_render_matrix_bot_messages_with_html_formatting
- feat(matrix): render bot messages with HTML formatting
- story-kit: accept 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: accept 181_story_live_pipeline_updates_in_matrix
- story-kit: done 187_story_preserve_queued_messages_in_chat_input_on_cancel
- story-kit: queue 188_story_render_matrix_bot_messages_with_html_formatting for merge
- story-kit: queue 188_story_render_matrix_bot_messages_with_html_formatting for QA
- story-kit: queue 187_story_preserve_queued_messages_in_chat_input_on_cancel for merge
- story-kit: start 190_story_auto_select_available_agent_for_stage_in_start_agent
- story-kit: create 190_story_auto_select_available_agent_for_stage_in_start_agent
- story-kit: queue 187_story_preserve_queued_messages_in_chat_input_on_cancel for QA
- story-kit: start 188_story_render_matrix_bot_messages_with_html_formatting
- story-kit: create 189_story_surface_claude_code_compaction_notices_in_matrix_chat
- story-kit: create 188_story_render_matrix_bot_messages_with_html_formatting
- story-kit: start 187_story_preserve_queued_messages_in_chat_input_on_cancel
- story-kit: create 187_story_preserve_queued_messages_in_chat_input_on_cancel
- story-kit: done 186_story_add_storkit_branding_to_header
- story-kit: merge 186_story_add_storkit_branding_to_header
- story-kit: queue 186_story_add_storkit_branding_to_header for merge
- story-kit: done 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: accept 179_story_add_configurable_chat_history_pruning
- story-kit: merge 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: queue 186_story_add_storkit_branding_to_header for QA
- story-kit: queue 182_story_matrix_bot_conversation_context_and_multi_room for merge
- story-kit: start 186_story_add_storkit_branding_to_header
- story-kit: create 186_story_add_storkit_branding_to_header
- story-kit: queue 182_story_matrix_bot_conversation_context_and_multi_room for QA
- story-kit: done 170_story_add_test_first_requirements_to_agent_role_descriptions
- story-kit: queue 170_story_add_test_first_requirements_to_agent_role_descriptions for merge
- story-kit: queue 170_story_add_test_first_requirements_to_agent_role_descriptions for QA
- story-kit: start 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: start 170_story_add_test_first_requirements_to_agent_role_descriptions
- story-kit: start 170_story_add_test_first_requirements_to_agent_role_descriptions
- Fix: remove agent from pool immediately on completion and add Matrix bot user allowlist
- story-kit: done 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list
- story-kit: queue 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list for merge
- story-kit: queue 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list for QA
- story-kit: start 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list
- story-kit: done 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries
- Stream Matrix bot responses on double-newline paragraph boundaries
- story-kit: done 181_story_live_pipeline_updates_in_matrix
- story-kit: create 185_bug_stale_completed_qa_agent_not_reaped_from_agent_list
- story-kit: queue 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries for merge
- story-kit: queue 181_story_live_pipeline_updates_in_matrix for merge
- story-kit: queue 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries for QA
- story-kit: queue 181_story_live_pipeline_updates_in_matrix for QA
- story-kit: accept 171_story_persist_test_results_to_story_files
- story-kit: start 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries
- Adding some Matrix bot debug code
- Ignored matrix bot sqlite
- Upgraded matrix-sdk
- story-kit: create 184_story_stream_bot_responses_to_matrix_on_double_newline_boundaries
- story-kit: accept 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria
- story-kit: start 181_story_live_pipeline_updates_in_matrix
- story-kit: accept 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder
- story-kit: accept 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov
- story-kit: accept 174_story_constrain_thinking_traces_in_chat_panel
- Setting up a bot.toml.example and ignoring bot.toml
- story-kit: done 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api
- story-kit: merge 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api
- story-kit: queue 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api for merge
- story-kit: queue 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api for QA
- story-kit: start 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api
- story-kit: create 183_story_refactor_matrix_bot_to_use_claude_code_provider_instead_of_direct_anthropic_api
- story-kit: done 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: queue 174_story_matrix_chatbot_interface_for_story_kit for merge
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: queue 174_story_matrix_chatbot_interface_for_story_kit for QA
- story-kit: start 174_story_matrix_chatbot_interface_for_story_kit
- Added a note about Claude code permissions
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: create 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: create 181_story_live_pipeline_updates_in_matrix
- story-kit: create 182_story_matrix_bot_conversation_context_and_multi_room
- story-kit: create 180_bug_web_ui_permissions_handling_unreliable
- story-kit: create 176_story_matrix_bot_conversation_context_and_multi_room
- story-kit: create 175_story_live_pipeline_updates_in_matrix
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: done 178_story_fix_chat_textarea_input_lag
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: merge 178_story_fix_chat_textarea_input_lag
- story-kit: queue 178_story_fix_chat_textarea_input_lag for merge
- story-kit: done 179_story_add_configurable_chat_history_pruning
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: queue 178_story_fix_chat_textarea_input_lag for QA
- story-kit: create 174_story_matrix_chatbot_interface_for_story_kit
- story-kit: done 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria
- story-kit: merge 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria
- story-kit: queue 179_story_add_configurable_chat_history_pruning for merge
- story-kit: queue 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria for merge
- story-kit: queue 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria for QA
- story-kit: queue 179_story_add_configurable_chat_history_pruning for QA
- story-kit: start 179_story_add_configurable_chat_history_pruning
- story-kit: start 178_story_fix_chat_textarea_input_lag
- story-kit: create 179_story_add_configurable_chat_history_pruning
- story-kit: create 178_story_fix_chat_textarea_input_lag
- story-kit: start 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria
- story-kit: done 171_story_persist_test_results_to_story_files
- story-kit: merge 171_story_persist_test_results_to_story_files
- story-kit: queue 171_story_persist_test_results_to_story_files for merge
- story-kit: queue 171_story_persist_test_results_to_story_files for QA
- story-kit: done 174_story_constrain_thinking_traces_in_chat_panel
- story-kit: merge 174_story_constrain_thinking_traces_in_chat_panel
- story-kit: queue 174_story_constrain_thinking_traces_in_chat_panel for merge
- story-kit: done 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder
- story-kit: merge 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder
- story-kit: start 171_story_persist_test_results_to_story_files
- story-kit: create 177_bug_no_mcp_tool_to_edit_story_acceptance_criteria
- story-kit: queue 174_story_constrain_thinking_traces_in_chat_panel for QA
- story-kit: queue 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder for merge
- story-kit: create 171_story_persist_test_results_to_story_files
- story-kit: queue 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder for QA
- story-kit: done 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov
- story-kit: merge 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov
- story-kit: start 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder
- story-kit: queue 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov for merge
- story-kit: queue 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov for QA
- story-kit: create 176_bug_stories_moved_to_current_get_supervisor_instead_of_coder
- story-kit: start 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov
- story-kit: create 175_story_add_rust_test_coverage_reporting_with_cargo_llvm_cov
- story-kit: start 174_story_constrain_thinking_traces_in_chat_panel
- story-kit: create 174_story_constrain_thinking_traces_in_chat_panel
- story-kit: accept 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: accept 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock
- story-kit: done 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: merge 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: queue 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes for merge
- story-kit: queue 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes for QA
- story-kit: accept 166_story_add_done_column_to_pipeline_board
- story-kit: done 166_story_add_done_column_to_pipeline_board
- story-kit: merge 166_story_add_done_column_to_pipeline_board
- story-kit: start 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: create 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: queue 166_story_add_done_column_to_pipeline_board for merge
- story-kit: queue 166_story_add_done_column_to_pipeline_board for QA
- story-kit: done 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock
- story-kit: merge 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock
- story-kit: create 173_bug_pipeline_board_lozenges_dont_update_on_agent_state_changes
- story-kit: queue 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock for merge
- story-kit: queue 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock for QA
- story-kit: start 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock
- story-kit: create 172_bug_setup_command_failure_prevents_agent_from_starting_creating_unrecoverable_deadlock
- story-kit: accept 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: done 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: merge 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for merge
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for QA
- story-kit: accept 168_bug_agent_message_queue_limited_to_one_line
- story-kit: accept 167_bug_thinking_trace_height_constraint_not_working_in_web_ui
- story-kit: accept 165_bug_pipeline_log_message_says_archived_instead_of_done
- story-kit: accept 164_bug_dev_process_readme_documents_wrong_pipeline_stages
- story-kit: accept 163_story_remove_bubble_styling_from_streaming_chat_messages
- story-kit: accept 162_story_colored_server_terminal_log_output
- story-kit: accept 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically
- story-kit: accept 145_story_persist_chat_history_to_localstorage_across_rebuilds
- story-kit: accept 160_story_constrain_thinking_trace_height_in_agent_stream_ui
- story-kit: accept 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running
- story-kit: accept 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: accept 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects
- story-kit: accept 155_story_queue_messages_while_agent_is_busy
- story-kit: accept 154_bug_mergemaster_quality_gates_fail_because_merge_worktree_has_no_frontend_deps
- story-kit: done 167_bug_thinking_trace_height_constraint_not_working_in_web_ui
- story-kit: merge 167_bug_thinking_trace_height_constraint_not_working_in_web_ui
- story-kit: queue 167_bug_thinking_trace_height_constraint_not_working_in_web_ui for merge
- story-kit: queue 167_bug_thinking_trace_height_constraint_not_working_in_web_ui for QA
- story-kit: accept 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: done 168_bug_agent_message_queue_limited_to_one_line
- story-kit: merge 168_bug_agent_message_queue_limited_to_one_line
- story-kit: queue 168_bug_agent_message_queue_limited_to_one_line for merge
- story-kit: queue 168_bug_agent_message_queue_limited_to_one_line for QA
- story-kit: accept 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config
- story-kit: accept 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: accept 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: create 171_story_persist_test_results_to_story_files
- story-kit: start 168_bug_agent_message_queue_limited_to_one_line
- story-kit: start 171_story_persist_test_results_to_story_files
- story-kit: create 171_story_persist_test_results_to_story_files
- story-kit: create 170_story_add_test_first_requirements_to_agent_role_descriptions
- story-kit: create 169_story_gate_pipeline_transitions_on_ensure_acceptance
- story-kit: create 168_bug_agent_message_queue_limited_to_one_line
- story-kit: create 167_bug_thinking_trace_height_constraint_not_working_in_web_ui
- story-kit: start 166_story_add_done_column_to_pipeline_board
- story-kit: create 166_story_add_done_column_to_pipeline_board
- story-kit: done 165_bug_pipeline_log_message_says_archived_instead_of_done
- story-kit: merge 165_bug_pipeline_log_message_says_archived_instead_of_done
- story-kit: accept 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: queue 165_bug_pipeline_log_message_says_archived_instead_of_done for merge
- story-kit: queue 165_bug_pipeline_log_message_says_archived_instead_of_done for QA
- story-kit: start 165_bug_pipeline_log_message_says_archived_instead_of_done
- story-kit: create 165_bug_pipeline_log_message_says_archived_instead_of_done
- story-kit: done 164_bug_dev_process_readme_documents_wrong_pipeline_stages
- story-kit: merge 164_bug_dev_process_readme_documents_wrong_pipeline_stages
- story-kit: accept 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: start 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: create 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: create 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: queue 164_bug_dev_process_readme_documents_wrong_pipeline_stages for merge
- story-kit: queue 164_bug_dev_process_readme_documents_wrong_pipeline_stages for QA
- story-kit: start 164_bug_dev_process_readme_documents_wrong_pipeline_stages
- story-kit: create 164_bug_dev_process_readme_documents_wrong_pipeline_stages
- story-kit: accept 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
- story-kit: done 160_story_constrain_thinking_trace_height_in_agent_stream_ui
- story-kit: merge 160_story_constrain_thinking_trace_height_in_agent_stream_ui
- story-kit: queue 160_story_constrain_thinking_trace_height_in_agent_stream_ui for merge
- story-kit: queue 160_story_constrain_thinking_trace_height_in_agent_stream_ui for QA
- story-kit: done 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running
- story-kit: merge 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running
- story-kit: queue 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running for merge
- story-kit: done 163_story_remove_bubble_styling_from_streaming_chat_messages
- story-kit: queue 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running for QA
- story-kit: merge 163_story_remove_bubble_styling_from_streaming_chat_messages
- story-kit: accept 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow
- story-kit: queue 163_story_remove_bubble_styling_from_streaming_chat_messages for merge
- story-kit: accept 26_story_establish_tdd_workflow_and_gates
- story-kit: done 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: done 162_story_colored_server_terminal_log_output
- story-kit: merge 162_story_colored_server_terminal_log_output
- story-kit: queue 162_story_colored_server_terminal_log_output for merge
- story-kit: queue 163_story_remove_bubble_styling_from_streaming_chat_messages for QA
- story-kit: queue 162_story_colored_server_terminal_log_output for QA
- story-kit: start 162_story_colored_server_terminal_log_output
- story-kit: start 163_story_remove_bubble_styling_from_streaming_chat_messages
- story-kit: create 163_story_remove_bubble_styling_from_streaming_chat_messages
- story-kit: accept 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically
- story-kit: create 162_story_colored_server_terminal_log_output
- story-kit: merge 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically
- story-kit: queue 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically for merge
- story-kit: accept 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: accept 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: queue 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically for QA
- story-kit: queue 152_bug_ollama_not_running_kills_the_entire_web_ui for merge
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for merge
- story-kit: accept 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: queue 152_bug_ollama_not_running_kills_the_entire_web_ui for QA
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for QA
- story-kit: queue 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa for merge
- story-kit: queue 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa for QA
- story-kit: start 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically
- story-kit: create 161_bug_auto_assign_only_triggers_on_agent_completion_not_on_failure_or_periodically
- story-kit: start 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: create 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: accept 145_story_persist_chat_history_to_localstorage_across_rebuilds
- story-kit: merge 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: start 160_story_constrain_thinking_trace_height_in_agent_stream_ui
- story-kit: create 160_story_constrain_thinking_trace_height_in_agent_stream_ui
- story-kit: accept 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: merge 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: start 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running
- story-kit: create 159_bug_server_restart_leaves_orphaned_claude_code_pty_processes_running
- story-kit: queue 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation for merge
- story-kit: queue 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation for QA
- story-kit: accept 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters
- story-kit: start 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: merge 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters
- story-kit: queue 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters for merge
- story-kit: accept 155_story_queue_messages_while_agent_is_busy
- story-kit: merge 155_story_queue_messages_while_agent_is_busy
- story-kit: queue 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters for QA
- story-kit: queue 155_story_queue_messages_while_agent_is_busy for merge
- story-kit: start 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters
- story-kit: queue 155_story_queue_messages_while_agent_is_busy for QA
- story-kit: create 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: create 158_bug_pty_debug_log_panics_on_multi_byte_utf_8_characters
- story-kit: start 157_story_make_start_agent_non_blocking_by_deferring_worktree_creation
- story-kit: accept 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects
- story-kit: merge 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects
- story-kit: queue 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects for merge
- story-kit: queue 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects for QA
- story-kit: start 156_bug_onboarding_welcome_screen_triggers_on_already_configured_projects
- story-kit: accept 154_bug_mergemaster_quality_gates_fail_because_merge_worktree_has_no_frontend_deps
- story-kit: start 155_story_queue_messages_while_agent_is_busy
- story-kit: create 155_story_queue_messages_while_agent_is_busy
- story-kit: merge 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config
- story-kit: accept 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config
- story-kit: queue 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config for merge
- story-kit: queue 154_bug_mergemaster_quality_gates_fail_because_merge_worktree_has_no_frontend_deps for QA
- story-kit: queue 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config for QA
- story-kit: start 154_bug_mergemaster_quality_gates_fail_because_merge_worktree_has_no_frontend_deps
- story-kit: accept 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: merge 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
- story-kit: accept 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
- story-kit: accept 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: queue 148_story_interactive_onboarding_guides_user_through_project_setup_after_init for merge
- story-kit: queue 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix for QA
- story-kit: queue 151_story_split_archived_into_done_and_archived_with_time_based_promotion for merge
- story-kit: start 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: accept 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: accept 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: queue 148_story_interactive_onboarding_guides_user_through_project_setup_after_init for QA
- story-kit: queue 151_story_split_archived_into_done_and_archived_with_time_based_promotion for QA
- story-kit: queue 152_bug_ollama_not_running_kills_the_entire_web_ui for merge
- story-kit: queue 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix for merge
- story-kit: queue 152_bug_ollama_not_running_kills_the_entire_web_ui for QA
- fix: return empty Ollama model list instead of error when Ollama unreachable
- story-kit: start 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config
- story-kit: create 153_bug_auto_assign_broken_after_stage_field_was_added_to_agent_config
- story-kit: start 152_bug_ollama_not_running_kills_the_entire_web_ui
- story-kit: create 152_bug_ollama_not_running_kills_the_entire_web_ui
- Adding stage to project.toml
- story-kit: accept 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: start 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: queue 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa for merge
- story-kit: create 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: create 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: create 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: create 151_story_split_archived_into_done_and_archived_with_time_based_promotion
- story-kit: accept 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: queue 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa for QA
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for merge
- story-kit: accept 145_story_persist_chat_history_to_localstorage_across_rebuilds
- story-kit: queue 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped for QA
- story-kit: queue 145_story_persist_chat_history_to_localstorage_across_rebuilds for merge
- story-kit: accept 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: queue 98_story_expand_work_item_to_full_screen_detail_view for merge
- story-kit: queue 145_story_persist_chat_history_to_localstorage_across_rebuilds for QA
- story-kit: accept 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: accept 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: queue 116_story_story_kit_init_command_scaffolds_a_new_project for merge
- story-kit: start 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: start 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: start 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: queue 98_story_expand_work_item_to_full_screen_detail_view for QA
- story-kit: create 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: create 150_bug_qa_2_agent_never_auto_assigned_because_pipeline_stage_only_matches_exact_qa
- story-kit: queue 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix for merge
- story-kit: queue 116_story_story_kit_init_command_scaffolds_a_new_project for QA
- story-kit: queue 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix for QA
- story-kit: start 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: start 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: create 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: start 145_story_persist_chat_history_to_localstorage_across_rebuilds
- story-kit: start 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
- story-kit: start 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: create 149_bug_web_ui_does_not_update_when_agents_are_started_or_stopped
- story-kit: create 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: create 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: create 148_story_interactive_onboarding_guides_user_through_project_setup_after_init
- story-kit: accept 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow
- story-kit: merge 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow
- story-kit: queue 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow for merge
- story-kit: start 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: start 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: remove 148_story_activity_indicator_shows_thinking_instead_of_tool_name_for_claude_code_provider
- story-kit: accept 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds
- story-kit: merge 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds
- story-kit: queue 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds for merge
- story-kit: create 148_story_activity_indicator_shows_thinking_instead_of_tool_name_for_claude_code_provider
- story-kit: accept 143_story_remove_0_running_count_from_agents_panel_header
- story-kit: accept 114_bug_web_ui_sse_socket_stops_updating_after_a_while
- story-kit: create 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: merge 143_story_remove_0_running_count_from_agents_panel_header
- story-kit: queue 143_story_remove_0_running_count_from_agents_panel_header for merge
- story-kit: create 147_bug_activity_indicator_still_only_shows_thinking_despite_bug_140_fix
- story-kit: queue 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds for QA
- story-kit: accept 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before
- story-kit: merge 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before
- story-kit: queue 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before for merge
- Updated chrono
- story-kit: queue 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow for QA
- story-kit: accept 139_story_retry_limit_for_mergemaster_and_pipeline_restarts
- story-kit: queue 139_story_retry_limit_for_mergemaster_and_pipeline_restarts for merge
- story-kit: start 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds
- story-kit: start 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow
- story-kit: queue 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before for QA
- story-kit: create 146_bug_permission_approval_still_returns_wrong_format_needs_updatedinput_not_behavior_allow
- story-kit: create 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: accept 141_story_improve_server_logging_with_timestamps_and_error_visibility
- story-kit: queue 143_story_remove_0_running_count_from_agents_panel_header for QA
- story-kit: merge 141_story_improve_server_logging_with_timestamps_and_error_visibility
- story-kit: queue 141_story_improve_server_logging_with_timestamps_and_error_visibility for merge
- story-kit: queue 139_story_retry_limit_for_mergemaster_and_pipeline_restarts for QA
- story-kit: start 143_story_remove_0_running_count_from_agents_panel_header
- story-kit: create 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds
- story-kit: create 145_story_persist_chat_history_to_localstorage_across_rebuilds
- story-kit: create 144_story_add_build_timestamp_and_persist_chat_history_across_rebuilds
- story-kit: queue 141_story_improve_server_logging_with_timestamps_and_error_visibility for QA
- story-kit: start 143_story_remove_0_running_count_from_agents_panel_header
- story-kit: create 143_story_remove_0_running_count_from_agents_panel_header
- story-kit: start 139_story_retry_limit_for_mergemaster_and_pipeline_restarts
- story-kit: start 141_story_improve_server_logging_with_timestamps_and_error_visibility
- story-kit: start 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before
- story-kit: accept 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: create 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before
- story-kit: queue 131_bug_get_agent_output_stream_always_times_out_for_running_agents for merge
- story-kit: accept 140_bug_activity_status_indicator_never_visible_due_to_display_condition
- story-kit: merge 140_bug_activity_status_indicator_never_visible_due_to_display_condition
- story-kit: create 142_bug_quality_gates_run_after_fast_forward_to_master_instead_of_before
- story-kit: queue 140_bug_activity_status_indicator_never_visible_due_to_display_condition for merge
- story-kit: queue 131_bug_get_agent_output_stream_always_times_out_for_running_agents for QA
- story-kit: accept 136_bug_broadcast_channel_silently_drops_events_on_subscriber_lag
- story-kit: accept 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries
- Fix merge conflict resolution artifacts in agents.rs
- story-kit: queue 140_bug_activity_status_indicator_never_visible_due_to_display_condition for QA
- story-kit: queue 136_bug_broadcast_channel_silently_drops_events_on_subscriber_lag for merge
- story-kit: merge 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries
- Fix unclosed delimiter from merge conflict resolution in agents.rs
- story-kit: merge 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries
- story-kit: queue 136_bug_broadcast_channel_silently_drops_events_on_subscriber_lag for QA
- story-kit: queue 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries for merge
- story-kit: start 140_bug_activity_status_indicator_never_visible_due_to_display_condition
- story-kit: queue 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries for QA
- story-kit: accept 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions
- story-kit: merge 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions
- story-kit: create 141_story_improve_server_logging_with_timestamps_and_error_visibility
- story-kit: queue 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions for merge
- story-kit: start 136_bug_broadcast_channel_silently_drops_events_on_subscriber_lag
- story-kit: accept 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates
- story-kit: merge 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates
- story-kit: queue 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions for QA
- story-kit: queue 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates for merge
- story-kit: start 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries
- story-kit: start 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: accept 138_bug_no_heartbeat_to_detect_stale_websocket_connections
- story-kit: merge 138_bug_no_heartbeat_to_detect_stale_websocket_connections
- story-kit: queue 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates for QA
- story-kit: create 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: create 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: create 140_bug_activity_status_indicator_never_visible_due_to_display_condition
- story-kit: queue 138_bug_no_heartbeat_to_detect_stale_websocket_connections for QA
- story-kit: create 139_story_retry_limit_for_mergemaster_and_pipeline_restarts
- story-kit: start 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates
- story-kit: accept 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: start 138_bug_no_heartbeat_to_detect_stale_websocket_connections
- story-kit: merge 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: accept 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- Fix master compilation after bad story 86 squash merge revert
- story-kit: queue 132_story_fix_toctou_race_in_agent_check_and_insert for merge
- story-kit: queue 132_story_fix_toctou_race_in_agent_check_and_insert for QA
- story-kit: start 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions
- story-kit: create 138_bug_no_heartbeat_to_detect_stale_websocket_connections
- story-kit: create 137_bug_lozengeflycontext_animation_queue_race_condition_on_rapid_updates
- story-kit: create 136_bug_broadcast_channel_silently_drops_events_on_subscriber_lag
- fix: remove duplicate code block from merge conflict resolution in claude_code.rs
- fix: resolve merge conflict artifacts from story-86 merge
- story-kit: create 114_bug_web_ui_sse_socket_stops_updating_after_a_while
- story-kit: create 114_bug_web_ui_sse_socket_stops_updating_after_a_while
- story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for merge
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for QA
- story-kit: start 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: start 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: accept 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes
- story-kit: merge 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes
- story-kit: queue 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes for merge
- story-kit: accept 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: queue 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes for QA
- story-kit: create 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- Revert "story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat"
- story-kit: start 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes
- story-kit: create 135_story_update_mergemaster_prompt_to_allow_conflict_resolution_and_code_fixes
- story-kit: queue 131_bug_get_agent_output_stream_always_times_out_for_running_agents for merge
- story-kit: queue 131_bug_get_agent_output_stream_always_times_out_for_running_agents for QA
- story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for merge
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for QA
- story-kit: create 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: create 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: create 134_story_add_process_health_monitoring_and_timeout_to_agent_pty_sessions
- story-kit: create 133_story_clean_up_agent_state_on_story_archive_and_add_ttl_for_completed_entries
- story-kit: create 132_story_fix_toctou_race_in_agent_check_and_insert
- story-kit: start 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: start 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: create 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: create 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: accept 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: create 131_bug_get_agent_output_stream_always_times_out_for_running_agents
- story-kit: accept 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves
- story-kit: merge 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves
- story-kit: queue 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves for merge
- story-kit: queue 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves for QA
- story-kit: start 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves
- story-kit: create 130_bug_permission_approval_returns_wrong_format_tools_fail_after_user_approves
- Noting that mcp calls are better than direct file manipulation
- Noted the existence of the mcp server.
- Updated tokio-tungstenite
- story-kit: accept 129_story_test_coverage_http_mcp_rs
- story-kit: merge 129_story_test_coverage_http_mcp_rs
- story-kit: accept 128_story_test_coverage_worktree_rs
- story-kit: queue 129_story_test_coverage_http_mcp_rs for merge
- story-kit: merge 128_story_test_coverage_worktree_rs
- story-kit: accept 127_story_test_coverage_http_mod_rs
- story-kit: merge 127_story_test_coverage_http_mod_rs
- story-kit: queue 128_story_test_coverage_worktree_rs for merge
- story-kit: queue 129_story_test_coverage_http_mcp_rs for QA
- story-kit: queue 127_story_test_coverage_http_mod_rs for merge
- story-kit: accept 124_story_test_coverage_llm_providers_claude_code_rs
- story-kit: merge 124_story_test_coverage_llm_providers_claude_code_rs
- story-kit: queue 124_story_test_coverage_llm_providers_claude_code_rs for merge
- story-kit: accept 123_story_test_coverage_llm_providers_anthropic_rs
- story-kit: merge 123_story_test_coverage_llm_providers_anthropic_rs
- story-kit: queue 123_story_test_coverage_llm_providers_anthropic_rs for merge
- story-kit: accept 126_story_test_coverage_http_anthropic_rs
- story-kit: merge 126_story_test_coverage_http_anthropic_rs
- story-kit: queue 126_story_test_coverage_http_anthropic_rs for merge
- story-kit: queue 128_story_test_coverage_worktree_rs for QA
- story-kit: queue 126_story_test_coverage_http_anthropic_rs for QA
- story-kit: accept 122_story_test_coverage_http_ws_rs
- story-kit: merge 122_story_test_coverage_http_ws_rs
- story-kit: queue 122_story_test_coverage_http_ws_rs for merge
- story-kit: queue 127_story_test_coverage_http_mod_rs for QA
- story-kit: queue 124_story_test_coverage_llm_providers_claude_code_rs for QA
- story-kit: accept 125_story_test_coverage_http_io_rs
- story-kit: merge 125_story_test_coverage_http_io_rs
- story-kit: queue 125_story_test_coverage_http_io_rs for merge
- story-kit: queue 123_story_test_coverage_llm_providers_anthropic_rs for QA
- story-kit: accept 120_story_test_coverage_llm_chat_rs
- story-kit: merge 120_story_test_coverage_llm_chat_rs
- story-kit: queue 120_story_test_coverage_llm_chat_rs for merge
- story-kit: queue 122_story_test_coverage_http_ws_rs for QA
- story-kit: queue 120_story_test_coverage_llm_chat_rs for QA
- story-kit: accept 121_story_test_coverage_io_watcher_rs
- story-kit: merge 121_story_test_coverage_io_watcher_rs
- story-kit: queue 121_story_test_coverage_io_watcher_rs for merge
- story-kit: queue 121_story_test_coverage_io_watcher_rs for QA
- story-kit: create 114_bug_web_ui_sse_socket_stops_updating_after_a_while
- story-kit: start 122_story_test_coverage_http_ws_rs
- story-kit: create 129_story_test_coverage_http_mcp_rs
- story-kit: create 128_story_test_coverage_worktree_rs
- story-kit: create 127_story_test_coverage_http_mod_rs
- story-kit: create 126_story_test_coverage_http_anthropic_rs
- story-kit: create 125_story_test_coverage_http_io_rs
- story-kit: create 124_story_test_coverage_llm_providers_claude_code_rs
- story-kit: create 123_story_test_coverage_llm_providers_anthropic_rs
- story-kit: create 122_story_test_coverage_http_ws_rs
- story-kit: create 121_story_test_coverage_io_watcher_rs
- story-kit: create 120_story_test_coverage_llm_chat_rs
- story-kit: start 114_bug_web_ui_sse_socket_stops_updating_after_a_while
- story-kit: accept 99_story_test_coverage_http_health_rs_to_100
- story-kit: merge 99_story_test_coverage_http_health_rs_to_100
- story-kit: accept 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: accept 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master
- story-kit: merge 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master
- story-kit: queue 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master for merge
- story-kit: queue 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master for QA
- story-kit: start 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master
- story-kit: start 119_story_mergemaster_should_resolve_merge_conflicts_instead_of_leaving_conflict_markers_on_master
- story-kit: remove 115_story_hot_reload_project_toml_agent_config_without_server_restart
- fix: resolve merge conflict markers left on master from story-115 merge
- fix: resolve merge conflicts in client.ts and Chat.tsx
- story-kit: accept 115_story_hot_reload_project_toml_agent_config_without_server_restart
- feat(story-115): hot-reload project.toml agent config without server restart
- story-kit: queue 99_story_test_coverage_http_health_rs_to_100 for merge
- story-kit: queue 98_story_expand_work_item_to_full_screen_detail_view for merge
- story-kit: queue 115_story_hot_reload_project_toml_agent_config_without_server_restart for merge
- story-kit: accept 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign
- story-kit: queue 98_story_expand_work_item_to_full_screen_detail_view for QA
- story-kit: merge 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign
- story-kit: queue 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign for merge
- story-kit: accept 117_story_show_startup_reconciliation_progress_in_ui
- story-kit: merge 117_story_show_startup_reconciliation_progress_in_ui
- story-kit: queue 117_story_show_startup_reconciliation_progress_in_ui for merge
- story-kit: queue 99_story_test_coverage_http_health_rs_to_100 for QA
- story-kit: accept 112_story_add_test_coverage_for_app_tsx
- story-kit: merge 112_story_add_test_coverage_for_app_tsx
- story-kit: queue 112_story_add_test_coverage_for_app_tsx for merge
- story-kit: queue 117_story_show_startup_reconciliation_progress_in_ui for QA
- story-kit: queue 115_story_hot_reload_project_toml_agent_config_without_server_restart for QA
- story-kit: queue 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign for QA
- story-kit: start 115_story_hot_reload_project_toml_agent_config_without_server_restart
- story-kit: start 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign
- story-kit: create 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign
- story-kit: start 117_story_show_startup_reconciliation_progress_in_ui
- story-kit: accept 113_story_add_test_coverage_for_usepathcompletion_hook
- story-kit: merge 113_story_add_test_coverage_for_usepathcompletion_hook
- story-kit: accept 111_story_add_test_coverage_for_api_agents_ts
- story-kit: merge 111_story_add_test_coverage_for_api_agents_ts
- story-kit: queue 112_story_add_test_coverage_for_app_tsx for QA
- story-kit: accept 110_story_add_test_coverage_for_api_settings_ts
- story-kit: merge 110_story_add_test_coverage_for_api_settings_ts
- story-kit: accept 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components
- story-kit: merge 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components
- story-kit: accept 108_story_test_coverage_http_agents_rs_to_70
- story-kit: merge 108_story_test_coverage_http_agents_rs_to_70
- story-kit: create 118_bug_agent_pool_retains_stale_running_state_after_completion_blocking_auto_assign
- story-kit: accept 107_story_test_coverage_http_assets_rs_to_85
- story-kit: merge 107_story_test_coverage_http_assets_rs_to_85
- story-kit: queue 113_story_add_test_coverage_for_usepathcompletion_hook for merge
- story-kit: start 117_story_show_startup_reconciliation_progress_in_ui
- story-kit: accept 106_story_test_coverage_http_settings_rs_to_80
- story-kit: merge 106_story_test_coverage_http_settings_rs_to_80
- story-kit: queue 113_story_add_test_coverage_for_usepathcompletion_hook for QA
- story-kit: queue 111_story_add_test_coverage_for_api_agents_ts for merge
- story-kit: create 117_story_show_startup_reconciliation_progress_in_ui
- story-kit: queue 110_story_add_test_coverage_for_api_settings_ts for merge
- story-kit: queue 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components for merge
- story-kit: queue 108_story_test_coverage_http_agents_rs_to_70 for merge
- story-kit: queue 107_story_test_coverage_http_assets_rs_to_85 for merge
- story-kit: queue 106_story_test_coverage_http_settings_rs_to_80 for merge
- story-kit: accept 105_story_test_coverage_io_shell_rs_to_95
- Replace coder-3 with qa-2 to reduce QA bottleneck
- story-kit: merge 105_story_test_coverage_io_shell_rs_to_95
- story-kit: queue 105_story_test_coverage_io_shell_rs_to_95 for merge
- story-kit: queue 111_story_add_test_coverage_for_api_agents_ts for QA
- story-kit: accept 104_story_test_coverage_io_search_rs_to_95
- story-kit: merge 104_story_test_coverage_io_search_rs_to_95
- story-kit: queue 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components for QA
- story-kit: queue 110_story_add_test_coverage_for_api_settings_ts for QA
- story-kit: queue 107_story_test_coverage_http_assets_rs_to_85 for QA
- story-kit: accept 103_story_test_coverage_http_project_rs_to_80
- story-kit: merge 103_story_test_coverage_http_project_rs_to_80
- story-kit: queue 108_story_test_coverage_http_agents_rs_to_70 for QA
- story-kit: start 115_story_hot_reload_project_toml_agent_config_without_server_restart
- story-kit: create 116_story_story_kit_init_command_scaffolds_a_new_project
- story-kit: queue 103_story_test_coverage_http_project_rs_to_80 for merge
- story-kit: accept 101_story_test_coverage_http_chat_rs_to_80
- story-kit: merge 101_story_test_coverage_http_chat_rs_to_80
- story-kit: accept 93_bug_agent_session_id_is_null_while_running
- story-kit: queue 105_story_test_coverage_io_shell_rs_to_95 for QA
- story-kit: queue 106_story_test_coverage_http_settings_rs_to_80 for QA
- story-kit: create 115_story_hot_reload_project_toml_agent_config_without_server_restart
- story-kit: queue 101_story_test_coverage_http_chat_rs_to_80 for merge
- story-kit: queue 93_bug_agent_session_id_is_null_while_running for merge
- story-kit: start 108_story_test_coverage_http_agents_rs_to_70
- story-kit: queue 104_story_test_coverage_io_search_rs_to_95 for QA
- story-kit: accept 100_story_test_coverage_http_context_rs_to_100
- story-kit: merge 100_story_test_coverage_http_context_rs_to_100
- story-kit: queue 100_story_test_coverage_http_context_rs_to_100 for merge
- fix: resolve merge conflicts from story-95/96 squash merges
- story-kit: accept 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: merge 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: accept 102_story_test_coverage_http_model_rs_to_80
- story-kit: start 104_story_test_coverage_io_search_rs_to_95
- story-kit: start 103_story_test_coverage_http_project_rs_to_80
- story-kit: merge 102_story_test_coverage_http_model_rs_to_80
- story-kit: accept 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop
- story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for merge
- story-kit: start 101_story_test_coverage_http_chat_rs_to_80
- story-kit: queue 100_story_test_coverage_http_context_rs_to_100 for QA
- story-kit: queue 102_story_test_coverage_http_model_rs_to_80 for QA
- story-kit: queue 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop for merge
- story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for QA
- story-kit: start 102_story_test_coverage_http_model_rs_to_80
- story-kit: start 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: create 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: create 113_story_add_test_coverage_for_usepathcompletion_hook
- story-kit: create 112_story_add_test_coverage_for_app_tsx
- story-kit: create 111_story_add_test_coverage_for_api_agents_ts
- story-kit: create 110_story_add_test_coverage_for_api_settings_ts
- story-kit: create 109_story_add_test_coverage_for_lozengeflycontext_selectionscreen_and_chatheader_components
- story-kit: accept 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for merge
- fix: add text reporter to vitest so coverage script can parse frontend coverage
- story-kit: create 108_story_test_coverage_http_agents_rs_to_70
- story-kit: create 107_story_test_coverage_http_assets_rs_to_85
- story-kit: create 106_story_test_coverage_http_settings_rs_to_80
- story-kit: create 105_story_test_coverage_io_shell_rs_to_95
- story-kit: create 104_story_test_coverage_io_search_rs_to_95
- story-kit: create 103_story_test_coverage_http_project_rs_to_80
- story-kit: create 102_story_test_coverage_http_model_rs_to_80
- story-kit: create 101_story_test_coverage_http_chat_rs_to_80
- story-kit: create 100_story_test_coverage_http_context_rs_to_100
- story-kit: create 99_story_test_coverage_http_health_rs_to_100
- story-kit: start 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: create 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: create 98_story_expand_work_item_to_full_screen_detail_view
- story-kit: accept 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster
- fix(agents): enforce single-instance concurrency per agent name
- story-kit: queue 93_story_expose_server_logs_to_agents_via_mcp for merge
- story-kit: queue 89_story_persistent_per_session_agent_logs for merge
- story-kit: queue 89_story_persistent_per_session_agent_logs for QA
- story-kit: queue 93_story_expose_server_logs_to_agents_via_mcp for QA
- fix: allow e2e tests to reuse existing vite server on port conflict
- story-kit: start 97_bug_agent_pool_allows_multiple_instances_of_the_same_agent_to_run_concurrently
- story-kit: accept 94_bug_stale_agent_state_persists_after_server_restart
- feat(story-93): expose server logs to agents via get_server_logs MCP tool
- story-kit: merge 94_bug_stale_agent_state_persists_after_server_restart
- story-kit: create 97_bug_agent_pool_allows_multiple_instances_of_the_same_agent_to_run_concurrently
- story-kit: queue 94_bug_stale_agent_state_persists_after_server_restart for merge
- story-kit: queue 94_bug_stale_agent_state_persists_after_server_restart for QA
- story-kit: start 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster
- story-kit: queue 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop for QA
- story-kit: create 96_story_reset_agent_lozenge_to_idle_state_when_returning_to_roster
- story-kit: start 93_story_expose_server_logs_to_agents_via_mcp
- story-kit: accept 78_story_create_spike_mcp_tool
- story-kit: merge 78_story_create_spike_mcp_tool
- story-kit: queue 78_story_create_spike_mcp_tool for merge
- story-kit: start 89_story_persistent_per_session_agent_logs
- story-kit: queue 78_story_create_spike_mcp_tool for QA
- story-kit: start 94_bug_stale_agent_state_persists_after_server_restart
- story-kit: start 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop
- story-kit: start 78_story_create_spike_mcp_tool
- chore: add .vite/ Vitest cache to .gitignore
- story-kit: create 95_bug_pipeline_auto_restart_has_no_retry_limit_causing_infinite_loop
- story-kit: create 94_bug_stale_agent_state_persists_after_server_restart
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
- story-kit: create 93_story_expose_server_logs_to_agents_via_mcp
- story-kit: queue 91_bug_permissions_dialog_never_triggers_in_web_ui for QA
- story-kit: start 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: create 91_bug_permissions_dialog_never_triggers_in_web_ui
- feat(story-85): agent lozenges move between roster and work items
- Switch all Sonnet agents from 4.6 to 4.5 for speed
- story-kit: queue 93_bug_agent_session_id_is_null_while_running for QA
- story-kit: start 93_bug_agent_session_id_is_null_while_running
- story-kit: create 93_bug_agent_session_id_is_null_while_running
- story-kit: create 92_spike_stop_auto_committing_intermediate_pipeline_moves
- story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- Remove invalid --directory flag that broke agent spawning
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
- story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: remove 92_story_test_story_creation_without_test_plan
- story-kit: create 92_story_test_story_creation_without_test_plan
- Remove test_plan gate from the codebase
- story-kit: create 35_story_agent_security_and_sandboxing
- story-kit: create 35_story_agent_security_and_sandboxing
- story-kit: accept 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- Inject story content into agent prompts so coders know what to build
- story-kit: accept 89_story_persistent_per_session_agent_logs
- story-kit: queue 89_story_persistent_per_session_agent_logs for merge
- story-kit: accept 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for merge
- story-kit: queue 89_story_persistent_per_session_agent_logs for QA
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
- Pass --directory flag to Claude Code agents to prevent worktree escape
- story-kit: accept 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: merge 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for merge
- story-kit: create 91_bug_permissions_dialog_never_triggers_in_web_ui
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for QA
- story-kit: create 90_story_fetch_real_context_window_size_from_anthropic_models_api
- story-kit: start 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: start 89_story_persistent_per_session_agent_logs
- story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: accept 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: merge 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: accept 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for merge
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for QA
- story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: create 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- Fix invalid model names and preserve worktrees for debugging
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: accept 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for merge
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for QA
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment
- Disable worktree isolation of .story_kit/work/ (no-op)
- story-kit: create 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: remove 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: create 89_story_persistent_per_session_agent_logs
- Replace sparse checkout with skip-worktree for pipeline isolation
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- Fix sparse checkout leaking to main repo by using git sparse-checkout set
- story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: create 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: accept 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for merge
- story-kit: queue 88_story_auto_assign_agents_to_available_work_on_server_startup for QA
- story-kit: start 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: create 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: accept 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for merge
- story-kit: queue 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat for QA
- story-kit: create 88_story_auto_assign_agents_to_available_work_on_server_startup
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- Fix sparse checkout leaking from worktrees to main checkout
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: start 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- story-kit: accept 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for merge
- story-kit: queue 87_story_update_agent_lozenge_colour_scheme_across_panels for QA
- story-kit: start 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: create 87_story_update_agent_lozenge_colour_scheme_across_panels
- story-kit: create 86_story_show_live_activity_status_instead_of_static_thinking_indicator_in_chat
- Sparse checkout excludes .story_kit/work/ from agent worktrees
- story-kit: accept 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees
- story-kit: queue 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees for merge
- story-kit: queue 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees for QA
- story-kit: accept 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for merge
- story-kit: queue 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating for QA
- story-kit: start 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- story-kit: create 85_story_agent_lozenges_move_between_roster_and_work_items_instead_of_duplicating
- Update sonnet agents to sonnet-4.6
- fix: remove stray conflict marker in AgentPanel.test.tsx
- story-kit: start 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees
- story-kit: create 84_story_sparse_checkout_excludes_pipeline_files_from_agent_worktrees
- story-kit: remove 83_story_remove_active_work_list_from_agents_panel
- Merge story 62: allow frontend UI to accept permission requests
- story-kit: accept 83_story_remove_active_work_list_from_agents_panel
- story-kit: remove 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui
- story-kit: start 83_story_remove_active_work_list_from_agents_panel
- story-kit: queue 83_story_remove_active_work_list_from_agents_panel for merge
- story-kit: accept 62_story_allow_frontend_ui_to_accept_permissions_requests
- story-kit: merge 62_story_allow_frontend_ui_to_accept_permissions_requests
- fix: resolve merge conflict in claude_code.rs
- story-83: remove active work list from Agents panel
- story-kit: queue 62_story_allow_frontend_ui_to_accept_permissions_requests for merge
- story-kit: accept 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input
- story-kit: merge 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input
- story-kit: queue 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input for merge
- story-kit: queue 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input for QA
- feat: Shift+Enter inserts newline in chat input (story 82)
- story-kit: queue 62_story_allow_frontend_ui_to_accept_permissions_requests for QA
- feat(story-62): add permission request prompts to web UI
- story-kit: start 83_story_remove_active_work_list_from_agents_panel
- story-kit: create 83_story_remove_active_work_list_from_agents_panel
- story-kit: remove 66_spike_pipeline_stage_state_machine
- story-kit: start 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input
- story-kit: create 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input
- story-kit: accept 81_story_agent_roster_badges_show_availability_state
- story-kit: merge 81_story_agent_roster_badges_show_availability_state
- story-kit: queue 81_story_agent_roster_badges_show_availability_state for merge
- story-kit: queue 81_story_agent_roster_badges_show_availability_state for QA
- feat(story-81): agent roster badges show availability state with green idle styling
- story-kit: start 81_story_agent_roster_badges_show_availability_state
- story-kit: start 81_story_agent_roster_badges_show_availability_state
- story-kit: create 81_story_agent_roster_badges_show_availability_state
- story-kit: accept 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui
- story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for merge
- story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for merge
- story-kit: start 62_story_allow_frontend_ui_to_accept_permissions_requests
- story-kit: create 62_story_allow_frontend_ui_to_accept_permissions_requests
- story-kit: accept 79_story_agents_panel_skips_archived_work_on_startup
- story-kit: merge 79_story_agents_panel_skips_archived_work_on_startup
- story-kit: queue 79_story_agents_panel_skips_archived_work_on_startup for merge
- story-80: approve test plan
- story-kit: remove 58_story_live_agent_panel_updates
- story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for QA
- story-80: remove model/apiKey and rate limit notifications from chat UI
- story-kit: queue 79_story_agents_panel_skips_archived_work_on_startup for QA
- story-kit: start 79_story_agents_panel_skips_archived_work_on_startup
- story-kit: start 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui
- story-kit: create 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui
- story-kit: remove 76_story_story_with_colon_testing_the_fix
- story-kit: start 79_story_agents_panel_skips_archived_work_on_startup
- story-kit: remove 70_story_server_owned_agent_completion_remove_report_completion_dependency
- Add coder-opus agent to project.toml
- story-kit: create 79_story_agents_panel_skips_archived_work_on_startup
- story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: queue 74_story_agent_lozenges_float_across_ui_during_assignment for merge
- story-kit: queue 74_story_agent_lozenges_float_across_ui_during_assignment for QA
- fix: use act instead of waitFor in fake-timer test for agent fade-out
- style: biome format AgentPanel.test.tsx imports
- feat: FLIP-style lozenge fly animation when agents are assigned to stories
- story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for merge
- story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for QA
- chore: sync pipeline story/bug files in worktree
- Server-owned agent completion: remove report_completion dependency
- story-kit: accept 77_bug_create_bug_file_writes_no_yaml_front_matter
- story-kit: merge 77_bug_create_bug_file_writes_no_yaml_front_matter
- story-kit: queue 77_bug_create_bug_file_writes_no_yaml_front_matter for merge
- story-kit: start 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: queue 77_bug_create_bug_file_writes_no_yaml_front_matter for QA
- story-kit: create 78_story_create_spike_mcp_tool
- story-kit: remove 75_story_test_story_with_colon
- story-kit: start 77_bug_create_bug_file_writes_no_yaml_front_matter
- story-kit: accept 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: create 77_bug_create_bug_file_writes_no_yaml_front_matter
- story-kit: create 77_bug_create_bug_file_writes_no_yaml_front_matter
- story-kit: create 76_story_story_with_colon_testing_the_fix
- story-kit: start 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for QA
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency
- story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for merge
- story-kit: create 75_story_test_story_with_colon
- story-kit: accept 73_story_fade_out_completed_agents
- story-kit: start 73_story_fade_out_completed_agents
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: create 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: accept 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency
- story-kit: queue 73_story_fade_out_completed_agents for QA
- story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for QA
- story-kit: remove 51_story_deterministic_spike_lifecycle_management
- story-kit: accept 71_bug_server_health_endpoint_missing
- story-kit: merge 71_bug_server_health_endpoint_missing
- story-kit: queue 71_bug_server_health_endpoint_missing for merge
- story-kit: queue 71_bug_server_health_endpoint_missing for QA
- story-kit: remove 29_story_directory_based_workflow_coordination
- story-kit: create 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 71_bug_server_health_endpoint_missing
- story-kit: start 71_bug_server_health_endpoint_missing
- story-kit: start 73_story_fade_out_completed_agents
- story-kit: create 73_story_fade_out_completed_agents
- story-kit: create 73_story_fade_out_completed_agents
- story-kit: create 74_story_agent_lozenges_float_across_ui_during_assignment
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for merge
- story-kit: create 73_story_fade_out_completed_agents
- story-kit: create 70_story_fade_out_completed_agents
- story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for QA
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: create 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: create 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: create 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name
- story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency
- story-kit: create 71_bug_server_health_endpoint_missing
- story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency
- story-kit: create 70_story_server_owned_agent_completion_remove_report_completion_dependency
- story-kit: accept 69_story_test_coverage_qa_gate
- story-kit: merge 69_story_test_coverage_qa_gate
- story-kit: queue 69_story_test_coverage_qa_gate for merge
- story-kit: accept 68_story_frontend_pipeline_state_stale_after_server_restart
- story-kit: merge 68_story_frontend_pipeline_state_stale_after_server_restart
- story-kit: queue 68_story_frontend_pipeline_state_stale_after_server_restart for merge
- story-kit: queue 69_story_test_coverage_qa_gate for QA
- Accept story 59: Animated Agent Work Assignment UI
- story-kit: queue 68_story_frontend_pipeline_state_stale_after_server_restart for QA
- story-kit: accept 59_story_current_work_panel
- story-kit: start 59_story_current_work_panel
- story-kit: queue 59_story_current_work_panel for merge
- story-kit: start 69_story_test_coverage_qa_gate
- story-kit: start 68_story_frontend_pipeline_state_stale_after_server_restart
- story-kit: queue 59_story_current_work_panel for QA
- story-kit: start 69_story_test_coverage_qa_gate
- story-kit: start 68_story_frontend_pipeline_state_stale_after_server_restart
- story-kit: accept 67_story_server_drives_pipeline_as_state_machine
- Server drives pipeline as state machine
- story-kit: create 69_story_test_coverage_qa_gate
- story-kit: start 59_story_current_work_panel
- story-kit: start 67_story_server_drives_pipeline_as_state_machine
- story-kit: accept 65_story_standardised_script_test_entry_point_for_all_projects
- story-kit: start 65_story_standardised_script_test_entry_point_for_all_projects
- story-kit: create 59_story_current_work_panel
- story-kit: create 68_story_frontend_pipeline_state_stale_after_server_restart
- story-kit: accept 64_story_watcher_should_ignore_worktree_code_changes
- Watcher ignores file changes under .story_kit/worktrees/
- story-kit: accept 63_story_auto_spawn_mergemaster_on_merge
- story-kit: start 65_story_standardised_script_test_entry_point_for_all_projects
- story-kit: create 67_story_server_drives_pipeline_as_state_machine
- story-kit: create 67_story_server_drives_pipeline_as_state_machine
- story-kit: create 67_story_server_drives_pipeline_as_state_machine
- story-kit: create 66_spike_pipeline_stage_state_machine
- story-kit: create 66_story_pipeline_stage_state_machine_spike
- story-kit: create 65_story_standardised_script_test_entry_point_for_all_projects
- story-kit: create 65_story_standardised_script_test_entry_point_for_all_projects
- story-kit: start 64_story_watcher_should_ignore_worktree_code_changes
- story-kit: start 64_story_watcher_should_ignore_worktree_code_changes
- story-kit: create 64_story_watcher_should_ignore_worktree_code_changes
- Consolidate Claude Code permissions into settings.json
- story-kit: accept 63_story_auto_spawn_mergemaster_on_merge
- story-kit: start 63_story_auto_spawn_mergemaster_on_merge
- story-kit: queue 63_story_auto_spawn_mergemaster_on_merge for merge
- story-kit: start 63_story_auto_spawn_mergemaster_on_merge
- story-kit: create 63_story_auto_spawn_mergemaster_on_merge
- Removing concrete technology mentions in story kit README, those living tech specs
- Bringing README up to date.
- story-kit: create 59_story_current_work_panel
- story-kit: create 59_story_current_work_panel
- story-kit: create 59_story_current_work_panel
- Refactored a few things from main into modules
- Fixed up dependencies warning.
- Move all server deps to workspace, alphabetize
- story-kit: remove 4_bug_run_button_does_not_start_agent
- Delete dead e2e tests for removed panels
- story-kit: accept 56_story_auto_increment_work_item_ids
- story-kit: start 56_story_auto_increment_work_item_ids
- story-kit: accept 61_spike_filesystem_watcher_architecture
- story-kit: create 62_story_allow_frontend_ui_to_accept_permissions_requests
- story-kit: create 62_story_allow_frontend_ui_to_accept_permissions_requests
- Spike 61: filesystem watcher and UI simplification
- story-kit: create story 62_story_allow_frontend_ui_to_accept_permissions_requests
- story-kit: create story 62_story_stretch_stu_s_nutsack
- Spike 61: document findings and mark success criteria done
- story-kit: start spike 61 - Filesystem Watcher Architecture
- Accept story 53: QA Agent Role
- Story 53: Add QA agent role with request_qa MCP tool
- Add spike 61: Filesystem Watcher Architecture
- Add .gitkeep to all work pipeline directories
- story-kit: start 53_story_qa_agent_role
- Accept story 52: Mergemaster Agent Role
- Story 52: Mergemaster agent role with merge_agent_work MCP tool
- Update story 55: scope to Upcoming panel only
- story-kit: start 52_story_mergemaster_agent_role
- Accept story 60: Status-Based Directory Layout
- Fix 25 tests for work/ directory restructure (story 60)
- Story 60: Status-Based Directory Layout with work/ pipeline
- Accept story 54: Cross-Platform Binary Distribution
- Story 54: add cross-platform binary distribution support
- story-kit: set test_plan to approved for story 54_cross_platform_binary_distribution
- Add .git/ to .ignore to prevent cargo watch restarts on commits
- story-kit: start 54_cross_platform_binary_distribution
- Fix ls permission pattern: use space instead of colon
- Update stories 52, 53, 59 with work/ directory paths
- Simplify story 60: accept moves from 2_current to 5_archived only
- Update story 60: add numbered work/ directory structure
- story-kit: start 60_status_based_directory_layout
- Broaden Claude Code permissions to reduce approval prompts
- Accept story 49: Deterministic Bug Lifecycle Management
- Story 49: Deterministic Bug Lifecycle Management
- Add story 60: Status-Based Directory Layout
- Add .gitkeep to .story_kit/current/
- Remove stories/current/ — replaced by unified .story_kit/current/
- Accept story 50: migrate to unified .story_kit/current/, add stories 55-59
- Story 50: Unified Current Work Directory
- Updated toml a bit - still more to go
- Deduplicate story numbers, add stories 52-56
- Add story 53: WebSocket push notifications for panel auto-refresh
- Fix leftover merge conflict markers in Chat.test.tsx
- Accept story 48: Two Column Layout
- Story 48: Two Column Layout — Chat Left, Panels Right
- Renumber story 50 (unified current work directory) to 52 to avoid duplicate
- story-kit: start story 49_deterministic_bug_lifecycle_management
- story-kit: close bug bug-5-fix_collect_coverage_button_error
- Fix failing Chat tests: correct tool call badge assertions
- Fix bug 5: truncate coverage error output to last 5 lines
- Update story 50: ensure agent prompts match new directory layout
- Add story 51: Deterministic Spike Lifecycle Management
- Update story 50: add integration tests and lifecycle coverage
- Add story 50: Unified Current Work Directory
- Add story 49: Deterministic Bug Lifecycle Management
- Update bug 5 with root cause, repro steps, and expected result
- Add story 50: cross-platform binary distribution with musl
- Accept story 46: Deterministic Story Mutations with Auto-Commit
- Story 46: Deterministic Story Mutations with Auto-Commit
- Move stories 46 and 48 to current (agents working on them)
- Renamed bug file
- Move bug 47 to .story_kit/bugs/
- Move bug 47 to bugs/ folder
- Add bug 47: Fix Collect Coverage button error
- Fix: export unused EditorCommand component to fix TS build
- Accept story 45: Deterministic Story Lifecycle Management
- Accept story 44: Agent Completion Report via MCP
- Story 44: Agent Completion Report via MCP
- Add story 46: Deterministic Story Mutations with Auto-Commit
- Update story 45: accept_story needs MCP tool not just REST
- Update story 44: server auto-commits instead of rejecting uncommitted changes
- Accept story 37: Editor Command for Worktrees
- Story 37: Editor Command for Worktrees
- Move story 45 to current
- Move stories 37 and 44 to current
- Add story 45: Deterministic Story Lifecycle Management
- Accept story 43: Unified Chat UI for Claude Code and Regular Chat
- Story 43: Unified chat UI for Claude Code and regular chat
- Accept story 42: Deterministic Worktree Management via REST/MCP API
- Story 42: Deterministic worktree management via REST/MCP API
- Accept story 38: Auto-Open Project on Server Startup
- Add story 44: Agent Completion Report via MCP
- Add coder-3 agent to project config
- Move story 43 to current: Unified Chat UI
- Add story 43: Unified chat UI for Claude Code and regular chat
- Move story 38 to current: Auto-Open Project on Server Startup
- Move story 42 to current: Deterministic Worktree Management
- Accept story 40: MCP Server Obeys STORYKIT_PORT
- Accept story 33: Copy-paste diff commands for agent worktrees
- Accept story 33: Copy-paste diff commands for agent worktrees
- Accept story 40: MCP Server Obeys STORYKIT_PORT
- Archive bugs 2-3, file bug 4: Run button does not start agent
- Fix bugs 2 and 3: agent panel expand and stale worktree references
- Accept story 41: Agent Completion Notification via MCP
- Add auto-commit criterion to story 42
- Add story 42: Deterministic worktree management via REST/MCP API
- Move story 41 to current: Agent Completion Notification via MCP
- Add story 41: Agent Completion Notification via MCP
- Story 33: Copy-paste diff commands for agent worktrees
- Log bugs 2 and 3: agent panel expand and stale worktree issues
- Update agent prompts: read README, commit work, tiered acceptance
- Move story 33 to current
- Move story 40 to current: MCP Server Obeys STORYKIT_PORT
- Add story 40: MCP Server Obeys STORYKIT_PORT
- Rewrite story 33: copy-paste diff commands using git difftool
- Spike 3: Sub-agent infrastructure fixes for multi-agent coordination
- Add user testing step to bug workflow before merge
- Fix bug 1: Only fetch Anthropic models when API key exists
- Add bugs directory structure to .story_kit
- Update bug workflow: require failing test first and worktree
- Accept story 39: Persistent Claude Code Sessions in Web UI
- Add worktree port configuration docs to STACK.md
- Move Claude Code permissions to committed settings for worktree sharing
- Updated portable-pty
- Add story 39: Persistent Claude Code Sessions in Web UI
- Noting existence of mcp server
- Add story 38: Auto-Open Project on Server Startup
- Accept spike 2: MCP HTTP endpoint for workflow and agent tools
- Renamed worktree diff story
- Accept story 34: Per-Project Agent Configuration and Role Definitions
- Splitting up the editor and diff stories
- Finishing agent merge
- Accept story 36: Enforce Front Matter on All Story Files
- Accept story 30: Worktree-based agent orchestration
- Use STORYKIT_PORT for both backend and frontend, add .story_kit_port to ignore files
- Story 32: Multi-Instance Worktree Support
- Move story 32 to current and rename to multi-instance worktree support
- Move story 36 to current: Enforce Front Matter on All Story Files
- Remove duplicate story 34 security file (renumbered to 35)
- Backfill YAML front matter on all story files
- Renumber agent security and sandboxing story from 34 to 35
- Move story 30 to current: Worktree-Based Agent Orchestration
- Move story 32 to current and rename to multi-instance worktree support
- Accept story 28: Show Remaining Test TODOs in the UI
- Add story 36: Enforce front matter on all story files
- Add story 35: Agent security and sandboxing, add bypassPermissions to agent spawns
- Story 31: View Upcoming Stories
- Add story 34: per-project agent configuration and role definitions
- Story 28: Show remaining test TODOs in the UI
- Revert spike ports to 3001/5173, add stories 32 and 33
- Spike: PTY-based Claude Code integration with multi-agent concurrency
- Update story 28 to read TODOs from story file instead of tests/todo/
- Renumber upcoming stories and add .ignore updates
- Finished a few more stories
- Fix post-merge: pass None for coverage arg in to_review_story tests
- Story 27: Coverage tracking (full-stack)
- WIP: Batch 4 — App, GatePanel, ReviewPanel frontend tests
- WIP: Batch 3 — backfill frontend tests
- WIP: Batch 2 — backfill tests for fs, shell, and http/workflow
- WIP: Batch 1 — backfill tests for store, search, and workflow
- Ensuring we keep the current storykit stories folder
- Added fronted test instructions
- Removing unneeded tsconfig
- Story 26: Establish TDD workflow and quality gates
- Ignore Playwright test results
- Update Story Kit workflow docs and move story 26
- Consolidate upcoming TDD stories
- Deleted orphan file
- Rename workflow to story-driven test workflow
- Add story for UI test TODO visibility
- Refocus workflow on TDD and reorganize stories
- Archived story 25
- Project creation is workign
- Split into components
- ibid
- Clean up previous project display
- Fixed up project picker a bit
- Text-completion picker to select a project
- Put in a recent project picker
- Ignoring the store.json
- Happier startup message
- Auto-build the fronted into the release binary on cargo build --release
- Added some API doc comments
- Refactored and documented the HTTP API
- More smoothing, as they say
- Refactoring the structure a bit
- Smoothing out some tauri conversion leftovers
- Caonverting to workspace
- Renamed .living_spec in a few more places
- Renamed living spec to Story Kit
- moved from tauri to a server with embedded UI
- Updating README
- Upating README for living spec
- Testing more paths in search
- ibid
- wip tests for chat.rs
- Wrote some tests.
- Fixing warnings and moving LLM providers into a module
- Updated dependencies, fixed some clippy warnings
- Fix Story 12: Claude API key storage now working
- Fix model selection resetting issue
- Frontend: Add Claude integration UI
- Backend: Add Anthropic/Claude provider integration
- Story 12: Update story and specs for Claude integration
- Archive Story 23 to stories/archive/
- Story 23: Alphabetize LLM dropdown list
- Archive Story 22 to stories/archive/
- Story 22: Implement smart auto-scroll that respects user scrolling
- Clean up duplicate Story 18 files (already archived)
- Remove Story 16 placeholder (work completed in previous commit)
- UI: Move submit/stop button outside input field
- Story 15: Implement New Session cancellation
- Story 13: Implement Stop button with backend cancellation
- Fix race condition: ignore streaming events from old sessions
- Fix New Session bug: use async Tauri dialog instead of window.confirm
- Add debug logging to clearSession to diagnose Cancel button bug
- Story 17: Display Context Window Usage with emoji indicator
- Remove duplicate/empty Story 15 (New Session was completed as Story 20)
- Add Story 22: Smart auto-scroll that respects user scrolling
- Add biome-ignore for intentional useEffect dependencies
- Fix auto-scroll bug: add messages and streamingContent as dependencies to useEffect
- Story 20: New Session button to clear chat history
- Story 18: Token-by-token streaming responses
- feat: Backend cancellation support for interrupting model responses
- feat: Story 14 - Auto-focus chat input on startup
- feat: Story 11 - Left-align text and add syntax highlighting
- feat: Story 9 - Remove scroll bars for cleaner UI
- feat: Story 8 - Collapsible tool outputs + autonomous coding improvements
- chore: archive story 10
- feat: persist model selection
- chore: archive story 09
- feat: system prompt and persona
- chore: archive story 07
- feat: ui polish (sticky header, dark mode, flat inputs)
- chore: archive story 06
- feat: event-driven ui updates
- chore: archive story 04
- feat: auto-detect ollama models
- feat: persist project selection
- Added some more stories for later
- fix: make llm provider async and add tool toggle
- feat: agent brain (ollama) and chat ui
- feat: core agent tools (fs, search, shell)
- Initial commit
Full diff: https://code.crashlabs.io/dave/story-kit/compare/initial...v0.1.0
Downloads