storkit: done 441_refactor_deduplicate_get_project_root_wrappers_in_io_modules

This commit is contained in:
dave
2026-03-28 16:46:18 +00:00
parent 243738551c
commit 496ce864d7
6 changed files with 0 additions and 119 deletions
@@ -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 `/<command> ` 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
@@ -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
@@ -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
@@ -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
@@ -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