chore(task-85): update launcher workflow and backlog tracking

This commit is contained in:
2026-02-20 03:51:38 -08:00
parent 06892b4838
commit 28d2da1e64
15 changed files with 373 additions and 12 deletions

View File

@@ -23,4 +23,5 @@ Read first. Keep concise.
| `codex-jellyfin-secret-store-20260220T101428Z-om4z` | `codex-jellyfin-secret-store` | `Verify whether Jellyfin token can use same secret-store path as AniList token` | `completed` | `docs/subagents/agents/codex-jellyfin-secret-store-20260220T101428Z-om4z.md` | `2026-02-20T10:22:45Z` |
| `codex-vitepress-subagents-ignore-20260220T101755Z-k2m9` | `codex-vitepress-subagents-ignore` | `Exclude docs/subagents from VitePress build` | `completed` | `docs/subagents/agents/codex-vitepress-subagents-ignore-20260220T101755Z-k2m9.md` | `2026-02-20T10:18:30Z` |
| `codex-preserve-linebreak-display-20260220T110436Z-r8f1` | `codex-preserve-linebreak-display` | `Fix visible overlay display artifact when subtitleStyle.preserveLineBreaks is disabled` | `completed` | `docs/subagents/agents/codex-preserve-linebreak-display-20260220T110436Z-r8f1.md` | `2026-02-20T11:10:51Z` |
| `codex-review-refactor-cleanup-20260220T113818Z-i2ov` | `codex-review-refactor-cleanup` | `Review recent TASK-85 refactor effort and identify remaining cleanup work` | `handoff` | `docs/subagents/agents/codex-review-refactor-cleanup-20260220T113818Z-i2ov.md` | `2026-02-20T11:40:15Z` |
| `codex-review-refactor-cleanup-20260220T113818Z-i2ov` | `codex-review-refactor-cleanup` | `Review recent TASK-85 refactor effort and identify remaining cleanup work` | `handoff` | `docs/subagents/agents/codex-review-refactor-cleanup-20260220T113818Z-i2ov.md` | `2026-02-20T11:48:28Z` |
| `codex-commit-unstaged-20260220T115057Z-k7q2` | `codex-commit-unstaged` | `Commit all current unstaged repository changes with content-derived conventional message` | `in_progress` | `docs/subagents/agents/codex-commit-unstaged-20260220T115057Z-k7q2.md` | `2026-02-20T11:51:18Z` |

View File

@@ -0,0 +1,26 @@
# Agent: `codex-commit-unstaged-20260220T115057Z-k7q2`
- alias: `codex-commit-unstaged`
- mission: `Commit all current unstaged repository changes with content-derived conventional message`
- status: `editing`
- branch: `main`
- started_at: `2026-02-20T11:51:18Z`
- heartbeat_minutes: `5`
## Current Work (newest first)
- [2026-02-20T11:51:18Z] intent: review unstaged diff; derive concise conventional commit message; commit requested changes.
- [2026-02-20T11:51:18Z] progress: inspected unstaged set (Makefile/docs/backlog/submodule/new script/new task metadata/subagent records).
## Files Touched
- `docs/subagents/INDEX.md`
- `docs/subagents/agents/codex-commit-unstaged-20260220T115057Z-k7q2.md`
## Assumptions
- user asked to commit all unstaged changes currently in working tree.
- single commit acceptable for mixed docs/build/backlog/submodule updates.
## Open Questions / Blockers
- none
## Next Step
- stage all current unstaged changes and commit with content-derived Conventional Commit message.

View File

@@ -0,0 +1,42 @@
# Agent Log — codex-nplusone-pos1-20260220T012300Z-c5he
- alias: `codex-nplusone-pos1`
- mission: `Fix N+1 false-negative when known sentence fails due to Yomitan functional token counting`
- status: `completed`
- started_utc: `2026-02-20T01:23:00Z`
- heartbeat_minutes: `5`
## Intent
- reproduce user-reported case: known `私/あの/欲しい`, unknown `仮面`, no N+1 color
- add failing regression test first
- patch N+1 candidate filter to ignore functional `pos1` from MeCab enrichment for Yomitan tokens
- run focused tests
## Planned Files
- `src/core/services/tokenizer.test.ts`
- `src/token-merger.ts`
## Assumptions
- issue path: Yomitan tokens have `partOfSpeech=other`; candidate exclusion relies mostly on `partOfSpeech`
- MeCab enrichment supplies `pos1`; N+1 filter currently underuses it
## Progress
- 2026-02-20T01:23:00Z: started; context loaded; preparing RED test
- 2026-02-20T01:28:02Z: RED confirmed; new regression test fails (`targets.length` expected 1, got 0)
- 2026-02-20T01:28:14Z: GREEN confirmed; patched N+1 candidate filter to ignore functional `pos1` (`助詞`,`助動詞`,`記号`,`補助記号`); tokenizer test file all pass
## Files Touched
- `src/core/services/tokenizer.test.ts`
- `src/token-merger.ts`
- `docs/subagents/INDEX.md`
- `docs/subagents/agents/codex-nplusone-pos1-20260220T012300Z-c5he.md`
## Handoff
- regression covered for user-reported case pattern (`私も あの仮面が欲しいです` with known `私/あの/欲しい`)
- no blockers

View File

@@ -0,0 +1,36 @@
# Agent: codex-review-refactor-cleanup-20260220T113818Z-i2ov
- alias: codex-review-refactor-cleanup
- mission: Review recent TASK-85 refactor commits; identify remaining cleanup work with concrete evidence
- status: handoff
- branch: main
- started_at: 2026-02-20T11:38:18Z
- heartbeat_minutes: 5
## Current Work (newest first)
- [2026-02-20T11:48:28Z] progress: executed cleanup item #4 first: reconciled launcher generated-artifact policy by moving `build-launcher` output to `dist/launcher/subminer` and making install targets consume that path.
- [2026-02-20T11:48:28Z] progress: added `scripts/verify-generated-launcher.sh` and documented canonical workflow in `docs/development.md` + `docs/installation.md`.
- [2026-02-20T11:48:28Z] test: `make build-launcher && ls -la dist/launcher/subminer && bash scripts/verify-generated-launcher.sh` passes (warns if stale `./subminer` exists locally).
- [2026-02-20T11:40:15Z] test: full gate pass for current tree (`bun run build && bun run test:config:dist && bun run test:core:dist`); cleanup debt remains structural/tracking, not immediate red tests.
- [2026-02-20T11:39:33Z] handoff: review complete; TASK-85 refactor made strong `src/main/runtime/*` progress but cleanup not complete. Remaining priorities: finish decomposing oversized hotspots (`src/main.ts`, `src/anki-integration.ts`, `src/config/service.ts`, `src/core/services/immersion-tracker-service.ts`), reduce `main.ts` import/deps-builder fan-in, and close TASK-85 AC/DoD tracking gaps.
- [2026-02-20T11:39:33Z] progress: ran maintainability guardrail (`bun run check:file-budgets`) and confirmed 17 files still >500 LOC including primary TASK-85 targets.
- [2026-02-20T11:38:18Z] intent: run requesting-code-review pass over latest refactor series, focus on remaining maintainability/quality gaps and missing tests.
- [2026-02-20T11:38:18Z] planned files: `src/main.ts`, `src/main/runtime/*`, `src/anki-integration.ts`, `src/config/service.ts`, `src/core/services/immersion-tracker-service.ts`, `backlog/tasks/task-85 - Refactor-large-files-for-maintainability-and-readability.md`.
- [2026-02-20T11:38:18Z] assumptions: backlog MCP resource says uninitialized; use existing local `backlog/tasks/task-85 - Refactor-large-files-for-maintainability-and-readability.md` for ticket association/context.
## Files Touched
- `docs/subagents/agents/codex-review-refactor-cleanup-20260220T113818Z-i2ov.md`
- `docs/subagents/INDEX.md`
- `Makefile`
- `scripts/verify-generated-launcher.sh`
- `docs/development.md`
- `docs/installation.md`
## Assumptions
- Review scope = recent TASK-85 refactor commits on `main` (mostly 2026-02-20 series touching `src/main.ts` and `src/main/runtime/*`).
## Open Questions / Blockers
- none
## Next Step
- Convert review findings into concrete child backlog tasks under TASK-85 (domain-by-domain extraction + import-fan-in reduction + AC/DoD closeout pass).

View File

@@ -0,0 +1,36 @@
# Agent: codex-texthooker-color-ws-20260220T005844Z-r7m2
- alias: codex-texthooker-color-ws
- mission: Fix texthooker websocket payload so token highlight colors render
- status: completed
- branch: main
- started_at: 2026-02-20T00:58:44Z
- heartbeat_minutes: 5
## Current Work (newest first)
- [2026-02-20T01:01:00Z] handoff: implemented websocket subtitle serialization with token markup classes (`word-known`, `word-n-plus-one`, `word-frequency-*`, `word-jlpt-*`) so texthooker-ui receives color metadata.
- [2026-02-20T01:01:00Z] change: `subtitle-change` now sends immediate plain overlay update while async processing path publishes tokenized/fallback payloads to both overlay and websocket; tokenization now runs when texthooker websocket has clients even without overlay windows.
- [2026-02-20T01:01:00Z] test: `bun test src/core/services/subtitle-processing-controller.test.ts src/core/services/subtitle-ws.test.ts` pass (7/7); `bun run build` pass (expected macOS helper swiftcache sandbox fallback).
- [2026-02-20T00:58:44Z] intent: debug missing texthooker colors after UI update; patch SubMiner websocket/tokenization integration path.
- [2026-02-20T00:58:44Z] progress: root cause found: `SubtitleWebSocket.broadcast()` sends only plain sentence text while token classes are generated only in renderer overlay path; texthooker never receives token-markup metadata.
- [2026-02-20T00:58:44Z] planned files: `src/core/services/subtitle-ws.ts`, `src/main.ts`, `src/core/services/subtitle-processing-controller.ts`, tests under `src/core/services/*`.
- [2026-02-20T00:58:44Z] backlog: associated with existing `TASK-87` (frequency/N+1 init + highlighting behavior).
## Files Touched
- `docs/subagents/INDEX.md`
- `docs/subagents/agents/codex-texthooker-color-ws-20260220T005844Z-r7m2.md`
- `src/main.ts`
- `src/core/services/subtitle-ws.ts`
- `src/core/services/subtitle-ws.test.ts`
- `src/core/services/subtitle-processing-controller.ts`
- `src/core/services/subtitle-processing-controller.test.ts`
## Open Questions / Blockers
- none
## Next Step
- none

View File

@@ -0,0 +1,27 @@
# Agent: codex-texthooker-highlights-20260220T002342Z-ugna
- alias: codex-texthooker-highlights
- mission: Add optional texthooker highlight toggles (known/n+1/frequency/JLPT) in settings with realtime forward-only behavior.
- status: in_progress
- branch: main
- started_at: 2026-02-20T00:23:42Z
- heartbeat_minutes: 5
## Current Work (newest first)
- [2026-02-20T00:23:42Z] intent: implement texthooker-ui enhancements for optional known/n+1/frequency/JLPT coloring with runtime settings toggles that apply only to new incoming lines.
- [2026-02-20T00:23:42Z] planned files: texthooker-ui source for line rendering/highlighting + settings page/state store + tests covering toggle behavior.
- [2026-02-20T00:23:42Z] assumptions: user wants per-feature on/off switches; turning off stops applying color to new lines while existing rendered lines remain unchanged.
## Files Touched
- docs/subagents/INDEX.md
- docs/subagents/agents/codex-texthooker-highlights-20260220T002342Z-ugna.md
## Open Questions / Blockers
- none
## Next Step
- inspect texthooker-ui highlight/settings architecture and map minimal-change implementation path.

View File

@@ -0,0 +1,41 @@
# Agent: codex-texthooker-highlights-20260220T002354Z-927c
- alias: codex-texthooker-highlights
- mission: Add optional texthooker highlight toggles (known/n+1/frequency/JLPT) in settings with realtime forward-only behavior.
- status: completed
- branch: main
- started_at: 2026-02-20T00:23:54Z
- heartbeat_minutes: 5
## Current Work (newest first)
- [2026-02-20T00:30:49Z] change: added texthooker-ui highlight toggles (known/n+1/frequency/jlpt) in stores/types/settings/presets and ingest-time markup filtering with safe span whitelist.
- [2026-02-20T00:30:49Z] change: switched line rendering to sanitized html content and added word class styles + plain-text copy behavior.
- [2026-02-20T00:30:49Z] test: `cd texthooker-ui && bun test src/util.test.ts` pass (7/7).
- [2026-02-20T00:30:49Z] note: full TypeScript check blocked locally because texthooker-ui dependencies/tsconfig base package are not installed in this environment.
- [2026-02-20T00:26:28Z] phase: plan complete; starting code edits in texthooker-ui (stores/settings/line markup filter/styles/tests).
- [2026-02-20T00:23:54Z] intent: implement texthooker-ui enhancements for optional known/n+1/frequency/JLPT coloring with runtime settings toggles that apply only to new incoming lines.
- [2026-02-20T00:23:54Z] planned files: texthooker-ui source for line rendering/highlighting + settings page/state store + tests covering toggle behavior.
- [2026-02-20T00:23:54Z] assumptions: user wants per-feature on/off switches; turning off stops applying color to new lines while existing rendered lines remain unchanged.
## Files Touched
- docs/subagents/INDEX.md
- docs/subagents/agents/codex-texthooker-highlights-20260220T002354Z-927c.md
- texthooker-ui/src/types.ts
- texthooker-ui/src/stores/stores.ts
- texthooker-ui/src/components/Settings.svelte
- texthooker-ui/src/components/Presets.svelte
- texthooker-ui/src/components/App.svelte
- texthooker-ui/src/components/Line.svelte
- texthooker-ui/src/line-markup.ts
- texthooker-ui/src/util.test.ts
- texthooker-ui/src/app.css
## Open Questions / Blockers
- none
## Next Step
- wait for user validation in running texthooker session; if requested, regenerate bundled `texthooker-ui/docs/index.html`.

View File

@@ -0,0 +1,32 @@
# Agent: codex-texthooker-ui-playwright-20260220T003827Z-k3p9
- alias: codex-texthooker-ui-playwright
- mission: Run Playwright MCP smoke/regression checks for texthooker-ui changes
- status: completed
- branch: main
- started_at: 2026-02-20T00:38:27Z
- heartbeat_minutes: 5
## Current Work (newest first)
- [2026-02-20T00:42:09Z] handoff: Playwright MCP smoke run complete on local `texthooker-ui` (`http://127.0.0.1:4174`) with injected markup fixtures for highlight behavior and copy flow.
- [2026-02-20T00:42:09Z] test: `bun install` (deps restored), `bun run dev --host 127.0.0.1 --port 4174` (manual run), Playwright checks (UI load/settings toggles/persistence/copy), `bun test src/util.test.ts` pass (7/7).
- [2026-02-20T00:42:09Z] result: new settings toggles render and persist (`bannou-texthooker-enable{KnownWord|NPlusOne|Frequency|Jlpt}Coloring` saved as `0/1`); copy button writes plain text from markup (`既知 新語 頻度 級`).
- [2026-02-20T00:42:09Z] observation: disabling toggles does not retroactively re-render already persisted lines; existing HTML markup remains unchanged until new line ingestion path runs.
- [2026-02-20T00:38:27Z] intent: execute browser-based checks against local `texthooker-ui` for recent highlight-toggle related changes; capture failures with reproducible steps and logs.
- [2026-02-20T00:38:27Z] planned files: `texthooker-ui/src/**/*` (read-only inspection), `docs/subagents/INDEX.md`, `docs/subagents/agents/codex-texthooker-ui-playwright-20260220T003827Z-k3p9.md`.
- [2026-02-20T00:38:27Z] backlog: associated validation run with existing `TASK-87` (`backlog/tasks/task-87 - Fix-plugin-start-flow-so-tokenization-frequency-N1-initialize-correctly.md`) because scope is frequency/N+1 highlighting behavior verification.
- [2026-02-20T00:38:27Z] assumptions: local `texthooker-ui` dev/preview server starts with project scripts and exposes stable UI hooks for smoke checks.
## Files Touched
- `docs/subagents/INDEX.md`
- `docs/subagents/agents/codex-texthooker-ui-playwright-20260220T003827Z-k3p9.md`
## Open Questions / Blockers
- none
## Next Step
- none