storkit: done 441_refactor_deduplicate_get_project_root_wrappers_in_io_modules
This commit is contained in:
@@ -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
|
||||
-25
@@ -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
|
||||
-23
@@ -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
|
||||
-25
@@ -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
|
||||
Reference in New Issue
Block a user