Files
SubMiner/backlog/tasks/task-85 - Add-launcher-dictionary-subcommand-and-initial-AniList-character-dictionary-zip-generation.md

2.7 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
id title status assignee created_date updated_date labels dependencies priority
TASK-85 Add launcher dictionary subcommand and initial AniList character dictionary zip generation Done
2026-03-03 08:47 2026-03-03 08:57
high

Description

Implement initial character dictionary flow: launcher dictionary subcommand, app --dictionary command, AniList media resolution from current playback, Yomitan zip generation to local file, and local cache to avoid repeated API fetches for same AniList id. Manual Yomitan import path only in this phase.

Acceptance Criteria

  • #1 Launcher supports dictionary (and alias) and forwards to app command path.
  • #2 App CLI accepts --dictionary and dispatches to dictionary runtime command.
  • #3 Dictionary command resolves current anime to AniList id, generates Yomitan-compatible zip, and logs output path for manual load.
  • #4 Generated dictionaries are cached by AniList id so repeated commands reuse existing zip when available.
  • #5 Backlog task is updated with implementation notes and completion summary for this phase.

Implementation Notes

Implemented launcher dictionary/dict subcommand parsing and normalized args flow (launcher/config/cli-parser-builder.ts, launcher/config/args-normalizer.ts, launcher/types.ts).

Added launcher command dispatch (launcher/commands/dictionary-command.ts) and wired launcher/main.ts to forward --dictionary (plus non-default --log-level) to app binary.

Added app CLI flag --dictionary in parser/help and startup routing (src/cli/args.ts, src/cli/help.ts).

Added dictionary runtime service (src/main/character-dictionary-runtime.ts) that resolves AniList media id from current playback guess, fetches AniList character edges, builds Yomitan-compatible banks/index, writes zip, and caches by AniList id in user data.

Threaded dictionary generation dependency through CLI runtime/context builders and src/main.ts context composition so command executes from launcher/app entrypoints.

Added/updated tests for parser, command modules, launcher main forwarding, CLI command dispatch, and context/deps wiring. Updated docs for launcher/usage command lists to include dictionary subcommand.

Final Summary

Initial phase shipped: subminer dictionary now routes to SubMiner.AppImage --dictionary, generates a Yomitan-importable character dictionary zip for the current anime (AniList-based), logs zip output path for manual import, and reuses cached zips by AniList id to avoid repeated API fetches.