storkit: done 417_refactor_split_matrix_bot_rs_into_focused_modules

This commit is contained in:
dave
2026-03-28 08:30:04 +00:00
parent 665c036a56
commit 203e8f22be
2 changed files with 30 additions and 23 deletions
@@ -1,23 +0,0 @@
---
name: "loc for a specified file — bot command and web UI slash command"
---
# Story 420: loc for a specified file — bot command and web UI slash command
## User Story
As a developer, I want to send `loc <filepath>` to the bot or use it as a slash command in the web UI to see the line count for a specific file, so I can quickly check how large a file is without leaving my workflow.
## Acceptance Criteria
- [ ] loc <filepath> returns the line count for the specified file
- [ ] Relative paths are resolved against the project root
- [ ] If the file does not exist, returns a clear error
- [ ] Works from all transports (Matrix, WhatsApp, Slack)
- [ ] Works as a slash command in the web UI
- [ ] loc with no argument retains existing behavior (top files by line count)
- [ ] Exposed as an MCP tool so agents can query file line counts programmatically
## Out of Scope
- TBD
@@ -0,0 +1,30 @@
---
name: "Split matrix/bot.rs into focused modules"
---
# Refactor 417: Split matrix/bot.rs into focused modules
## Current State
- TBD
## Desired State
Refactor the monolithic server/src/chat/transport/matrix/bot.rs (1926 lines) into focused submodules.
## Acceptance Criteria
- [ ] history.rs contains ConversationRole, ConversationEntry, RoomConversation, PersistedHistory, load_history, save_history and their unit tests
- [ ] context.rs contains BotContext struct
- [ ] run.rs contains run_bot main event loop
- [ ] messages.rs contains on_room_message, handle_message, format_user_prompt, is_permission_approval and their unit tests
- [ ] mentions.rs contains mentions_bot, contains_word, is_reply_to_bot and their unit tests
- [ ] verification.rs contains check_sender_verified, on_to_device_verification_request, handle_sas_verification and their unit tests
- [ ] format.rs contains markdown_to_html, format_startup_announcement and their unit tests
- [ ] mod.rs re-exports all public types
- [ ] Unit tests live in their respective module files
- [ ] No public API changes — all existing imports continue to work
## Out of Scope
- TBD