Commit Graph

90 Commits

Author SHA1 Message Date
420b985c7a refactor(launcher): split config parser and CLI builder
Decompose launcher/config.ts into focused domain parser and CLI normalization modules to reduce refactor risk while preserving command behavior. Align Jellyfin launcher config with session-based auth by dropping config token/userId dependency.
2026-02-22 12:01:04 -08:00
82a9d83820 docs: finalize TASK-108 AniSkip closure evidence 2026-02-22 11:50:44 -08:00
c480fe6ad4 update docs 2026-02-22 02:15:12 -08:00
f6e7dd496a feat(plugin): add AniSkip intro skip flow with launcher metadata hints 2026-02-22 02:14:37 -08:00
26c031aea8 Fix overlay toggle regression TASK-7 2026-02-21 23:47:34 -08:00
44c7b05f96 update docs and deps 2026-02-21 23:31:09 -08:00
01f01f18e3 feat(subtitles): improve mpv hovered-token highlighting flow
- add subtitleStyle.hoverTokenColor config default + validation

- normalize hover color payloads and propagate configured color to mpv runtime

- refresh invisible overlay tokenization with current subtitle text and tighten hover overlay cleanup hooks

- record TASK-98 and subagent coordination updates
2026-02-21 22:30:28 -08:00
ace809b575 chore(cleanup): prune dead code after refactors 2026-02-21 21:32:14 -08:00
704e664cc3 refactor(guardrails): add hotspot budgets and runtime cycle checks 2026-02-21 21:32:14 -08:00
47301d7492 docs(architecture): consolidate canonical docs and archive roadmap noise 2026-02-21 21:32:14 -08:00
4ad8109508 fix(shortcuts): gate feature-dependent bindings
Disable Anki-dependent shortcuts when AnkiConnect is off and require jellyfin.enabled for remote startup warmups to avoid initializing disabled integrations.
2026-02-21 21:32:14 -08:00
c749430c77 refactor(launcher): split CLI flow into command modules
Isolate process-side effects behind adapter seams and keep wrapper behavior stable while improving command-level testability.
2026-02-21 21:32:14 -08:00
05be13be9e refactor(ipc): centralize contracts and validate payloads 2026-02-21 21:32:14 -08:00
2a5830c4c5 test(launcher): add e2e smoke suite and CI gates 2026-02-21 21:32:14 -08:00
16b8d80498 chore(backlog): capture task planning and subagent handoffs 2026-02-21 21:32:14 -08:00
ebec472daf refactor(config): modularize config definition ownership by domain
Split config defaults, option metadata, runtime-option registry, and template sections into domain modules while preserving the composed public API in definitions.ts. This keeps ConfigService behavior stable and makes future config extensions easier to add with focused regression coverage.
2026-02-21 21:31:52 -08:00
631e0450b1 refactor(main): introduce explicit AniList runtime transitions 2026-02-21 21:27:31 -08:00
7a869ad291 fix(config): enforce strict startup config parsing 2026-02-21 21:27:31 -08:00
b71a1a3d29 refactor(tokenizer): split pipeline into explicit stages 2026-02-21 21:27:31 -08:00
7e1a7df403 perf(main): buffer MPV OSD log writes asynchronously
Move OSD log appends off sync fs calls to reduce main-process blocking under frequent OSD activity. Add buffered flush wiring into quit cleanup so pending log lines are drained best-effort during shutdown.
2026-02-21 21:27:31 -08:00
10b94ce889 refactor(config): slim resolver facade and expand regression lanes
Collapse src/config/resolve.ts into an orchestrated pipeline over domain modules, wire launcher regression coverage into test scripts, and sync backlog/subagent tracking artifacts for completed TASK-74/TASK-96/TASK-98 follow-up planning.
2026-02-21 21:27:31 -08:00
2b77ab2406 refactor(launcher): consolidate mpv socket readiness primitive 2026-02-21 21:27:31 -08:00
5cb0ee1591 refactor(anki): extract workflow services from integration facade
Split note-update and field-grouping orchestration out of AnkiIntegration so the facade remains focused on composition and shared policy wiring. This keeps mining behavior stable while creating focused workflow seams with dedicated regression coverage and clearer ownership docs.
2026-02-21 21:27:31 -08:00
69474c9642 refactor(main): normalize runtime composer contracts 2026-02-21 21:27:31 -08:00
c8c7f46a16 chore(task-85): finalize closure tracking and launcher path enforcement 2026-02-21 21:27:30 -08:00
f8db9e7119 refactor(main): extract anilist/mpv runtime composers 2026-02-21 21:21:44 -08:00
4fc34ec787 refactor(main): add runtime domain registry and fan-in guardrails
Introduce runtime domain barrel exports and registry composition support, and document/check main runtime fan-in workflow with related backlog planning artifacts.
2026-02-21 21:21:44 -08:00
23b88bf20e refactor(main): finish TASK-94 composition-root extraction
Move IPC, shortcuts, startup lifecycle, and app-ready assembly behind dedicated runtime composers so main.ts stays focused on boot wiring while preserving behavior and test coverage.
2026-02-21 21:21:44 -08:00
8ad8ff1671 refactor(main): extract jellyfin and anilist runtime composers 2026-02-21 21:19:50 -08:00
b271a3b1a9 refactor(core): decompose remaining oversized hotspots with seam coverage
# Conflicts:
#	src/config/service.ts
2026-02-21 21:18:37 -08:00
ab1d5f19fd chore: commit unstaged workspace changes 2026-02-21 02:32:00 -08:00
1c424b4a0b fix(logging): suppress mpv connect-request info log spam 2026-02-20 20:45:33 -08:00
8ac3d517fe feat(jellyfin): move auth to env and stored session 2026-02-20 20:37:21 -08:00
28d2da1e64 chore(task-85): update launcher workflow and backlog tracking 2026-02-20 03:57:20 -08:00
197636aabe update readme/docs 2026-02-20 03:39:09 -08:00
46a2ac5dc7 feat(jellyfin): store access token in encrypted local store 2026-02-20 03:26:37 -08:00
ad2652b21a ci: bundle config example in release assets 2026-02-20 01:34:57 -08:00
8c2d82e361 feat(subtitles): add line-break display toggle and narrow-space normalization 2026-02-19 22:50:27 -08:00
bc75a0cfbd fix: update default subtitle background color 2026-02-19 21:46:25 -08:00
162be118e1 refactor(main): modularize runtime and harden anilist setup flow 2026-02-19 16:04:59 -08:00
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
9384d67b8e chore(workflow): sync backlog state and subagent coordination
Capture backlog task lifecycle updates, archive TASK-34, and add planning artifacts for recent config work. Update docs sweep scripts and AGENTS guidance to use sharded docs/subagents coordination metadata.
2026-02-19 00:49:23 -08:00
9e6d039a32 fix(anki): fix Lapis sentence-card fields to defaults
Remove configurable isLapis sentence/audio field overrides so sentence cards always map to Sentence and SentenceAudio. Update types and docs to reflect the simplified config surface.
2026-02-19 00:48:02 -08:00
209ab73a31 fix(renderer): add recovery boundary and normalize macOS tray icon 2026-02-18 22:59:15 -08:00
kyasuda
f299f2a19e chore: switch texthooker-ui workflow to pnpm and add backlog tasks 2026-02-18 18:05:42 -08:00
ebaed49f76 feat: improve background startup and launcher control
Detach --background launches from terminals with quieter runtime output, make wrapper/plugin overlay start explicit, and allow trailing commas in JSONC configs for safer hot-reload edits. Includes pending Anki/docs/backlog updates in this unreleased batch.
2026-02-18 02:28:53 -08:00
4703b995da feat(config): hot-reload safe config updates and document behavior 2026-02-18 02:28:53 -08:00
fd49e73762 Add MPV overlay queue controls 2026-02-18 01:55:01 -08:00
f20d019c11 pretty 2026-02-17 22:54:09 -08:00
a531527e1f chore(backlog): sync task metadata and finalize jellyfin task states 2026-02-17 20:34:45 -08:00