refactor(main): finish TASK-94 composition-root extraction

Move IPC, shortcuts, startup lifecycle, and app-ready assembly behind dedicated runtime composers so main.ts stays focused on boot wiring while preserving behavior and test coverage.
This commit is contained in:
2026-02-20 20:14:39 -08:00
parent 8ad8ff1671
commit 23b88bf20e
13 changed files with 1421 additions and 890 deletions

View File

@@ -30,3 +30,4 @@ Read first. Keep concise.
| `opencode-task95-immersion-tracker-20260221T031846Z-p4k9` | `opencode-task95-immersion-tracker` | `Implement TASK-95 immersion-tracker extraction into focused collaborators and seam tests` | `handoff` | `docs/subagents/agents/opencode-task95-immersion-tracker-20260221T031846Z-p4k9.md` | `2026-02-21T03:26:51Z` |
| `opencode-task95-config-20260221T031843Z-m4k9` | `opencode-task95-config` | `Implement TASK-95 config extraction for src/config/service.ts` | `done` | `docs/subagents/agents/opencode-task95-config-20260221T031843Z-m4k9.md` | `2026-02-21T03:26:57Z` |
| `codex-task95-anki-20260221T031836Z-6f3e` | `codex-task95-anki` | `Implement TASK-95 anki-integration extraction for field-grouping merge collaborator` | `done` | `docs/subagents/agents/codex-task95-anki-20260221T031836Z-6f3e.md` | `2026-02-21T03:26:55Z` |
| `opencode-task-94-20260221T033647Z-7ou2` | `opencode-task-94` | `Finish TASK-94 thin composition root refactor and close acceptance criteria` | `done` | `docs/subagents/agents/opencode-task-94-20260221T033647Z-7ou2.md` | `2026-02-21T04:12:45Z` |

View File

@@ -0,0 +1,48 @@
# Agent Session: opencode-task-94-20260221T033647Z-7ou2
- alias: `opencode-task-94`
- mission: `Finish TASK-94 thin composition root refactor and close acceptance criteria`
- status: `done`
- last_update_utc: `2026-02-21T04:12:45Z`
## Intent
- Pull TASK-94 context from Backlog MCP; verify remaining gap.
- Use writing-plans skill to produce execution plan.
- Use executing-plans skill to implement remaining extraction and verify gates.
## Planned Files
- `src/main.ts`
- `src/main/runtime/composers/*`
- `src/main/runtime/registry/*`
- `src/main/runtime/shared/*`
- `src/main/runtime/**/*.test.ts`
- `backlog/tasks/task-94 - Reduce-main.ts-to-thin-composition-root.md` (via MCP task edits only)
## Assumptions
- TASK-94 already has partial progress from prior slice.
- Remaining work targets acceptance criterion #1 only.
- No commit requested in this run.
## Activity Log
- `2026-02-21T03:36:58Z` session start; backlog/task context loaded; preparing planning skill.
- `2026-02-21T03:47:00Z` extracted IPC + shortcuts composition into dedicated composers; rewired `src/main.ts`; added composer tests.
- `2026-02-21T04:05:00Z` extracted startup-lifecycle + app-ready composition clusters into composer modules; rewired `src/main.ts` lifecycle/app-ready assembly.
- `2026-02-21T04:11:57Z` verification complete: `bun run build`, composer tests, `bun run check:main-fanin`, `bun run test:core:dist` all passing.
- `2026-02-21T04:12:45Z` TASK-94 updated via Backlog MCP: AC #1 checked, final summary captured, status set to Done.
## Touched Files
- `src/main.ts`
- `src/main/runtime/composers/ipc-runtime-composer.ts`
- `src/main/runtime/composers/ipc-runtime-composer.test.ts`
- `src/main/runtime/composers/shortcuts-runtime-composer.ts`
- `src/main/runtime/composers/shortcuts-runtime-composer.test.ts`
- `src/main/runtime/composers/startup-lifecycle-composer.ts`
- `src/main/runtime/composers/startup-lifecycle-composer.test.ts`
- `src/main/runtime/composers/app-ready-composer.ts`
- `src/main/runtime/composers/app-ready-composer.test.ts`
- `docs/plans/2026-02-21-task-94-thin-composition-root-finish.md`

View File

@@ -26,3 +26,6 @@ Shared notes. Append-only.
- [2026-02-21T03:18:46Z] [opencode-task95-immersion-tracker-20260221T031846Z-p4k9|opencode-task95-immersion-tracker] overlap note: implementing TASK-95 immersion-tracker slice in `src/core/services/immersion-tracker-service.ts` + new `src/core/services/immersion-tracker/*` + seam tests; avoiding backlog file edits.
- [2026-02-21T03:26:51Z] [opencode-task95-immersion-tracker-20260221T031846Z-p4k9|opencode-task95-immersion-tracker] completed immersion-tracker slice: extracted reducer/query/maintenance/queue/types collaborators, kept public API stable, added seam tests, and verified via `bun run build && node --test dist/core/services/immersion-tracker-service.test.js`.
- [2026-02-21T03:26:57Z] [opencode-task95-config-20260221T031843Z-m4k9|opencode-task95-config] completed config slice: extracted `load/parse/warnings/resolve` collaborators, reduced `src/config/service.ts` to facade, added loader precedence + strict non-mutation + warning determinism seam tests, build+config tests green.
- [2026-02-21T03:36:58Z] [opencode-task-94-20260221T033647Z-7ou2|opencode-task-94] starting TASK-94 finish pass: pull backlog context, write+execute plan via writing-plans/executing-plans, and close remaining AC without commit.
- [2026-02-21T04:11:57Z] [opencode-task-94-20260221T033647Z-7ou2|opencode-task-94] extracted IPC/shortcuts/startup-lifecycle/app-ready clusters behind composer modules, rewired `src/main.ts`, added focused composer tests, and revalidated build + `check:main-fanin` + `test:core:dist`.
- [2026-02-21T04:12:45Z] [opencode-task-94-20260221T033647Z-7ou2|opencode-task-94] TASK-94 finalized in Backlog MCP: AC checklist complete, notes+final summary recorded, status moved to Done.