diff options
| author | Adam Malczewski <[email protected]> | 2026-05-30 23:15:18 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-05-30 23:15:18 +0900 |
| commit | 4e636511ae748d606d8871f5068a2bd18b386bd0 (patch) | |
| tree | a5e0726d71d9d88d09d938ea2318a61e36ade68f /notes/changes-report.md | |
| parent | 624b808da0f2f8bbad8a4fbbcca3f82f24ecfc47 (diff) | |
| download | dispatch-4e636511ae748d606d8871f5068a2bd18b386bd0.tar.gz dispatch-4e636511ae748d606d8871f5068a2bd18b386bd0.zip | |
chore(notes): collect loose root docs into notes/; add reconcile edge-cases note
Move all loose root-level .md files (plans, reports, gemini reviews, incident
notes) into a single notes/ directory, and update the doc-reference breadcrumbs in
code comments/test labels to the notes/ path.
Add notes/queue-interrupt-reconcile-edge-cases.md: documents why the
queue/interrupt/turn-sealed reconcile path keeps surfacing edge cases (a catalog of
the four review-pass bugs, the no-loss/no-duplicate invariants, the recommended
membership-based reconcile refactor, and interleaving-test guidance).
Diffstat (limited to 'notes/changes-report.md')
| -rw-r--r-- | notes/changes-report.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/notes/changes-report.md b/notes/changes-report.md new file mode 100644 index 0000000..f30b611 --- /dev/null +++ b/notes/changes-report.md @@ -0,0 +1,54 @@ +# Changes Report + +## Overview +This report reviews the uncommitted changes in the `dispatch` repository. The changes can be broadly categorized into two parts: +1. **Codebase Updates**: The removal of the `todo` (task list) tool and a fix to a `summon` tool test. +2. **Documentation Additions**: Several new untracked markdown documents regarding planning and incident reports. + +## Per-File Analysis + +### Untracked Files +- **`claude-auth-report.md`** & **`tool-runner-duplication-incident.md`**: New post-mortem and incident investigation reports. +- **`cyberdeck/credentials.md`**: Documentation regarding credentials. +- **`skill-plan/` directory**: Multiple markdown files outlining a multi-step plan for building a new "skill" architecture (tool definitions, registration, routes, etc.). + +**Assessment**: Adding detailed markdown documents for incidents and project planning is a very good practice. They are cleanly separated from the application source code. + +### Modified Files (Staged & Unstaged) + +#### 1. `packages/core/src/tools/task-list.ts` +- **Change**: Removed the `createTaskListTool` function and the Zod/ToolDefinition imports. The `TaskList` class remains. +- **Correctness**: The removal of the factory is clean. + +#### 2. `packages/api/src/agent-manager.ts` +- **Change**: Removed `createTaskListTool` imports and invocations. Removed `todo` from the `TOOL_DESCRIPTIONS` and the lengthy `TODO_GUIDANCE` string from the agent's system prompt. +- **Correctness**: Consistently applies the removal of the `todo` tool. However, it still retains `tabAgent.taskList = new TaskList()`, which may now be dead state (see Issues section). + +#### 3. `packages/core/src/agents/loader.ts` & `packages/core/src/tools/summon.ts` +- **Change**: Removed `"todo"` from the default tool arrays and documentation comments for child agents. +- **Correctness**: Follows through with the removal of the `todo` tool across tool lists, ensuring child agents don't request a missing tool. + +#### 4. `packages/core/src/index.ts` +- **Change**: Updated exports to remove `createTaskListTool`, while keeping `TaskList`. +- **Correctness**: Correctly reflects the module changes. + +#### 5. Tests (`packages/api/tests/*.test.ts` & `packages/core/tests/agents/loader.test.ts`) +- **Change**: Removed mocked `createTaskListTool` injections and updated assertions that previously verified the automatic injection of the `todo` tool. +- **Correctness**: Properly aligns tests with the new implementation. Build/tests should pass cleanly. + +#### 6. `packages/core/tests/tools/summon.test.ts` +- **Change**: Updated the "surfaces child errors when blocking" test to correctly anticipate the `agent_id: <id>` prefix before the child output. Added an excellent explanatory comment about why this prefix exists (for frontend `ToolCallDisplay` regex parsing). +- **Correctness**: The change is highly robust. Explicitly asserting `.toContain()` before the final `.toBe()` provides great debugging signals if the test fails in the future. The comment is an excellent practice. + +## Correctness Assessment +The changes successfully and cleanly remove the `todo` tool logic from the backend tools and system prompt. The test fix for `summon.test.ts` is technically sound and well-documented. The changes are internally consistent from a backend tooling perspective. + +## Issues & Concerns Found +**Incomplete Refactoring (Dead Code)**: +While the `todo` tool was completely removed, the `TaskList` class itself and its instantiation in `AgentManager` (`tabAgent.taskList = new TaskList()`) were kept. Because the agent no longer has a tool to interact with this list, any tasks will remain empty. +Consequently, the UI component that relies on this (`TaskListPanel.svelte` in the `frontend` package) will now always render an empty state. This represents an incomplete feature removal/refactor. + +## Recommendations +1. **Clean Up `TaskList`**: If the todo feature is permanently removed, you should also delete the `TaskList` class from `packages/core`, remove the `taskList` property from `tabAgent` in `packages/api`, and delete `TaskListPanel.svelte` (along with its imports in `SidebarPanel.svelte`) from the frontend. +2. **Staging**: If the untracked markdown documents are ready, ensure they are intentionally added (`git add`) and committed. +3. **Commit the Changes**: The code removal of the `todo` tool is safe to commit. I recommend summarizing it as "refactor: remove todo tool from agent capabilities".
\ No newline at end of file |
