refactor(channels): share reset-command normalization utility

This commit is contained in:
William Valentin
2026-02-15 22:22:40 -08:00
parent 05d8abc79d
commit 8b529a18f2
7 changed files with 59 additions and 11 deletions
@@ -19,13 +19,14 @@ Scope: Production-risk-first audit of bugs, code improvements, and feature oppor
- ✅ F-003 addressed: tool execution now has an `AbortSignal` contract, executor triggers abort on timeout, high-risk tools (`shell.exec`, sandbox docker exec, `process.start`, browser tools, `web.fetch`, `web.search`) respond to cancellation, and executor regression tests verify cancellable tools do not apply side effects after timeout.
- ✅ F-015 addressed: retry defaults no longer classify timeout-style failures as non-retryable, improving resilience for transient timeout conditions.
- ✅ F-011 addressed: Slack user-name resolution now uses bounded TTL+LRU caching to prevent unbounded growth.
- ◑ F-013 partially addressed: reset-command normalization is now shared across Discord/Slack/WhatsApp adapters via `src/channels/utils.ts`, reducing duplicated command-parsing logic.
## Executive Summary
Current health snapshot:
- `pnpm typecheck`: passing
- `pnpm build`: passing
- `pnpm test:run`: passing (`140/140` files, `1770/1770` tests)
- `pnpm test:run`: passing (`140/140` files, `1773/1773` tests)
- `pnpm lint`: failing (`148 errors`, `530 warnings`)
Top conclusions:
@@ -260,6 +261,9 @@ Remediation update (2026-02-16):
- Recommended fix:
- Extract shared middleware utilities for common inbound/outbound behaviors.
Remediation update (2026-02-16):
- Added shared `normalizeResetCommandText()` utility and migrated Discord/Slack/WhatsApp adapters to use it, reducing repeated reset-command parsing logic.
### F-014 Low: ModelRouter listener API has destructive setter footgun
- Severity: Low
+16 -1
View File
@@ -2613,10 +2613,25 @@
"docs/plans/analysis/2026-02-16-codebase-audit-report.md"
],
"test_status": "pnpm test:run src/channels/slack/adapter.test.ts + pnpm typecheck passing"
},
"audit-followup-channel-reset-command-dedup": {
"status": "in_progress",
"date": "2026-02-16",
"updated": "2026-02-16",
"summary": "Started reducing channel adapter duplication by extracting shared reset-command normalization and migrating Discord/Slack/WhatsApp adapters to use it.",
"files_modified": [
"src/channels/utils.ts",
"src/channels/utils.test.ts",
"src/channels/discord/adapter.ts",
"src/channels/slack/adapter.ts",
"src/channels/whatsapp/adapter.ts",
"docs/plans/analysis/2026-02-16-codebase-audit-report.md"
],
"test_status": "pnpm test:run src/channels/utils.test.ts src/channels/discord/adapter.test.ts src/channels/slack/adapter.test.ts src/channels/whatsapp/adapter.test.ts + pnpm typecheck passing"
}
},
"overall_progress": {
"total_test_count": 1770,
"total_test_count": 1773,
"all_tests_passing": true,
"p0_completion": "3/3 (100%)",
"p1_completion": "4/4 (100%)",