• v0.4.1 d60ed18e0f

    v0.4.1 Stable

    dave released this 2026-03-20 12:58:04 +00:00 | 56 commits to master since this release

    What'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 8074e3b420

    v0.4.0 Stable

    dave released this 2026-03-19 17:08:30 +00:00 | 200 commits to master since this release

    What'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 7451cb7170

    v0.3.2 Stable

    dave released this 2026-03-18 15:32:56 +00:00 | 296 commits to master since this release

    What'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 7e45a1fba0

    v0.3.1 Stable

    dave released this 2026-03-18 11:51:45 +00:00 | 348 commits to master since this release

    What'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 0a6de3717a

    v0.3.0 Stable

    dave released this 2026-03-18 11:37:16 +00:00 | 357 commits to master since this release

    What'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 cffe63680d

    v0.2.0 Stable

    dave released this 2026-03-17 16:25:26 +00:00 | 517 commits to master since this release

    What'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 2ff294724a

    v0.1.0 Stable

    dave released this 2026-03-13 13:17:52 +00:00 | 717 commits to master since this release

    What'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