chore(backlog): capture task planning and subagent handoffs

This commit is contained in:
2026-02-21 16:29:13 -08:00
parent ebec472daf
commit 16b8d80498
16 changed files with 479 additions and 38 deletions

View File

@@ -1,10 +1,11 @@
---
id: TASK-80
title: Strengthen IPC contract typing and runtime payload validation
status: To Do
assignee: []
status: In Progress
assignee:
- opencode-task80-ipc-contract
created_date: '2026-02-18 11:43'
updated_date: '2026-02-18 11:43'
updated_date: '2026-02-22 00:21'
labels:
- ipc
- type-safety
@@ -46,9 +47,28 @@ IPC handlers still rely on many `unknown` payload casts in main process paths. T
- [ ] #4 Malformed payloads are handled gracefully and test-covered
<!-- AC:END -->
## Implementation Plan
<!-- SECTION:PLAN:BEGIN -->
Plan of record (2026-02-22):
1) Add central typed IPC contract module at `src/shared/ipc/contracts.ts` and migrate `src/core/services/ipc.ts`, `src/core/services/anki-jimaku-ipc.ts`, and `src/preload.ts` from string literals to contract constants/types.
2) Add runtime IPC payload validators at `src/shared/ipc/validators.ts` for externally supplied payloads (runtime option id/direction/value boundary, subsync request shape, overlay modal, subtitle position, and kiku/jimaku payloads where renderer-supplied).
3) Wire validators at IPC boundaries so malformed payloads are handled gracefully (return structured `{ ok: false, error }` for invoke handlers or no-op/log for fire-and-forget channels) and avoid unsafe `as` casts in boundary code.
4) Reduce unsafe casts in runtime IPC wiring (`src/main/dependencies.ts`, `src/main.ts`, IPC composer generics) by narrowing types before domain calls.
5) Add/extend IPC tests for malformed payload behavior (`src/core/services/ipc.test.ts`, `src/core/services/anki-jimaku-ipc.test.ts`), then run `bun run build`, `bun run test:core:src`, and `bun run test:core:dist`.
6) Update `docs/architecture.md` with central IPC contract and boundary-validation conventions; then finalize TASK-80 AC/DoD evidence in Backlog MCP.
<!-- SECTION:PLAN:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
2026-02-22: Started execution session opencode-task80-ipc-contract-20260222T001728Z-obrv. Loading IPC boundary code and preparing implementation plan via writing-plans before any code edits.
Saved plan document: docs/plans/2026-02-22-task-80-ipc-contract-validation.md. Proceeding with executing-plans implementation flow as requested.
<!-- SECTION:NOTES:END -->
## Definition of Done
<!-- DOD:BEGIN -->
- [ ] #1 IPC-related tests pass
- [ ] #2 IPC contract docs updated
<!-- DOD:END -->

View File

@@ -1,10 +1,11 @@
---
id: TASK-82
title: Add end-to-end smoke suite for launcher mpv ipc and overlay runtime
status: To Do
assignee: []
status: In Progress
assignee:
- codex-task82-smoke-20260222T002523Z-3j7u
created_date: '2026-02-18 11:43'
updated_date: '2026-02-18 11:43'
updated_date: '2026-02-22 00:27'
labels:
- testing
- e2e
@@ -52,9 +53,51 @@ Current coverage is strong at unit/service level but thin on end-to-end behavior
- [ ] #4 Smoke suite documented in development/release docs
<!-- AC:END -->
## Implementation Plan
<!-- SECTION:PLAN:BEGIN -->
Plan-of-record (2026-02-22, codex-task82-smoke-20260222T002523Z-3j7u)
Goal
- Add deterministic e2e smoke coverage for launcher -> mpv IPC socket -> app overlay start/stop runtime wiring.
- Run suite in CI + release quality gates with actionable failure artifacts.
- Document command, coverage, and release-checklist linkage.
Execution slices (parallel where safe)
1) Launcher smoke harness (core implementation)
- Create launcher/smoke.e2e.test.ts with fake mpv + fake app fixtures in temp dir.
- Validate startup path, socket readiness, app --start args/env, and post-run --stop behavior.
- Emit actionable artifact logs under .tmp/launcher-smoke/<run-id>.
2) Script + workflow wiring (can run in parallel after command exists)
- package.json: add test:launcher:smoke:src and include in launcher lane.
- .github/workflows/ci.yml: run launcher smoke suite and upload smoke artifacts on failure.
- .github/workflows/release.yml: mirror quality-gate step and failure artifact upload.
3) Docs wiring (parallel with workflows)
- docs/development.md: command usage + what it validates + artifact path.
- docs/installation.md: release/checklist reference to launcher smoke gate.
4) Validation + closure
- Run focused lane: bun run test:launcher:smoke:src and bun run test:launcher.
- Run integration lane: bun run test:fast.
- Run dist confidence lane: bun run build && bun run test:smoke:dist (or record unrelated blockers).
- Update TASK-82 AC/DoD checks with exact evidence and final summary.
Scope guardrails
- No commit/push in this run.
- Keep smoke suite dependency-free (local fakes only).
- If new required scope appears, pause and request user scope decision before expanding AC.
<!-- SECTION:PLAN:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
2026-02-22: Started execution with opencode-task82-smoke-20260222T002150Z-p5bp via writing-plans -> executing-plans workflow.
<!-- SECTION:NOTES:END -->
## Definition of Done
<!-- DOD:BEGIN -->
- [ ] #1 Smoke suite passes on baseline branch
- [ ] #2 Release checklist references smoke suite
<!-- DOD:END -->