Files
SubMiner/docs/subagents/agents/codex-main.md
sudacode 58f28b7b55 refactor(config): unify config path resolution across app and launcher
Share config discovery logic between main and launcher so XDG/home and SubMiner/subminer precedence stay consistent. Add regression tests for resolution order and keep config path/show behavior stable.
2026-02-19 01:06:26 -08:00

5.4 KiB

Agent: codex-main

  • alias: planner-exec
  • mission: Unify config path resolution across app + launcher
  • status: handoff
  • branch: main
  • started_at: 2026-02-19T08:06:28Z
  • heartbeat_minutes: 20

Current Work (newest first)

  • [2026-02-19T09:05:26Z] handoff: completed TASK-70 (Done); unified config path resolution into shared src/config/path-resolution.ts, wired app+launcher call sites, added precedence tests, verified build/tests/launcher bundle, and checked AC/DoD in Backlog.
  • [2026-02-19T09:05:26Z] test: bun run build && node --test dist/config/path-resolution.test.js dist/config/config.test.js && bun build ./launcher/main.ts --target=bun --packages=bundle --outfile=/tmp/subminer-task70 -> pass.
  • [2026-02-19T08:57:36Z] progress: plan saved to docs/plans/2026-02-19-task-70-unify-config-path-resolution.md, mirrored to backlog TASK-70 planSet; moving to edit/test execution.
  • [2026-02-19T08:52:23Z] intent: execute TASK-70 by reading full backlog context, writing implementation plan via writing-plans skill, then executing via executing-plans skill with parallel subagents where possible.
  • [2026-02-19T08:41:44Z] handoff: created backlog TASK-84 for config-gated keybindings + disabled-feature integration non-loading (Jellyfin example) with tests/docs acceptance criteria.
  • [2026-02-19T08:41:22Z] intent: create backlog task for config-gated keybindings so disabled features become no-ops and feature modules (example: Jellyfin) are not loaded when disabled.
  • [2026-02-19T08:40:53Z] handoff: completed TASK-83 simplification; removed configurable sentence/audio field overrides for Lapis sentence cards and verified.
  • [2026-02-19T08:40:53Z] test: bun run build && bun run test:config:dist -> pass (33/33).
  • [2026-02-19T08:38:30Z] intent: implement TASK-83 to remove isLapis.sentenceCardSentenceField + isLapis.sentenceCardAudioField from config/types/docs and force fixed Sentence/SentenceAudio in integration.
  • [2026-02-19T08:27:23Z] handoff: completed TASK-69 implementation + verification; backlog TASK-69 set Done with AC/DoD checked.
  • [2026-02-19T08:27:23Z] test: bun run build && bun run test:config:dist -> pass (32/32).
  • [2026-02-19T08:27:23Z] progress: hardened legacy ankiConnect migration mapping with validators + warnings in src/config/service.ts; added invalid/valid legacy regression tests in src/config/config.test.ts; updated migration doc note in docs/configuration.md.
  • [2026-02-19T08:23:30Z] intent: user approved TASK-69 plan; start implementation (tests first, then validated legacy mapping, then verify + backlog updates).
  • [2026-02-19T08:21:11Z] handoff: completed TASK-38 implementation + verification; updated Backlog acceptance checks and notes.
  • [2026-02-19T08:21:11Z] test: bun run build && node --test dist/config/config.test.js dist/core/services/app-ready.test.js -> pass (39/39).
  • [2026-02-19T08:21:11Z] progress: wired strict startup parse failure handling + warning summary + critical validation dialog path in src/main.ts and threaded new app-ready dependency in src/main/app-lifecycle.ts.
  • [2026-02-19T08:20:00Z] intent: read TASK-69 details, write end-to-end implementation plan via writing-plans skill, then execute via executing-plans skill with parallel subagents where possible.
  • [2026-02-19T08:18:47Z] progress: implemented unknown top-level config warning + ankiConnect.openRouter deprecation warning; added coverage in src/config/config.test.ts; verification passed (bun run build && node --test dist/config/config.test.js).
  • [2026-02-19T08:10:40Z] intent: implement TASK-38 plan Task 1 scope (src/config/service.ts, src/config/config.test.ts) for unknown top-level key warnings + ankiConnect.openRouter deprecation warning, then run required build+test command.
  • [2026-02-19T08:09:46Z] progress: wrote plan docs/plans/2026-02-19-task-38-config-validation-startup.md, set TASK-38 In Progress, and stored plan in Backlog.
  • [2026-02-19T08:06:28Z] intent: read backlog/task context, draft implementation plan for TASK-38, then execute with parallel subagents where possible.

Files Touched

  • docs/subagents/INDEX.md
  • docs/subagents/agents/codex-main.md
  • docs/plans/2026-02-19-task-70-unify-config-path-resolution.md
  • src/config/path-resolution.ts
  • src/config/path-resolution.test.ts
  • launcher/main.ts
  • launcher/config.ts
  • src/main.ts
  • package.json
  • backlog/tasks/task-70 - Unify-config-path-resolution-across-main-and-launcher.md
  • backlog/tasks/task-84 - Gate-feature-dependent-keybindings-behind-config-flags.md
  • src/config/service.ts
  • src/config/config.test.ts
  • src/core/services/startup.ts
  • src/core/services/app-ready.test.ts
  • src/main.ts
  • src/main/app-lifecycle.ts
  • docs/plans/2026-02-19-task-38-config-validation-startup.md
  • docs/plans/2026-02-19-task-69-legacy-config-migration-hardening.md
  • docs/configuration.md
  • src/types.ts
  • src/config/definitions.ts
  • src/anki-integration.ts
  • config.example.jsonc
  • docs/public/config.example.jsonc
  • docs/anki-integration.md
  • docs/mining-workflow.md
  • backlog/tasks/task-83 - Simplify-isLapis-sentence-card-field-config-to-fixed-field-names.md
  • backlog/tasks/task-38 - Add-user-friendly-config-validation-errors-on-startup.md

Assumptions

  • AGENT_ID/AGENT_ALIAS env vars are unset; using stable fallback codex-main / planner-exec for this run.

Open Questions / Blockers

  • none

Next Step

  • Await user review; optional next step is commit for TASK-70 changes.