mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
docs(architecture): consolidate canonical docs and archive roadmap noise
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
---
|
||||
id: TASK-101
|
||||
title: Consolidate architecture docs and archive task noise
|
||||
status: To Do
|
||||
assignee: []
|
||||
status: Done
|
||||
assignee:
|
||||
- codex-task101-docs-archive
|
||||
created_date: '2026-02-21 07:15'
|
||||
updated_date: '2026-02-21 07:15'
|
||||
updated_date: '2026-02-22 03:01'
|
||||
labels:
|
||||
- documentation
|
||||
- maintainability
|
||||
@@ -37,16 +38,49 @@ Architecture guidance is fragmented across long-lived docs and task notes. Conso
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Runtime composition guidance exists in one canonical location.
|
||||
- [ ] #2 Duplicated/stale architecture notes removed from long-lived docs.
|
||||
- [ ] #3 Task evidence retained in backlog/archive, not lost.
|
||||
- [ ] #4 Docs build and links pass after consolidation.
|
||||
- [x] #1 Runtime composition guidance exists in one canonical location.
|
||||
- [x] #2 Duplicated/stale architecture notes removed from long-lived docs.
|
||||
- [x] #3 Task evidence retained in backlog/archive, not lost.
|
||||
- [x] #4 Docs build and links pass after consolidation.
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
<!-- SECTION:PLAN:BEGIN -->
|
||||
1) Canonicalize runtime architecture guidance in `docs/architecture.md` and remove task-ID provenance wording so architecture guidance remains timeless.
|
||||
2) Trim duplicated runtime architecture bullets from `docs/development.md` Contributor Notes and point contributors to `/architecture` as canonical guidance.
|
||||
3) Convert `docs/structure-roadmap.md` from a full task-history roadmap into a short archival note that points to canonical architecture docs and states historical detail is retained in backlog task records.
|
||||
4) Record a changelog of moved/removed sections in TASK-101 notes/final summary to preserve evidence that was removed from long-lived docs.
|
||||
5) Run `bun run docs:build` and finalize AC/DoD checks in Backlog once docs build/link validation passes.
|
||||
<!-- SECTION:PLAN:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Plan captured in docs/plans/2026-02-22-task-101-architecture-doc-consolidation.md before edits.
|
||||
|
||||
Initial removal/move inventory: (a) TASK-tagged provenance bullets in docs/architecture.md Why This Design, (b) duplicated runtime-composer/domain-ownership bullets in docs/development.md Contributor Notes, (c) TASK-27 split-sequence/migration-risk body in docs/structure-roadmap.md.
|
||||
|
||||
Doc consolidation changelog (pass 1):
|
||||
- docs/architecture.md: removed task-ID provenance bullets from `Why This Design` and replaced with timeless architecture wording.
|
||||
- docs/development.md: removed duplicated runtime-composer/domain-registry/MPV-split architecture bullets from `Contributor Notes`; added single canonical pointer to `/architecture`.
|
||||
- docs/structure-roadmap.md: replaced full TASK-27 roadmap/migration-risk/split-sequence body with archival notice that redirects to canonical architecture docs and backlog historical records.
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
||||
## Final Summary
|
||||
|
||||
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
||||
Consolidated runtime architecture guidance into canonical long-lived docs and removed task-history noise:
|
||||
- `docs/architecture.md`: removed task-ID provenance bullets from `Why This Design` and kept architecture rationale timeless.
|
||||
- `docs/development.md`: trimmed duplicated architecture implementation bullets in `Contributor Notes`; retained a direct canonical link to `/architecture`.
|
||||
- `docs/structure-roadmap.md`: replaced full TASK-27 roadmap body with archival notice pointing to canonical architecture guidance.
|
||||
|
||||
Task-noise evidence is preserved in Backlog records (TASK-101 implementation notes/final summary plus existing backlog archive/task history) rather than long-lived docs. Verification: `bun run docs:build` passed (VitePress build complete, no link errors).
|
||||
<!-- SECTION:FINAL_SUMMARY:END -->
|
||||
|
||||
## Definition of Done
|
||||
<!-- DOD:BEGIN -->
|
||||
- [ ] #1 Change log of moved/removed doc sections included in task notes.
|
||||
- [ ] #2 `bun run docs:build` passes.
|
||||
- [ ] #3 Contributor-facing entry points link to canonical architecture section.
|
||||
- [x] #1 Change log of moved/removed doc sections included in task notes.
|
||||
- [x] #2 `bun run docs:build` passes.
|
||||
- [x] #3 Contributor-facing entry points link to canonical architecture section.
|
||||
<!-- DOD:END -->
|
||||
|
||||
|
||||
@@ -251,8 +251,8 @@ flowchart TD
|
||||
- **Better testability:** most behavior can be tested without Electron windows/mpv.
|
||||
- **Better reviewability:** PRs can be scoped to one subsystem.
|
||||
- **Backward compatibility:** CLI flags and IPC channels can remain stable while internals evolve.
|
||||
- **Extracted composition root:** TASK-27 refactored `main.ts` into focused modules under `src/main/`, isolating startup, lifecycle, IPC, CLI, and domain-specific runtime wiring.
|
||||
- **Split MPV service:** TASK-27.4 separated `mpv.ts` into transport (`mpv-transport.ts`), protocol (`mpv-protocol.ts`), state (`mpv-state.ts`), and properties (`mpv-properties.ts`) layers for improved maintainability.
|
||||
- **Extracted composition root:** `main.ts` delegates to focused modules under `src/main/` for startup, lifecycle, IPC, CLI, and domain runtime wiring.
|
||||
- **Split MPV service layers:** MPV internals are separated into transport (`mpv-transport.ts`), protocol (`mpv-protocol.ts`), state (`mpv-state.ts`), and properties (`mpv-properties.ts`) for maintainability.
|
||||
|
||||
## Extension Rules
|
||||
|
||||
|
||||
@@ -83,6 +83,40 @@ bun run test:core:dist # optional full dist core suite
|
||||
bun run test:subtitle:dist # subtitle dist lane (currently placeholder)
|
||||
```
|
||||
|
||||
## Maintainability Guardrails
|
||||
|
||||
Run guardrails locally before opening a PR:
|
||||
|
||||
```bash
|
||||
bun run check:file-budgets:strict
|
||||
bun run check:main-fanin:strict
|
||||
bun run check:runtime-cycles:strict
|
||||
```
|
||||
|
||||
Expected success output includes:
|
||||
|
||||
- `[OK] hotspot budget check (strict) — no hotspots over limit`
|
||||
- `[OK] main runtime fan-in (strict) — ...`
|
||||
- `[OK] runtime cycle check (strict) - ... no cycles detected`
|
||||
|
||||
Hotspot budget baselines (2026-02-22):
|
||||
|
||||
| File | Baseline LOC | Limit LOC |
|
||||
| ----------------------------------------- | ------------ | --------- |
|
||||
| `src/main.ts` | 2978 | 3150 |
|
||||
| `src/config/service.ts` | 116 | 140 |
|
||||
| `src/core/services/tokenizer.ts` | 232 | 260 |
|
||||
| `launcher/main.ts` | 101 | 130 |
|
||||
| `src/config/resolve.ts` | 33 | 55 |
|
||||
| `src/main/runtime/composers/contracts.ts` | 13 | 30 |
|
||||
|
||||
Troubleshooting guardrail failures:
|
||||
|
||||
- File budget hotspot failure: split logic by runtime/domain boundaries and keep orchestration facades thin.
|
||||
- Main fan-in failure: move runtime imports behind `src/main/runtime/domains/*` or composer barrels.
|
||||
- Runtime cycle failure: break bidirectional imports by extracting shared helpers into leaf modules.
|
||||
- Optional broad-budget audit (legacy/global): run `bun run scripts/check-file-budgets.ts --strict --enforce-global`.
|
||||
|
||||
## Config Generation
|
||||
|
||||
```bash
|
||||
@@ -124,11 +158,8 @@ Run `make help` for a full list of targets. Key ones:
|
||||
- To add/change generated config template blocks/comments, update `src/config/definitions/template-sections.ts`.
|
||||
- Keep `src/config/definitions.ts` as the composed public API (`DEFAULT_CONFIG`, registries, template export) that wires domain modules together.
|
||||
- Overlay window/visibility state is owned by `src/core/services/overlay-manager.ts`.
|
||||
- Main process composition is split across `src/main/` modules plus focused runtime composers under `src/main/runtime/composers/*` (for example AniList tracking and MPV runtime assembly clusters).
|
||||
- Runtime composer contracts should use shared helpers in `src/main/runtime/composers/contracts.ts` (`ComposerInputs`, `ComposerOutputs`, and `BuiltMainDeps`) so required deps remain compile-time enforced.
|
||||
- Runtime domain imports for `src/main.ts` should route through `src/main/runtime/domains/*`; shared domain access point is `src/main/runtime/registry.ts`.
|
||||
- Runtime architecture/module-boundary conventions are documented in [Architecture](/architecture); keep contributor changes aligned with that canonical guide.
|
||||
- Linux packaged desktop launches pass `--background` using electron-builder `build.linux.executableArgs` in `package.json`.
|
||||
- MPV service has been split into transport, protocol, state, and properties layers in `src/core/services/`.
|
||||
- Prefer direct inline deps objects in `src/main/` modules for simple pass-through wiring.
|
||||
- Add a helper/adapter service only when it performs meaningful adaptation, validation, or reuse (not identity mapping).
|
||||
- See [Architecture](/architecture) for the composition model and extension rules.
|
||||
|
||||
@@ -1,153 +1,7 @@
|
||||
# Structure Roadmap for TASK-27
|
||||
# Structure Roadmap (Archived)
|
||||
|
||||
Date: 2026-02-14
|
||||
This page previously contained TASK-27 migration planning details.
|
||||
|
||||
## 1) Oversized refactor candidates (>=400 LOC)
|
||||
|
||||
| File | Concern | Status | Reason |
|
||||
| ------------------------------ | ------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| `src/main.ts` | Bootstrap / composition root / orchestration | Active | Main entrypoint owns startup, lifecycle orchestration, service construction, state mutation surfaces, and IPC bindings |
|
||||
| `src/anki-integration.ts` | Domain service orchestration / integrations | Active | 2.6k+ LOC, high cyclomatic coupling to mpv/subtitle timing and mining flows |
|
||||
| `src/core/services/mpv.ts` | MPV protocol + app state bridge | Active | ~780 LOC, large protocol and behavior mix, 22-entry dep interface |
|
||||
| `src/core/services/subsync.ts` | Subsync orchestration (ffsubsync/alass workflows) | Active | ~494 LOC, file IO + mpv command orchestration + result shaping |
|
||||
| `src/renderer/positioning.ts` | Renderer positioning layout policy | Active (downstream of TASK-27.5) | 513 LOC, layout/rules + platform-specific behavior in one module |
|
||||
| `src/config/service.ts` | Config load/validation | Active support | ~601 LOC, central schema validation + mutation APIs |
|
||||
| `src/types.ts` | Shared contract surface | Active support | ~640 LOC, foundational type exports driving module boundaries |
|
||||
| `src/config/definitions.ts` | Config schema/registry definitions | Active support | ~480 LOC, dense constants/interfaces used by config runtime and docs |
|
||||
| `src/media-generator.ts` | Media generation helpers | Active support | ~431 LOC, utility-heavy with multiple generation flows |
|
||||
|
||||
## 2) API contracts by target file
|
||||
|
||||
### `src/main.ts` (bootstrap + composition root)
|
||||
|
||||
- **Entry points**: Electron main process boot path (executed by package `main` entry).
|
||||
- **Contract responsibilities**:
|
||||
- parse CLI/env and select startup flow through `runStartupBootstrapRuntimeService`
|
||||
- register app-level lifecycle and command handlers (`runAppLifecycleService`, `handleCliCommandService`)
|
||||
- instantiate core services (mpv, overlay runtime, IPC handlers, shortcuts, tokenizer, config services)
|
||||
- hold mutable application runtime state:
|
||||
- parser/Yomitan windows and extension state
|
||||
- mpv client and tracker/state
|
||||
- overlay/app bootstrap flags and modal/shortcut state
|
||||
- runtime option and anki integration containers
|
||||
- **Primary callers/integration points**:
|
||||
- Electron event loop (`app.whenReady`, `process` signals)
|
||||
- startup/bootstrap services, service adapters in `src/core/services`
|
||||
|
||||
### `src/core/services/mpv.ts` (protocol + facade)
|
||||
|
||||
- **Core exports**: `MpvIpcClient`, `MPV_REQUEST_ID_SECONDARY_SUB_VISIBILITY`, `MpvIpcClientDeps`
|
||||
- **Primary responsibilities / API**:
|
||||
- connection management (`connect`, `setSocketPath`, `request`, `send`, `requestProperty`)
|
||||
- protocol message handling (`processBuffer`, private message handlers for `property-change` and request IDs)
|
||||
- reconnection lifecycle (`scheduleReconnect`, `failPendingRequests`)
|
||||
- mpv control actions (`setSubVisibility`, `replayCurrentSubtitle`, `playNextSubtitle`)
|
||||
- state restoration (`restorePreviousSecondarySubVisibility`)
|
||||
- **Current caller set**:
|
||||
- `src/main.ts` (construction + lifecycle + service invocations)
|
||||
- `src/main/ipc-mpv-command.ts` (runtime control API)
|
||||
- `src/core/services/subsync.ts` (`requestProperty`, request ID usage)
|
||||
- tests under `src/core/services/mpv.test.ts`
|
||||
- **Observed coupling risk**:
|
||||
- `MpvIpcClientDeps` mixes protocol config with app-level side effects (subtitle broadcast, tokenizer, overlay updates, config reads)
|
||||
|
||||
### `src/anki-integration.ts`
|
||||
|
||||
- **Class export**: `AnkiIntegration`
|
||||
- **Primary public operations (validated from external callsites)**:
|
||||
- lifecycle: `start`, `stop`, `destroy`
|
||||
- card flow: `createSentenceCard`, `updateLastAddedFromClipboard`, `triggerFieldGroupingForLastAddedCard`, `markLastCardAsAudioCard`
|
||||
- runtime patching: `applyRuntimeConfigPatch`
|
||||
- **State dependencies (constructor)**:
|
||||
- config, subtitle timing tracker, mpv client, OSD/notification callbacks
|
||||
- **Primary callers**:
|
||||
- `src/core/services/overlay-runtime-init.ts` (initial integration creation)
|
||||
- `src/core/services/anki-jimaku.ts` (enable/disable and field-grouping RPC)
|
||||
- `src/core/services/mining.ts` (delegates mining actions)
|
||||
|
||||
### `src/core/services/subsync.ts`
|
||||
|
||||
- **Exports**: `runSubsyncManualService`, `openSubsyncManualPickerService`, `triggerSubsyncFromConfigService`
|
||||
- **Caller set**:
|
||||
- `src/core/services/subsync-runner.ts` (runtime wrappers)
|
||||
- `src/core/services/mpv-jimaku/`? (through runtime services and IPC command handlers)
|
||||
|
||||
### `src/config/service.ts`
|
||||
|
||||
- **Class export**: `ConfigService`
|
||||
- **Primary API**:
|
||||
- `reloadConfig`, `saveRawConfig`, `patchRawConfig`
|
||||
- read methods: `getConfig`, `getRawConfig`, `getWarnings`, `getConfigPath`
|
||||
- **Primary callers**:
|
||||
- `src/main.ts`, `src/core/services/cli-command` and runtime config consumers
|
||||
|
||||
### `src/renderer/positioning.ts`
|
||||
|
||||
- **Public style/runtime contract**
|
||||
- exported calculation helpers for subtitle Y-position and inset offsets
|
||||
- event handlers for window geometry and subtitle-size changes
|
||||
- **Primary callers**:
|
||||
- `src/renderer/handlers/*`
|
||||
- `src/renderer/subtitle-render.ts`
|
||||
|
||||
## 3) Split sequence / dependency ordering
|
||||
|
||||
Adopted sequence (from TASK-27 parent):
|
||||
|
||||
1. `TASK-27.3` (Anki integration split)
|
||||
2. `TASK-27.2` (main.ts composition-root split) — depends on TASK-7 and TASK-27.3
|
||||
3. `TASK-27.4` (mpv-service protocol/transport/property/facade split) — depends on TASK-27.1 and absorbs TASK-8
|
||||
4. `TASK-27.5` (renderer positioning split) — downstream
|
||||
|
||||
## 4) Compatibility and migration risks per split
|
||||
|
||||
### TASK-27.3 / anki integration surface
|
||||
|
||||
- Risk: interface breakage in field-grouping preview/build/enable flow
|
||||
- Mitigation: keep constructor params and public methods stable; preserve IPC payload shapes
|
||||
|
||||
### TASK-27.2 (composition root)
|
||||
|
||||
- Risk: lifecycle/cleanup regressions from moving startup hooks and shutdown behavior
|
||||
- Mitigation: preserve service construction order and keep existing event registration boundaries
|
||||
|
||||
Migration note:
|
||||
|
||||
- `src/main.ts` now delegates composition edges to `src/main/startup.ts`, `src/main/app-lifecycle.ts`, `src/main/startup-lifecycle.ts`, `src/main/ipc-runtime.ts`, `src/main/cli-runtime.ts`, and `src/main/subsync-runtime.ts`.
|
||||
- Overlay/modal interaction has been moved into `src/main/overlay-runtime.ts` (window selection, modal restore set tracking, runtime-options palette/modal close handling) so `main.ts` now uses a dedicated runtime service for modal routing instead of inline window bookkeeping.
|
||||
- Stateful runtime session data has moved to `src/main/state.ts` via `createAppState()` so `main.ts` no longer owns the `AppState` shape inline, only importing and mutating the shared state instance.
|
||||
- Behavioral contract remains stable: startup flow, CLI dispatch, IPC handlers, and subsync orchestration keep existing external behavior; only dependency wiring moved out of `main.ts`.
|
||||
|
||||
### TASK-27.4 (mpv-service)
|
||||
|
||||
- Risk: request/deps interface changes could break control and subsync interactions
|
||||
- Mitigation: preserve public `MpvClient` methods, request semantics, and reconnect events while splitting internal modules
|
||||
|
||||
### TASK-27.4 expected event flow snapshot (current)
|
||||
|
||||
- `connect()` establishes socket and starts `observe_property` subscriptions via `subscribeToProperties()`.
|
||||
- `processBuffer()` uses `splitMpvMessagesFromBuffer()` to parse JSON lines and route each message to `handleMessage()`.
|
||||
- `dispatchMpvProtocolMessage()` now owns protocol-level handling for:
|
||||
- `event === "property-change"` updates (subtitle text/ASS/timing, media/path/title, track metrics, secondary subtitles, visibility restore flags)
|
||||
- `request_id` responses for startup state fetches and dynamic property queries
|
||||
- shutdown handling and pending request resolution
|
||||
- `handleMessage()` now delegates state mutation and side effects through `MpvProtocolHandleMessageDeps` to the client facade (`emit(...)`, state fields, `sendCommand`, etc.).
|
||||
- Reconnect path stays behavior-critical:
|
||||
- socket close/error clears pending requests and calls `scheduleReconnect()`
|
||||
- timer callback calls `connect()` after exponential-ish delay
|
||||
|
||||
### TASK-27.5 (renderer positioning)
|
||||
|
||||
- Risk: UI placement drift on platform edge cases
|
||||
- Mitigation: keep existing DOM state updates and geometry math in place while refactoring module boundaries
|
||||
|
||||
## 5) Global smoke checklist (required for all TASK-27 subtasks)
|
||||
|
||||
- App starts and connects to MPV
|
||||
- Subtitle text appears in overlay
|
||||
- Card mining creates a note in Anki
|
||||
- Field grouping modal opens and resolves
|
||||
- Global shortcuts work (mine, toggle overlay, copy subtitle)
|
||||
- Secondary subtitle display works
|
||||
- TypeScript compiles with no new errors
|
||||
- Manual smoke checklist executed for runtime behavior
|
||||
- Canonical runtime architecture guidance now lives in `docs/architecture.md`.
|
||||
- Contributor-facing implementation expectations are in `docs/development.md` and link back to `docs/architecture.md`.
|
||||
- Historical task-level migration context is preserved in Backlog task records and archive folders.
|
||||
|
||||
@@ -57,4 +57,9 @@ Read first. Keep concise.
|
||||
| `opencode-task80-ipc-contract-20260222T001728Z-obrv` | `opencode-task80-ipc-contract` | `Execute TASK-80 IPC contract typing + runtime payload validation end-to-end without commit` | `done` | `docs/subagents/agents/opencode-task80-ipc-contract-20260222T001728Z-obrv.md` | `2026-02-22T00:56:00Z` |
|
||||
| `opencode-task82-smoke-20260222T002150Z-p5bp` | `opencode-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `done` | `docs/subagents/agents/opencode-task82-smoke-20260222T002150Z-p5bp.md` | `2026-02-22T00:54:29Z` |
|
||||
| `codex-task82-smoke-20260222T002523Z-3j7u` | `codex-task82-smoke` | `Execute TASK-82 e2e smoke suite for launcher/mpv/ipc/overlay end-to-end without commit` | `done` | `docs/subagents/agents/codex-task82-smoke-20260222T002523Z-3j7u.md` | `2026-02-22T00:53:25Z` |
|
||||
| `opencode-task81-launcher-modules-20260222T005725Z-8oh8` | `opencode-task81-launcher-modules` | `Execute TASK-81 launcher command-module/process-adapter refactor end-to-end without commit` | `in_progress` | `docs/subagents/agents/opencode-task81-launcher-modules-20260222T005725Z-8oh8.md` | `2026-02-22T00:57:25Z` |
|
||||
| `opencode-task81-launcher-modules-20260222T005725Z-8oh8` | `opencode-task81-launcher-modules` | `Execute TASK-81 launcher command-module/process-adapter refactor end-to-end without commit` | `done` | `docs/subagents/agents/opencode-task81-launcher-modules-20260222T005725Z-8oh8.md` | `2026-02-22T01:09:30Z` |
|
||||
| `codex-task99-guardrails-20260222T010930Z-m9q2` | `codex-task99-guardrails` | `Execute TASK-99 maintainability guardrail expansion and runtime cycle checks end-to-end without commit` | `done` | `docs/subagents/agents/codex-task99-guardrails-20260222T010930Z-m9q2.md` | `2026-02-22T03:01:34Z` |
|
||||
| `opencode-task84-keybindings-gating-20260222T011624Z-llor` | `opencode-task84-keybindings-gating` | `Execute TASK-84 gate feature-dependent keybindings behind config flags end-to-end without commit` | `done` | `docs/subagents/agents/opencode-task84-keybindings-gating-20260222T011624Z-llor.md` | `2026-02-22T01:35:30Z` |
|
||||
| `codex-task98-source-tests-20260222T021156Z-a1b2` | `codex-task98-source-tests` | `Execute TASK-98 shift core tests to source level and trim dist coupling end-to-end without commit` | `done` | `docs/subagents/agents/codex-task98-source-tests-20260222T021156Z-a1b2.md` | `2026-02-22T02:36:00Z` |
|
||||
| `codex-task101-docs-archive-20260222T024156Z-hneu` | `codex-task101-docs-archive` | `Execute TASK-101 consolidate architecture docs and archive task-noise evidence` | `done` | `docs/subagents/agents/codex-task101-docs-archive-20260222T024156Z-hneu.md` | `2026-02-22T03:01:38Z` |
|
||||
| `codex-fix-ci-20260222T025848Z-0xdl` | `codex-fix-ci` | `Inspect failing GitHub Actions PR checks and implement approved fix` | `in_progress` | `docs/subagents/agents/codex-fix-ci-20260222T025848Z-0xdl.md` | `2026-02-22T02:58:55Z` |
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# Agent: codex-task101-docs-archive-20260222T024156Z-hneu
|
||||
|
||||
- alias: codex-task101-docs-archive
|
||||
- mission: Execute TASK-101 consolidate architecture docs and archive task-noise evidence
|
||||
- status: done
|
||||
- branch: main
|
||||
- started_at: 2026-02-22T02:41:56Z
|
||||
- heartbeat_minutes: 5
|
||||
|
||||
## Current Work (newest first)
|
||||
|
||||
- [2026-02-22T03:01:38Z] handoff: TASK-101 done; backlog AC/DoD checked and status set Done; docs build verified.
|
||||
- [2026-02-22T03:01:38Z] change: updated `docs/architecture.md` to remove task-number provenance wording from long-lived architecture rationale.
|
||||
- [2026-02-22T03:01:38Z] change: trimmed duplicated architecture guidance in `docs/development.md` Contributor Notes and kept canonical `/architecture` pointer.
|
||||
- [2026-02-22T03:01:38Z] change: replaced `docs/structure-roadmap.md` body with archival notice + canonical architecture pointer.
|
||||
- [2026-02-22T03:01:38Z] test: `bun run docs:build` pass.
|
||||
- [2026-02-22T02:41:56Z] intent: load TASK-101 full context from Backlog MCP; write execution plan via writing-plans skill; execute via executing-plans skill with parallel subagents where possible.
|
||||
- [2026-02-22T02:41:56Z] planned files: `docs/architecture.md`, `docs/development.md`, `docs/subagents/collaboration.md`, `docs/subagents/INDEX.md`, `docs/subagents/agents/codex-task101-docs-archive-20260222T024156Z-hneu.md`, backlog TASK-101 notes via MCP.
|
||||
- [2026-02-22T02:41:56Z] assumptions: canonical architecture source likely `docs/architecture.md`; task-noise migration should preserve evidence in `backlog/archive` and task notes instead of deleting historical context.
|
||||
|
||||
## Files Touched
|
||||
|
||||
- `docs/subagents/INDEX.md`
|
||||
- `docs/subagents/agents/codex-task101-docs-archive-20260222T024156Z-hneu.md`
|
||||
- `docs/plans/2026-02-22-task-101-architecture-doc-consolidation.md`
|
||||
- `docs/architecture.md`
|
||||
- `docs/development.md`
|
||||
- `docs/structure-roadmap.md`
|
||||
- `docs/subagents/collaboration.md`
|
||||
- Backlog task `TASK-101` (MCP updates only)
|
||||
|
||||
## Assumptions
|
||||
|
||||
- Backlog is initialized and TASK-101 exists with actionable acceptance criteria.
|
||||
|
||||
## Open Questions / Blockers
|
||||
|
||||
- none
|
||||
|
||||
## Next Step
|
||||
|
||||
- Await next assigned task.
|
||||
@@ -78,3 +78,12 @@ Shared notes. Append-only.
|
||||
- [2026-02-22T00:54:29Z] [opencode-task82-smoke-20260222T002150Z-p5bp|opencode-task82-smoke] completed TASK-82 implementation pass: launcher smoke e2e stabilized (`launcher/smoke.e2e.test.ts`), CI/release smoke + artifact upload wired, docs updated (`docs/development.md`, `docs/installation.md`), and verification lanes green (`test:launcher:smoke:src`, `test:launcher`, `test:fast`, `build`, `test:smoke:dist`, `docs:build`).
|
||||
- [2026-02-22T00:53:25Z] [codex-task82-smoke-20260222T002523Z-3j7u|codex-task82-smoke] completed TASK-82: added `launcher/smoke.e2e.test.ts`, wired `test:launcher:smoke:src` + CI/release smoke gates with `.tmp/launcher-smoke` failure artifact upload, docs updated (`docs/development.md`, `docs/installation.md`), launcher/fast/docs lanes green; `build + test:smoke:dist` still blocked by unrelated TASK-80 IPC typing errors.
|
||||
- [2026-02-22T00:57:25Z] [opencode-task81-launcher-modules-20260222T005725Z-8oh8|opencode-task81-launcher-modules] starting TASK-81 via Backlog MCP + writing-plans/executing-plans; expected scope `launcher/main.ts` command extraction, process adapters, and launcher tests while preserving CLI behavior/exit codes.
|
||||
- [2026-02-22T01:09:30Z] [opencode-task81-launcher-modules-20260222T005725Z-8oh8|opencode-task81-launcher-modules] completed TASK-81 implementation pass: extracted launcher command handlers under `launcher/commands/*`, added `launcher/process-adapter.ts` seam + thin `launcher/main.ts` dispatcher, added adapter-mocked command tests (`launcher/commands/command-modules.test.ts`), and validated `bun run test:launcher && bun run test:core:src` green.
|
||||
- [2026-02-22T01:09:30Z] [codex-task99-guardrails-20260222T010930Z-m9q2|codex-task99-guardrails] starting TASK-99 via Backlog MCP + writing-plans/executing-plans; scope expected around guardrail budgets, runtime cycle-check fixture coverage, CI fail-fast wiring, and contributor docs.
|
||||
- [2026-02-22T03:01:34Z] [codex-task99-guardrails-20260222T010930Z-m9q2|codex-task99-guardrails] completed TASK-99 implementation pass: added hotspot budget thresholds + baseline reporting in `scripts/check-file-budgets.ts`, added runtime cycle checker + fixture-backed tests (`scripts/check-runtime-cycles*.ts`), wired CI fail-fast guardrail step, updated contributor docs with guardrail commands/baselines, and verified guardrail/docs/test lanes green.
|
||||
- [2026-02-22T01:16:24Z] [opencode-task84-keybindings-gating-20260222T011624Z-llor|opencode-task84-keybindings-gating] starting TASK-84 via Backlog MCP + writing-plans/executing-plans; expected scope keybinding feature-flag gating, disabled-integration startup guards (Jellyfin case), tests, and docs.
|
||||
- [2026-02-22T01:35:30Z] [opencode-task84-keybindings-gating-20260222T011624Z-llor|opencode-task84-keybindings-gating] completed TASK-84: gated Anki-dependent shortcuts in `src/core/utils/shortcut-config.ts`, added Jellyfin `enabled` startup guards in `src/main.ts` + `jellyfin-remote-session-lifecycle.ts`, added focused tests (`shortcut-config`, jellyfin lifecycle, warmups), updated config docs, and validated focused tests + `test:core:src` + `docs:build`.
|
||||
- [2026-02-22T02:11:56Z] [codex-task98-source-tests-20260222T021156Z-a1b2|codex-task98-source-tests] starting TASK-98 closure pass via Backlog MCP + writing-plans/executing-plans; validating remaining DoD evidence and finalization status, no commit.
|
||||
- [2026-02-22T02:36:00Z] [codex-task98-source-tests-20260222T021156Z-a1b2|codex-task98-source-tests] completed TASK-98 closure: validated `test:fast` + `build` + `test:smoke:dist` all pass on current HEAD, captured timing repro (`2.18s` source lane, `0.21s` dist smoke), confirmed script/workflow/docs split unchanged, and finalized Backlog task to Done.
|
||||
- [2026-02-22T02:41:56Z] [codex-task101-docs-archive-20260222T024156Z-hneu|codex-task101-docs-archive] starting TASK-101 via Backlog MCP + writing-plans/executing-plans; scope architecture docs consolidation, stale-note cleanup, archive evidence retention, and docs link/build verification.
|
||||
- [2026-02-22T03:01:38Z] [codex-task101-docs-archive-20260222T024156Z-hneu|codex-task101-docs-archive] completed TASK-101: canonicalized runtime architecture wording in `docs/architecture.md`, trimmed duplicated architecture bullets in `docs/development.md`, converted `docs/structure-roadmap.md` to archival notice, `bun run docs:build` passed, and backlog TASK-101 finalized Done with AC/DoD evidence.
|
||||
|
||||
Reference in New Issue
Block a user