From 496ce864d798eda168234e9b3233e3defb170ab6 Mon Sep 17 00:00:00 2001 From: dave Date: Sat, 28 Mar 2026 16:46:18 +0000 Subject: [PATCH] storkit: done 441_refactor_deduplicate_get_project_root_wrappers_in_io_modules --- ...mmand_autocomplete_in_web_ui_text_input.md | 23 ----------------- ...stuck_states_into_a_single_status_field.md | 25 ------------------- ...e_stage_display_name_into_shared_module.md | 23 ----------------- ...ct_shared_find_story_name_from_commands.md | 23 ----------------- ...pers_test_ctx_write_story_file_make_api.md | 25 ------------------- ...get_project_root_wrappers_in_io_modules.md | 0 6 files changed, 119 deletions(-) delete mode 100644 .storkit/work/1_backlog/438_story_slash_command_autocomplete_in_web_ui_text_input.md delete mode 100644 .storkit/work/1_backlog/439_refactor_unify_story_stuck_states_into_a_single_status_field.md delete mode 100644 .storkit/work/1_backlog/442_refactor_deduplicate_stage_display_name_into_shared_module.md delete mode 100644 .storkit/work/1_backlog/443_refactor_extract_shared_find_story_name_from_commands.md delete mode 100644 .storkit/work/1_backlog/444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api.md rename .storkit/work/{1_backlog => 5_done}/441_refactor_deduplicate_get_project_root_wrappers_in_io_modules.md (100%) diff --git a/.storkit/work/1_backlog/438_story_slash_command_autocomplete_in_web_ui_text_input.md b/.storkit/work/1_backlog/438_story_slash_command_autocomplete_in_web_ui_text_input.md deleted file mode 100644 index 4c0129a2..00000000 --- a/.storkit/work/1_backlog/438_story_slash_command_autocomplete_in_web_ui_text_input.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: "Slash command autocomplete in web UI text input" ---- - -# Story 438: Slash command autocomplete in web UI text input - -## User Story - -As a user, I want to type `/` at the start of the text box and see a filtered list of available slash commands, so that I can discover and quickly invoke commands without memorizing them. - -## Acceptance Criteria - -- [ ] Typing `/` at position 0 in the ChatInput textarea shows a command picker overlay above the input -- [ ] The overlay lists all slash commands with name and description -- [ ] Typing further characters after `/` fuzzy-filters the list -- [ ] Arrow keys navigate the list, Tab/Enter selects, Escape dismisses -- [ ] Selecting a command inserts `/ ` into the input (with trailing space) -- [ ] Command list is a single shared source of truth used by both the picker and HelpOverlay -- [ ] The overlay follows the same visual style as the existing file picker (@-mention overlay) - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/439_refactor_unify_story_stuck_states_into_a_single_status_field.md b/.storkit/work/1_backlog/439_refactor_unify_story_stuck_states_into_a_single_status_field.md deleted file mode 100644 index e72b2b40..00000000 --- a/.storkit/work/1_backlog/439_refactor_unify_story_stuck_states_into_a_single_status_field.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: "Deduplicate strip_prefix_ci / strip_bot_mention into chat::util" ---- - -# Refactor 439: Deduplicate strip_prefix_ci / strip_bot_mention into chat::util - -## Current State - -- TBD - -## Desired State - -Eight Matrix transport files (assign.rs, delete.rs, start.rs, rebuild.rs, reset.rs, rmtree.rs, htop.rs, timer.rs) each contain their own private copies of `strip_prefix_ci` and `strip_bot_mention`. The canonical versions already live in `chat::util` with the correct `is_char_boundary` guard. The duplicates should be removed and all call sites should use `util::strip_bot_mention` instead. - -## Acceptance Criteria - -- [ ] All 8 private copies of strip_prefix_ci are removed -- [ ] All 8 private copies of strip_bot_mention are removed -- [ ] All call sites use chat::util::strip_bot_mention instead -- [ ] Existing tests in util.rs continue to pass -- [ ] No new copies of strip_prefix_ci exist outside util.rs - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/442_refactor_deduplicate_stage_display_name_into_shared_module.md b/.storkit/work/1_backlog/442_refactor_deduplicate_stage_display_name_into_shared_module.md deleted file mode 100644 index 35c02d6c..00000000 --- a/.storkit/work/1_backlog/442_refactor_deduplicate_stage_display_name_into_shared_module.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: "Deduplicate stage_display_name into shared module" ---- - -# Refactor 442: Deduplicate stage_display_name into shared module - -## Current State - -- TBD - -## Desired State - -`stage_display_name` has a `pub fn` in `chat/transport/matrix/notifications.rs` and a private copy in `chat/transport/matrix/delete.rs` with slightly different casing ("backlog" vs "Backlog", "in-progress" vs "Current"). The delete.rs copy should use the canonical version from notifications.rs, adjusting the callsite if the casing difference matters. - -## Acceptance Criteria - -- [ ] Private stage_display_name in delete.rs is removed -- [ ] delete.rs uses the pub version from notifications.rs -- [ ] Display casing is consistent or callsite is adjusted to handle the difference - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/443_refactor_extract_shared_find_story_name_from_commands.md b/.storkit/work/1_backlog/443_refactor_extract_shared_find_story_name_from_commands.md deleted file mode 100644 index 631a6531..00000000 --- a/.storkit/work/1_backlog/443_refactor_extract_shared_find_story_name_from_commands.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: "Extract shared find_story_name from commands" ---- - -# Refactor 443: Extract shared find_story_name from commands - -## Current State - -- TBD - -## Desired State - -`find_story_name` is nearly identical in `chat/commands/overview.rs` and `chat/commands/unreleased.rs` (minor style diff: `let stages` vs `const STAGES`). Extract to a shared location (e.g. `chat::commands::util` or `io::stories`) and have both callers use it. - -## Acceptance Criteria - -- [ ] Single shared find_story_name function exists -- [ ] Both overview.rs and unreleased.rs use the shared version -- [ ] Private copies are removed - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api.md b/.storkit/work/1_backlog/444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api.md deleted file mode 100644 index e20984c4..00000000 --- a/.storkit/work/1_backlog/444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: "Extract shared test helpers (test_ctx, write_story_file, make_api)" ---- - -# Refactor 444: Extract shared test helpers (test_ctx, write_story_file, make_api) - -## Current State - -- TBD - -## Desired State - -Several test helper functions are copy-pasted across many test modules: `test_ctx` (10 copies across http/ modules), `write_story_file` (5 copies across chat/commands/ and matrix/), `make_api` (5 copies across http/ modules), `setup_project` (3 copies in io/). Extract each into a shared `#[cfg(test)]` utility module so test scaffolding is maintained in one place. - -## Acceptance Criteria - -- [ ] test_ctx has a single shared definition used by all 10 http test modules -- [ ] write_story_file has a single shared definition used by all 5 callers -- [ ] make_api has a single shared definition used by all 5 callers -- [ ] setup_project has a single shared definition used by all 3 callers -- [ ] All private copies in individual test modules are removed - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/441_refactor_deduplicate_get_project_root_wrappers_in_io_modules.md b/.storkit/work/5_done/441_refactor_deduplicate_get_project_root_wrappers_in_io_modules.md similarity index 100% rename from .storkit/work/1_backlog/441_refactor_deduplicate_get_project_root_wrappers_in_io_modules.md rename to .storkit/work/5_done/441_refactor_deduplicate_get_project_root_wrappers_in_io_modules.md