Files
SubMiner/docs/subagents/collaboration.md
sudacode f1dc418e2d feat(core): add Discord Rich Presence integration
Introduce optional Discord activity updates across config, runtime, tests, and docs so playback context appears in Discord without destabilizing app lifecycle. Tune default refresh cadence to reduce pause/resume lag during real sessions.
2026-02-22 17:25:55 -08:00

42 KiB

Subagents Collaboration

Shared notes. Append-only.

  • [YYYY-MM-DDTHH:MM:SSZ] [agent_id|alias] note, question, dependency, conflict, decision.
  • [2026-02-19T08:21:11Z] [codex-main|planner-exec] conflict note: docs/subagents/INDEX.md and docs/subagents/agents/codex-main.md were externally updated to TASK-69 while TASK-38 work was in-flight; reconciled own row/file back to TASK-38 handoff state.
  • [2026-02-20T00:01:40Z] [codex-anilist-deeplink|anilist-deeplink] preparing commit; scoping staged set to repo changes, excluding external reference dirs (vendor/yomitan-jlpt-vocab, mpv-anilist-updater).
  • [2026-02-20T05:42:54Z] [codex-subtitle-bg-20260220T054247Z-h9cu|codex-subtitle-bg] short config tweak requested: update default subtitle background color; scoping to config defaults/tests only.
  • [2026-02-20T05:44:45Z] [codex-subtitle-bg-20260220T054247Z-h9cu|codex-subtitle-bg] completed TASK-89; updated default subtitle background in config defaults/docs/examples/renderer CSS; config tests green.
  • [2026-02-20T06:17:31Z] [codex-narrow-space-tokenizer-20260220T061716Z-p97s|codex-narrow-space-tokenizer] potential overlap notice: investigating tokenizer whitespace normalization and tests (likely src/core/services/tokenizer-service.ts + tests); coordinating to avoid clobber with ongoing TASK-85 refactor touches.
  • [2026-02-20T06:20:07Z] [codex-narrow-space-tokenizer-20260220T061716Z-p97s|codex-narrow-space-tokenizer] completed TASK-90 fix in src/subtitle/stages/normalize.ts; normalize U+200B/U+2060/U+FEFF to spaces for tokenizer input; added regression test src/subtitle/stages/normalize.test.ts; targeted tokenizer suite green.
  • [2026-02-20T06:35:38Z] [codex-preserve-linebreaks-20260220T063538Z-s4nd|codex-preserve-linebreaks] overlap note: touching subtitle config + renderer render path (src/types.ts, src/config/*, src/renderer/subtitle-render.ts, docs/config examples) to add optional preserve-line-breaks behavior while keeping default normalization unchanged.
  • [2026-02-20T06:42:51Z] [codex-preserve-linebreaks-20260220T063538Z-s4nd|codex-preserve-linebreaks] completed TASK-91; added subtitleStyle.preserveLineBreaks config (default false), renderer token/source alignment helper to preserve visible overlay line breaks when enabled, config+renderer tests green.
  • [2026-02-20T09:24:08Z] [codex-bundle-config-example-20260220T092408Z-a1b2|codex-bundle-config-example] conflict note: target file .github/workflows/release.yml already modified by codex-release-mpv-plugin session; applying minimal additive delta for config example bundling only.
  • [2026-02-20T10:22:45Z] [codex-jellyfin-secret-store-20260220T101428Z-om4z|codex-jellyfin-secret-store] completed TASK-92: Jellyfin token now stored via local encrypted token store (safeStorage) with config override fallback; login/setup save token to store, logout clears store; runtime/docs/tests updated.
  • [2026-02-20T11:04:36Z] [codex-preserve-linebreak-display-20260220T110436Z-r8f1|codex-preserve-linebreak-display] overlap note: touching src/renderer/subtitle-render.ts + renderer tests to fix preserve-linebreaks disabled display artifact while preserving TASK-91 behavior.
  • [2026-02-20T11:07:29Z] [codex-preserve-linebreak-display-20260220T110436Z-r8f1|codex-preserve-linebreak-display] completed follow-up for TASK-91: non-preserve mode now flattens token CR/LF to spaces instead of emitting <br> from token surfaces; regression test added.
  • [2026-02-20T11:10:51Z] [codex-preserve-linebreak-display-20260220T110436Z-r8f1|codex-preserve-linebreak-display] second follow-up: handle overlap token streams by aligning non-preserve rendering to normalized source text and skipping unmatched tail tokens (prevents duplicated second-line phrase).
  • [2026-02-21T03:24:45Z] [codex-task94-thin-root-20260221T031320Z-q3n7|codex-task94-thin-root] overlap note: starting TASK-94 extraction in src/main.ts + new src/main/runtime/composers/*; coordinating around existing in-progress rows (codex-main, codex-task85) that may also touch main-runtime wiring.
  • [2026-02-21T03:41:10Z] [codex-task94-thin-root-20260221T031320Z-q3n7|codex-task94-thin-root] shipped TASK-94 slice: moved jellyfin/anilist deps-builder clusters behind composer modules, tightened fan-in guard, added composer tests, updated backlog task notes with before/after metrics and remaining scope (startup/overlay/ipc/shortcuts extraction).
  • [2026-02-21T03:14:29Z] [codex-task95-hotspots-20260221T031420Z-x7k2|codex-task95-hotspots] starting TASK-95 execution: load backlog context, write plan with writing-plans skill, execute with executing-plans (no commit).
  • [2026-02-21T03:29:23Z] [codex-task95-hotspots-20260221T031420Z-x7k2|codex-task95-hotspots] completed TASK-95 with parallel subagents (anki/config/immersion), full gates green, TASK-95 set Done and TASK-85 evidence updated.
  • [2026-02-21T03:18:36Z] [codex-task95-anki-20260221T031836Z-6f3e|codex-task95-anki] starting TASK-95 Anki portion: extract field-grouping/merge collaborator from src/anki-integration.ts into src/anki-integration/*; add seam tests; run bun run build && node --test dist/anki-integration.test.js.
  • [2026-02-21T03:26:55Z] [codex-task95-anki-20260221T031836Z-6f3e|codex-task95-anki] completed Anki extraction; collaborator now in src/anki-integration/field-grouping-merge.ts; AnkiIntegration rewired via collaborator seam; targeted build + dist/anki-integration.test.js passing.
  • [2026-02-21T03:18:43Z] [opencode-task95-config-20260221T031843Z-m4k9|opencode-task95-config] starting TASK-95 config slice; scope src/config/service.ts, new src/config/* collaborators, and config seam tests only; no backlog-file edits.
  • [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.
  • [2026-02-21T04:35:41Z] [codex-task71-round2-20260221T043541Z-k9t3|codex-task71-round2] overlap note: starting TASK-71 round 2 follow-up on src/main.ts + src/main/runtime/composers/* + docs; preserving prior TASK-94/TASK-95 edits.
  • [2026-02-21T04:57:00Z] [codex-task71-round2-20260221T043541Z-k9t3|codex-task71-round2] completed TASK-71: extracted AniList tracking + MPV runtime composition into new composers, added seam tests, rewired main.ts + composer barrel, strict fan-in green, and finalized Backlog task as Done.
  • [2026-02-21T05:13:08Z] [codex-task85-20260221T051308Z-164g|codex-task85-exec] starting TASK-85 execution pass: load backlog task context, generate plan via writing-plans, execute via executing-plans, no commit.
  • [2026-02-21T05:45:50Z] [codex-task85-20260221T051308Z-164g|codex-task85-exec] completed TASK-85 pass: enforced launcher generated-artifact workflow across verifier + CI/release + docs, ran full build/test/guardrails, and finalized TASK-85 status to Done in Backlog MCP.
  • [2026-02-21T07:08:42Z] [opencode-task93-sync-20260221T070842Z-71c6|opencode-task93-sync] starting TASK-93 backlog synchronization pass: align TASK-85 closure tracking, AC/DoD mapping, and child-task ownership; backlog-only edits expected.
  • [2026-02-21T07:11:58Z] [opencode-task93-sync-20260221T070842Z-71c6|opencode-task93-sync] completed TASK-93: updated TASK-85 description/notes with explicit AC/DoD ownership + remaining-scope order; finalized TASK-93 AC/DoD and status Done.
  • [2026-02-21T09:42:20Z] [opencode-task97-runtime-composer-20260221T094150Z-r8k3|opencode-task97-runtime-composer] starting TASK-97 execution: loading backlog context, writing plan via writing-plans, executing via executing-plans, no commit.
  • [2026-02-21T10:06:59Z] [opencode-task97-runtime-composer-20260221T094150Z-r8k3|opencode-task97-runtime-composer] completed TASK-97: normalized shared composer contracts across runtime composers, added compile-time contract assertions, updated docs conventions, ran build + fan-in + core-dist gates, and finalized Backlog task as Done.
  • [2026-02-21T09:41:19Z] [opencode-task96-config-resolve-20260221T094119Z-mbfo|opencode-task96-config-resolve] starting TASK-96 via Backlog MCP + writing-plans/executing-plans workflow; scope expected around src/config/resolve.ts, new config-resolve domain modules, seam tests, and budget checks.
  • [2026-02-21T09:45:24Z] [opencode-task98-source-tests-20260221T094524Z-kzvd|opencode-task98-source-tests] starting TASK-98 via Backlog MCP + writing-plans/executing-plans workflow; targeting source-level test entrypoints and dist-coupling cleanup, no commit.
  • [2026-02-21T09:56:47Z] [opencode-task98-source-tests-20260221T094524Z-kzvd|opencode-task98-source-tests] TASK-98 implementation pass complete: source test lane (test:fast) moved to bun test source entrypoints, explicit test:smoke:dist added, CI/release updated, docs+timing evidence recorded; blocked final DoD on unrelated pre-existing bun run build TS errors from in-flight TASK-96/97 files.
  • [2026-02-21T11:00:58Z] [codex-task96-config-resolve-20260221T110058Z-k7m2|codex-task96-config-resolve] taking over TASK-96 execution: load backlog task, write plan via writing-plans, execute via executing-plans, and finalize AC/DoD evidence without commit.
  • [2026-02-21T20:10:43Z] [codex-task96-config-resolve-20260221T110058Z-k7m2|codex-task96-config-resolve] completed TASK-96: src/config/resolve.ts reduced to thin orchestrator (33 LOC), config resolve seam tests wired into src+dist config lanes via package.json, required gates green (build, test:config:dist, check:file-budgets), and backlog task marked Done with metrics evidence.
  • [2026-02-21T20:20:52Z] [codex-task74-launcher-tests-20260221T201635Z-10i6|codex-task74-launcher-tests] completed TASK-74: added launcher/main.test.ts regression harness for config discovery + command branching (doctor, config, mpv, jellyfin), wired launcher tests into test:launcher + test:core:src, updated launcher docs test command, and marked backlog task done.
  • [2026-02-21T20:19:24Z] [codex-task73-mpv-socket-20260221T201605Z-zjhs|codex-task73-mpv-socket] completed TASK-73: consolidated launcher MPV socket readiness on waitForUnixSocketReady, removed waitForSocket/duplicate path polling, rewired launcher overlay callsite, added readiness regression tests (launcher/mpv.test.ts), launcher tests + make build-launcher green.
  • [2026-02-21T20:20:18Z] [codex-task73-mpv-socket-20260221T201605Z-zjhs|codex-task73-mpv-socket] full bun run build currently blocked by unrelated missing modules in src/anki-integration/field-grouping-workflow.test.ts and src/anki-integration/note-update-workflow.test.ts (outside TASK-73 scope).
  • [2026-02-21T20:16:59Z] [opencode-task76-anki-workflows-20260221T201659Z-r4p1|opencode-task76-anki-workflows] starting TASK-76 via Backlog MCP + writing-plans/executing-plans; likely scope src/anki-integration.ts + new src/anki-integration/* workflow services, with overlap checks before edits.
  • [2026-02-21T20:35:58Z] [opencode-task76-doc-boundaries-20260221T203558Z-h7q4|opencode-task76-doc-boundaries] overlap note: TASK-76 already has an active planning agent; this pass is docs-only (docs/anki-integration.md) to capture ownership boundaries after workflow decomposition.
  • [2026-02-21T21:16:18Z] [opencode-task76-anki-workflows-20260221T201659Z-r4p1|opencode-task76-anki-workflows] completed TASK-76: extracted note-update-workflow + field-grouping-workflow services, delegated facade hotpaths in src/anki-integration.ts, added focused workflow seam tests, docs ownership boundaries updated, bun run build && bun run test:core:dist green, and backlog TASK-76 marked Done.
  • [2026-02-21T21:37:07Z] [codex-docs-unpushed-review-20260221T213707Z-lyej|codex-docs-unpushed-review] starting docs-drift audit for unpushed commits (origin/main..HEAD); scope docs alignment only, no behavior/code rewrites.
  • [2026-02-21T21:39:15Z] [codex-docs-unpushed-review-20260221T213707Z-lyej|codex-docs-unpushed-review] completed docs-drift pass for current HEAD: removed stale lowercase config-dir fallback claim (docs/configuration.md) and added launcher regression lane in dev test commands (docs/development.md).
  • [2026-02-21T23:18:04Z] [codex-task72-strict-startup-config-20260221T231804Z-3ngd|codex-task72-strict-startup-config] starting TASK-72 via Backlog MCP + writing-plans/executing-plans workflow; scope expected around startup config strictness parity, user-facing errors, tests, and docs.
  • [2026-02-21T23:20:16Z] [opencode-task77-tokenizer-stages-20260221T232016Z-v9k2|opencode-task77-tokenizer-stages] starting TASK-77 via Backlog MCP + writing-plans/executing-plans workflow; expected overlap around tokenizer/pipeline modules and related tests, coordinating to avoid clobber.
  • [2026-02-21T23:47:08Z] [opencode-task77-tokenizer-stages-20260221T232016Z-v9k2|opencode-task77-tokenizer-stages] completed TASK-77: split tokenizer into parser-selection/enrichment/annotation/runtime stages, added direct stage tests, ran tokenizer+core src/dist gates green, and finalized Backlog task to Done.
  • [2026-02-21T23:18:16Z] [codex-task75-mpv-osd-buffered-20260221T231816Z-yj32|codex-task75-mpv-osd-buffered] starting TASK-75 via Backlog MCP + writing-plans/executing-plans; scope src/main/runtime/mpv-osd-log* + wiring/tests for buffered async OSD logging with shutdown flush behavior.
  • [2026-02-21T23:48:10Z] [codex-task75-mpv-osd-buffered-20260221T231816Z-yj32|codex-task75-mpv-osd-buffered] completed TASK-75: moved MPV OSD log writes to buffered async queue + flush path, wired flushMpvLog into on-will-quit cleanup, focused runtime/lifecycle tests passing, backlog task marked Done; full bun run build still blocked by unrelated tokenizer logger typing issue.
  • [2026-02-21T23:21:55Z] [opencode-task72-strict-startup-config-20260221T232155Z-kf0o|opencode-task72-strict-startup-config] overlap note: implementing user-requested Task 1 for TASK-72 in src/config/service.ts + src/config/config.test.ts; another planning agent exists on TASK-72 (codex-task72-...), keeping edits minimal and scoped to startup malformed-config strict failure behavior.
  • [2026-02-21T23:24:32Z] [opencode-task72-strict-startup-config-20260221T232155Z-kf0o|opencode-task72-strict-startup-config] completed Task 1: constructor now throws ConfigStartupParseError on malformed startup config (path + parse reason in message) instead of silently defaulting; added startup malformed-config constructor regression test; bun run build && node --test dist/config/config.test.js passed.
  • [2026-02-21T23:21:37Z] [opencode-task72-parse-details-20260221T232137Z-b63t|opencode-task72-parse-details] overlap note: implementing only TASK-72 Task 2 (src/main/config-validation.ts, src/main/runtime/startup-config.ts, and related tests) while preserving existing TASK-72 planning artifacts from codex-task72-strict-startup-config-20260221T231804Z-3ngd.
  • [2026-02-21T23:25:07Z] [opencode-task77-sliceb-20260221T232507Z-vzk5|opencode-task77-sliceb] overlap note: implementing TASK-77 slice B in src/core/services/tokenizer/parser-enrichment-stage*.ts only; preserving concurrent TASK-77 planning/slice-A work and leaving src/core/services/tokenizer.ts untouched per request.
  • [2026-02-21T23:27:40Z] [opencode-task77-sliceb-20260221T232507Z-vzk5|opencode-task77-sliceb] completed TASK-77 slice B request: extracted parser enrichment stage pure logic into parser-enrichment-stage.ts, added focused tests in parser-enrichment-stage.test.ts, and validated with bun test src/core/services/tokenizer/parser-enrichment-stage.test.ts (3 pass).
  • [2026-02-22T00:01:00Z] [opencode-task77-slice-a-20260222T000100Z-j4p2|opencode-task77-slice-a] overlap note: implementing TASK-77 slice A in src/core/services/tokenizer/parser-selection-stage.ts + focused tests; no edits to src/core/services/tokenizer.ts in this pass.
  • [2026-02-22T00:03:30Z] [opencode-task77-slice-a-20260222T000100Z-j4p2|opencode-task77-slice-a] completed TASK-77 slice A: added pure parser-selection-stage module + focused tests (scanning preference, mecab fallback split, suspicious-kana tie-break); targeted bun test command green.
  • [2026-02-21T23:24:12Z] [opencode-task72-parse-details-20260221T232137Z-b63t|opencode-task72-parse-details] completed TASK-72 Task 2 scope: shared parse-error formatter now in src/main/config-validation.ts, startup hot-reload parse-failure path uses formatter, tests updated (src/main/config-validation.test.ts, src/main/runtime/startup-config.test.ts), required build+node-test command passed.
  • [2026-02-21T23:26:29Z] [codex-task72-strict-startup-config-20260221T231804Z-3ngd|codex-task72-strict-startup-config] completed TASK-72 end-to-end (no commit): integrated Task 3 startup guard in src/main.ts, docs behavior update in docs/configuration.md, focused tests pass (bun test ... 46/46), and backlog TASK-72 finalized Done; full build still blocked by unrelated TASK-75/TASK-77 TS errors.
  • [2026-02-21T23:56:04Z] [opencode-task78-config-domain-20260221T235604Z-p9x2|opencode-task78-config-domain] starting TASK-78 via Backlog MCP + writing-plans/executing-plans workflow; expected scope src/config/definitions.ts, src/config/service.ts, new config-domain modules/tests, and docs updates as needed.
  • [2026-02-22T00:05:00Z] [opencode-task78-config-domain-20260221T235604Z-p9x2|opencode-task78-config-domain] completed TASK-78: split config definitions into domain modules under src/config/definitions/*, kept composed public API at src/config/definitions.ts, added domain-registry tests, updated contributor docs, and finalized backlog task to Done; make generate-config blocked by unrelated pre-existing src/main/state.test.ts export errors.
  • [2026-02-21T23:56:52Z] [opencode-task79-runtime-reducers-20260221T235652Z-n4p7|opencode-task79-runtime-reducers] starting TASK-79 via Backlog MCP + writing-plans/executing-plans; initial scope expected around src/main.ts runtime-state mutation paths, reducer helpers, invariant tests, and ownership docs; parallel slices where safe.
  • [2026-02-22T00:06:10Z] [opencode-task79-runtime-reducers-20260221T235652Z-n4p7|opencode-task79-runtime-reducers] implementing TASK-79 slice A: added reducer helpers + focused src/main/state.test.ts; rewired migrated src/main.ts AniList mutation paths (client-secret state, retry metadata, media-guess runtime fields, in-flight flag) through src/main/state.ts transitions.
  • [2026-02-22T00:02:53Z] [opencode-task79-sliceb-20260222T000253Z-m2r7|opencode-task79-sliceb] overlap note: implementing TASK-79 slice B only (src/main/runtime/anilist-state.test.ts, src/main/runtime/anilist-media-state.test.ts, docs/architecture.md) for invariants coverage and composition-boundary ownership docs; no runtime behavior code changes.
  • [2026-02-22T00:04:21Z] [opencode-task79-sliceb-20260222T000253Z-m2r7|opencode-task79-sliceb] completed TASK-79 slice B request: added invariants coverage in AniList runtime/media tests (queue metadata preservation, clear-token non-mutation, guess-only reset, tracking reset idempotence), documented migrated runtime reducer ownership rules in architecture docs, and verified focused tests green (8 pass).
  • [2026-02-22T00:10:51Z] [opencode-task79-runtime-reducers-20260221T235652Z-n4p7|opencode-task79-runtime-reducers] completed TASK-79 end-to-end: merged slice A/B, added explicit AniList runtime transitions in src/main/state.ts, rewired migrated src/main.ts mutation paths, fixed state.ts core-services import coupling for focused tests, verified bun test src/main/state.test.ts src/main/runtime/anilist-state.test.ts src/main/runtime/anilist-media-state.test.ts + bun run build + bun run test:core:src, and marked backlog task Done.
  • [2026-02-22T00:17:28Z] [opencode-task80-ipc-contract-20260222T001728Z-obrv|opencode-task80-ipc-contract] starting TASK-80 via Backlog MCP + writing-plans/executing-plans; scope IPC contract typing/runtime payload validation + malformed payload tests; will parallelize independent slices where possible.
  • [2026-02-22T00:21:50Z] [opencode-task82-smoke-20260222T002150Z-p5bp|opencode-task82-smoke] starting TASK-82 via Backlog MCP + writing-plans/executing-plans; scope e2e smoke suite for launcher mpv ipc overlay startup + workflow/docs wiring, no commit.
  • [2026-02-22T00:25:23Z] [codex-task82-smoke-20260222T002523Z-3j7u|codex-task82-smoke] overlap note: taking active TASK-82 execution; reusing existing task context/plan artifact, scoping edits to launcher smoke test + workflow/docs wiring + backlog evidence updates only.
  • [2026-02-22T00:56:00Z] [opencode-task80-ipc-contract-20260222T001728Z-obrv|opencode-task80-ipc-contract] completed TASK-80: added central IPC contract + boundary validators (src/shared/ipc/*), rewired main/preload/anki-jimaku IPC channel usage, added malformed payload tests (ipc.test.ts, anki-jimaku-ipc.test.ts), docs updated (docs/architecture.md), build + core src/dist tests green, and backlog TASK-80 marked Done.
  • [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.
  • [2026-02-22T03:32:21Z] [opencode-task100-dead-code-prune-20260222T033155Z-qenz|opencode-task100-dead-code-prune] starting TASK-100 via Backlog MCP + writing-plans/executing-plans; expected scope dead-code candidate report, safe removals, regression tests/gates, and backlog evidence updates.
  • [2026-02-22T04:00:41Z] [opencode-task100-dead-code-prune-20260222T033155Z-qenz|opencode-task100-dead-code-prune] completed TASK-100 execution pass: removed confirmed dead imports/helpers/exports across Anki/core/renderer/provider modules, added dead-code report at docs/reports/2026-02-22-task-100-dead-code-report.md, verified build + core/config src tests + file-budget checks, and prepared Backlog finalization updates.
  • [2026-02-22T05:46:31Z] [codex-gh-fix-ci-20260222T054631Z-m4t8|codex-gh-fix-ci] starting CI triage via gh-fix-ci skill; no branch PR found for main, falling back to latest failed GitHub Actions runs on main for root-cause summary + fix plan.
  • [2026-02-22T06:11:15Z] [codex-gh-fix-ci-20260222T054631Z-m4t8|codex-gh-fix-ci] completed requested change: removed file-budget guardrail script + package scripts + CI invocation; retained main-fanin/runtime-cycle strict checks and updated active docs commands.
  • [2026-02-22T06:22:35Z] [codex-fix-rebase-errors-20260222T062235Z-73h4|codex-fix-rebase-errors] conflict note: resolving in-flight rebase conflicts in src/core/services/ipc.ts and src/main.ts (files recently touched by multiple agents); keeping scope to conflict resolution only.
  • [2026-02-22T06:30:48Z] [codex-fix-rebase-errors-20260222T062235Z-73h4|codex-fix-rebase-errors] completed rebase recovery: resolved two rebase stops (main/ipc + config/docs), preserved modular config architecture while porting subtitleStyle.hoverTokenColor, and finished interactive rebase cleanly on main.
  • [2026-02-22T06:57:52Z] [codex-review-cleanup-20260222T065718Z-9p4m|codex-review-cleanup] starting post-refactor code review pass + backlog ticket creation for remaining simplification/cleanup actions; scope whole repo with maintainability focus.
  • [2026-02-22T07:04:48Z] [codex-review-cleanup-20260222T065718Z-9p4m|codex-review-cleanup] completed review + ticketing pass: flagged Jellyfin session migration compile break and opened TASK-102..TASK-106; refreshed TASK-57 with current context/action steps/DoD.
  • [2026-02-22T07:15:30Z] [codex-jellyfin-ts-fix-20260222T071530Z-5e50|codex-jellyfin-ts-fix] overlap note: fixing Jellyfin config/runtime type drift touching src/main.ts, src/config/definitions/*, src/config/resolve/*; preserving recent refactor structure and limiting scope to TS errors only.
  • [2026-02-22T07:18:07Z] [codex-jellyfin-ts-fix-20260222T071530Z-5e50|codex-jellyfin-ts-fix] completed TS fix: removed legacy jellyfin.accessToken/userId from defaults/resolver, aligned src/main.ts to loadSession/saveSession/clearSession, added resolver regression test for legacy keys, and verified bun run tsc --noEmit + focused jellyfin tests green.
  • [2026-02-22T07:23:47Z] [codex-jellyfin-ts-fix-20260222T071530Z-5e50|codex-jellyfin-ts-fix] docs follow-up: fixed stale docs/configuration.md Jellyfin table/text to remove accessToken/userId config guidance; now states stored encrypted session + env override keys.
  • [2026-02-22T07:34:50Z] [codex-overlay-toggle-regression-20260222T073450Z-q7m4|codex-overlay-toggle-regression] starting TASK-107 bugfix for post-rebase overlay regression: toggling visible/invisible opens transparent non-interactable window; keybinds + subtitle rendering fail in both modes.
  • [2026-02-22T07:44:40Z] [codex-overlay-toggle-regression-20260222T073450Z-q7m4|codex-overlay-toggle-regression] identified renderer layer-resolution bug risk under shared renderer process (process.argv preload arg drift); fixed resolvePlatformInfo to prioritize per-window ?layer= query, added regression test, verified bun test src/renderer/error-recovery.test.ts + bun run build.
  • [2026-02-22T07:45:58Z] [codex-overlay-toggle-regression-20260222T073450Z-q7m4|codex-overlay-toggle-regression] added explicit overlay BrowserWindow sandbox guard (webPreferences.sandbox=false) to avoid preload API break on newer Electron defaults; added regression test src/core/services/overlay-window-config.test.ts; verified focused tests + build green.

2026-02-22

  • [2026-02-22T08:04:10Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] starting feature: port intro skip to AniSkip API in plugin/subminer.lua with chapter markers + in-range OSD skip button; scoped to mpv plugin/docs only.

  • [2026-02-22T08:05:38Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] implemented AniSkip OP lookup + chapter markers + in-range OSD skip prompt/key in plugin/subminer.lua; updated plugin conf/docs; syntax check luac -p plugin/subminer.lua passed.

  • [2026-02-22T08:13:40Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] follow-up applied: launcher now runs guessit for file playback and passes AniSkip title/season/episode script-opts (fallback title from filename), and intro hint now displays for first 3s from intro start (You can skip by pressing y-k).

  • [2026-02-22T09:25:57Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] bugfix follow-up: y-k now always bound as fallback intro-skip key regardless custom key config; skip handler now emits OSD reason when unavailable/outside intro window to aid diagnosis.

  • [2026-02-22T09:30:27Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] diagnostics follow-up: plugin now logs AniSkip query context + MAL lookup query + resolved MAL id + AniSkip URL to help debug wrong-season resolution.

  • [2026-02-22T09:33:22Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] season-mismatch mitigation: MAL lookup now ranks prefix-search candidates by title overlap + season signal, logs selected candidate name/id/score before AniSkip query.

  • [2026-02-22T09:36:05Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] tightened MAL resolver scoring and added low-confidence rejection (<35) so unrelated matches are skipped instead of used.

  • [2026-02-22T09:40:09Z] [codex-docs-review-20260222T094009Z-g8p2|codex-docs-review] starting docs review/update pass for README + docs pages; scope docs-only consistency fixes against current scripts/config/features.

  • [2026-02-22T09:43:52Z] [codex-docs-review-20260222T094009Z-g8p2|codex-docs-review] completed docs review/update pass: removed stale guardrail docs, fixed DevTools shortcut docs, added guessit guidance for AniSkip metadata quality, verified bun run docs:build passes.

  • [2026-02-22T09:42:00Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] added AniSkip MAL fallback title attempts to recover from guessit title mismatches while preserving season/episode hints.

  • [2026-02-22T10:04:20Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] launcher metadata fix: prefer guessit series for AniSkip title and fallback to show-directory extraction (.../<Show>/Season-*) instead of episode filename title.

  • [2026-02-22T10:10:30Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] plugin hardening: path-derived show title now prioritized over script-opt title for AniSkip lookups, reducing dependence on launcher metadata correctness.

  • [2026-02-22T10:14:40Z] [codex-aniskip-intro-skip-20260222T080257Z-51fx|codex-aniskip-intro-skip] simplified MAL resolution policy to first-result selection (no score/reject) per user preference.

  • [2026-02-22T19:41:00Z] [codex-discord-presence-task-20260222T194048Z-d7k2|codex-discord-presence-task] created TASK-109 for optional Discord Rich Presence integration with polished activity card UI; no code/runtime changes in this pass.

  • [2026-02-22T19:46:00Z] [codex-task108-aniskip-20260222T194600Z-qgdt|codex-task108-aniskip] starting TASK-108 closure pass via Backlog MCP + writing-plans/executing-plans; validating plugin/docs behavior and finalizing AC/DoD evidence.

  • [2026-02-22T19:49:30Z] [codex-task108-aniskip-20260222T194600Z-qgdt|codex-task108-aniskip] completed TASK-108 closure: wrote plan artifact, revalidated plugin/docs AC coverage, ran validation suite (luac + launcher tests pass), finalized backlog task as Done; tsc --noEmit still fails on unrelated pre-existing src/anki-integration/note-update-workflow.test.ts errors.

  • [2026-02-22T19:47:35Z] [opencode-task105-unsafe-casts-20260222T194704Z-zfcm|opencode-task105-unsafe-casts] starting TASK-105 via Backlog MCP + writing-plans/executing-plans; scope runtime cast elimination in src/main.ts + src/main/runtime/*, no commit.

  • [2026-02-22T19:47:08Z] [codex-task104-launcher-config-20260222T194708Z-z9x1|codex-task104-launcher-config] starting TASK-104 via Backlog MCP + writing-plans/executing-plans; scope launcher config module extraction + focused tests + launcher lanes validation.

  • [2026-02-22T19:56:26Z] [codex-task104-launcher-config-20260222T194708Z-z9x1|codex-task104-launcher-config] completed TASK-104: split launcher/config.ts into domain modules + CLI builder/normalizer, added focused parser tests, aligned Jellyfin config reader contract (no token/userId fields), and verified test:launcher + test:fast; backlog task marked Done.

  • [2026-02-22T19:51:09Z] [opencode-task106-immersion-modules-20260222T195109Z-r3m7|opencode-task106-immersion-modules] starting TASK-106 via Backlog MCP + writing-plans/executing-plans; scope immersion tracker storage/session/metadata decomposition + focused tests + architecture docs update, no commit.

  • [2026-02-22T19:54:23Z] [codex-task105-sliceb-20260222T195423Z-w8n3|codex-task105-sliceb] overlap note: executing user-requested TASK-105 slice B in targeted runtime cast-removal files (src/main/runtime/*-main-deps.ts, jellyfin/mpv runtime helpers) while preserving existing TASK-105 planning artifacts.

  • [2026-02-22T19:59:42Z] [codex-task105-sliceb-20260222T195423Z-w8n3|codex-task105-sliceb] completed requested slice B: removed unsafe casts in targeted runtime modules, tightened contracts with shared runtime types (CliCommandContextFactoryDeps, TokenizerDepsRuntimeOptions, overlay options deps), and verified via focused runtime test suite (16 pass, 0 fail).

  • [2026-02-22T20:02:06Z] [codex-task105-sliceb-20260222T195423Z-w8n3|codex-task105-sliceb] follow-up typing fallout pass: updated focused runtime tests for stricter contract shapes (texthooker/anilist/mpv/jellyfin/tokenizer stubs) and revalidated same 8-file suite green.

  • [2026-02-22T20:01:45Z] [opencode-task106-immersion-modules-20260222T195109Z-r3m7|opencode-task106-immersion-modules] completed TASK-106 implementation scope: extracted storage.ts, session.ts, metadata.ts; reduced immersion-tracker-service.ts to 654 LOC facade; added focused tests (storage-session.test.ts, metadata.test.ts); tracker/core source tests green. Task finalization blocked on AC#4 build gate due unrelated pre-existing TS errors in src/anki-integration/* and src/main/runtime/*.

  • [2026-02-22T21:58:45Z] [opencode-task106-immersion-modules-20260222T195109Z-r3m7|opencode-task106-immersion-modules] blocker cleared; reran bun run build + tracker tests + test:core:src green; finalized TASK-106 to Done in Backlog with final summary.

  • [2026-02-22T21:54:29Z] [codex-ts-build-errors-20260222T215411Z-h3k7|codex-ts-build-errors] overlap note: touching src/main/runtime/* and src/anki-integration/note-update-workflow.test.ts for strict-typing fallout fixes after TASK-105 slice-B contract tightening; scope limited to compile-error remediation + test stub alignment.

  • [2026-02-22T21:55:54Z] [codex-ts-build-errors-20260222T215411Z-h3k7|codex-ts-build-errors] completed compile-fix pass: widened note-update-workflow.test.ts harness deps to NoteUpdateWorkflowDeps, aligned stub callback signatures, and verified bun run tsc --noEmit + make build green.

  • [2026-02-22T21:56:30Z] [opencode-task105-unsafe-casts-20260222T194704Z-zfcm|opencode-task105-unsafe-casts] finalized TASK-105: re-ran bun run build after compile-fix pass (green), confirmed cast scan 42->0 in scope, and moved backlog task to Done with AC/DoD + final summary.

  • [2026-02-22T22:06:20Z] [codex-task109-discord-presence-20260222T220537Z-lkfv|codex-task109-discord-presence] starting TASK-109 via Backlog MCP + writing-plans/executing-plans workflow; scope Discord Rich Presence config/runtime/docs/tests, no commit.

  • [2026-02-22T22:36:40Z] [codex-task109-discord-presence-20260222T220537Z-lkfv|codex-task109-discord-presence] implemented Discord presence config/service/runtime/docs slices with focused tests + docs build green; full build gate blocked by pre-existing src/main.ts duplicate import/symbol errors outside TASK-109 scope.

  • [2026-02-22T22:04:41Z] [codex-task103-jellyfin-main-composer-20260222T220441Z-m8p1|codex-task103-jellyfin-main-composer] starting TASK-103 via Backlog MCP + writing-plans/executing-plans workflow; scope jellyfin wiring extraction from src/main.ts into runtime composer modules + focused tests, no commit.

  • [2026-02-22T22:39:40Z] [codex-task103-jellyfin-main-composer-20260222T220441Z-m8p1|codex-task103-jellyfin-main-composer] TASK-103 implementation pass done: added jellyfin-runtime-composer + seam test, rewired src/main.ts Jellyfin block to single composer invocation, updated architecture docs, and validated focused composer tests + check:main-fanin + test:core:src; bun run build blocked by pre-existing duplicate/invalid import state already present in src/main.ts.

  • [2026-02-22T22:49:30Z] [codex-task103-jellyfin-main-composer-20260222T220441Z-m8p1|codex-task103-jellyfin-main-composer] closure: user fixed prior build blocker; reran required TASK-103 gates (bun run build, bun run test:core:src, bun run check:main-fanin) all pass and finalized TASK-103 to Done in Backlog.

  • [2026-02-22T22:10:10Z] [codex-kiku-modal-overlay-20260222T220502Z-r4m1|codex-kiku-modal-overlay] overlap note: touching src/core/services/field-grouping-overlay.ts + tests to fix Kiku modal auto-shown visible overlay restore when modal closes.

  • [2026-02-22T22:07:38Z] [codex-kiku-modal-overlay-20260222T220502Z-r4m1|codex-kiku-modal-overlay] completed fix: synchronized visible-overlay state when Kiku request opens via external sender; added regression test for hidden->open->resolve->hidden visibility restoration; focused field-grouping/overlay tests passing.

  • [2026-02-22T22:11:52Z] [opencode-task103-jellyfin-main-composer-20260222T221152Z-n3p7|opencode-task103-jellyfin-main-composer] overlap note: implementing user-requested TASK-103 extraction in src/main.ts, src/main/runtime/composers/jellyfin-*.ts, composer tests, and docs/architecture.md; coordinating with active codex-task103-... session to avoid clobber.

2026-02-23

  • [2026-02-23T01:10:27Z] [opencode-task109-discord-presence-20260223T011027Z-j9r4|opencode-task109-discord-presence] starting TASK-109 closure pass via Backlog MCP + writing-plans/executing-plans; scope validate existing Discord config/runtime/docs changes, close remaining DoD evidence, and finalize task status if gates pass.
  • [2026-02-23T01:15:39Z] [opencode-task109-discord-presence-20260223T011027Z-j9r4|opencode-task109-discord-presence] user feedback from real Discord session: status resumed to Playing with noticeable delay; tuned default discordPresence.updateIntervalMs from 15000 to 3000 in defaults/docs/examples and updated focused config expectations; reran focused config + discord presence tests green.