Commit Graph

92 Commits

Author SHA1 Message Date
sudacode 08dc8871d3 fix: retry transient AniList safeStorage failures 2026-05-04 00:06:27 -07:00
sudacode 402b58385d fix: suppress known highlights for subtitle particles 2026-05-04 00:06:27 -07:00
sudacode b8dc5db14a fix: stop AniList setup reopening on Linux when keyring token exists
- Gate setup success on token persistence: `saveToken` now returns `boolean`; on failure, keeps the setup window open instead of reporting success
- Config reload passes `allowSetupPrompt: false` so playback reloads don't re-open the setup window
- Add regression test for persistence-failure path
2026-05-04 00:06:27 -07:00
sudacode 47161cd8a5 fix: address PR #57 CodeRabbit feedback
- Acquire AniList post-watch in-flight lock before async gating to prevent duplicate writes
- Isolate manual watched mark result from AniList post-watch callback failures
- Report known-word cache clears as mutations during immediate append when state existed
- Add regression tests for each fix
2026-05-04 00:06:27 -07:00
sudacode 9bcea2fc5f fix: preserve known highlighting for filtered tokens 2026-05-04 00:06:27 -07:00
sudacode 00a94d6bd1 fix: preserve ordinal frequency annotations 2026-05-04 00:06:27 -07:00
sudacode 69d5cc7557 fix: sync AniList after seeked completion 2026-05-04 00:06:27 -07:00
sudacode b245ca642d Fix JLPT underline color drift and AniList skipped-threshold sync
- Replace JLPT `text-decoration` underlines with `border-bottom` so Chromium selection/hover cannot repaint them to another annotation's color
- Lock JLPT underline color for combined annotation selectors (known, n+1, frequency) and character hover/selection states
- Trigger AniList post-watch check on every mpv time-position update to catch skipped completion thresholds
- Fall back to filename-parser season/episode when guessit omits them
2026-05-04 00:06:27 -07:00
sudacode cd057d1a4f fix: keep subtitle prefetch alive after cache hits 2026-05-04 00:06:27 -07:00
sudacode 6b9cb13b07 fix: restore stats daemon deferral 2026-05-04 00:06:27 -07:00
sudacode a9c3a5e679 Preserve overlay across macOS flaps and mpv playlist changes
- keep visible overlays alive during transient macOS tracker loss
- reuse the running mpv overlay path on playlist navigation
- update regression coverage and changelog fragments
2026-05-04 00:06:27 -07:00
sudacode b926f97578 fix: CI changelog, annotation options threading, and Jellyfin quit
- Add `type: fixed` / `area:` frontmatter to `changes/319` to pass `changelog:lint`
- Thread `TokenizerAnnotationOptions` through `stripSubtitleAnnotationMetadata` so `sourceText` is honored
- Include `jellyfinPlay` in `shouldQuitOnDisconnectWhenOverlayRuntimeInitialized` predicate
- Make mouse test `elementFromPoint` stubs coordinate-sensitive
- Make Lua test `.tmp` mkdir portable on Windows
2026-05-04 00:06:27 -07:00
sudacode a9625f8777 Replace grammar-ending permutations with shared matcher; preserve word a
- Extract `grammar-ending.ts` with `isStandaloneGrammarEndingText` / `isSubtitleGrammarEndingText` pattern matchers
- Replace `STANDALONE_GRAMMAR_ENDINGS` set in parser-selection-stage with shared matcher
- Replace generated phrase sets in subtitle-annotation-filter with shared matcher
- Remove stale duplicate subtitle-exclusion constants and helpers from annotation-stage
- Manual clipboard card updates now write only to the sentence audio field, leaving word/expression audio untouched
2026-05-04 00:06:27 -07:00
sudacode f83005bf70 fix: preserve jlpt underline color after lookup 2026-05-04 00:06:27 -07:00
sudacode 508f243d76 fix: suppress sigh interjection annotations 2026-05-04 00:06:27 -07:00
sudacode f96467a1d6 fix: refresh current subtitle after known-word mining 2026-05-04 00:06:27 -07:00
sudacode 6607b06437 Fix managed playback exit and tokenizer grammar splits
- Ignore background stats daemons during regular app startup
- Split standalone grammar endings before applying annotations
- Clear helper-span annotations for auxiliary-only tokens
2026-05-04 00:06:27 -07:00
sudacode 55ec191db5 Suppress subtitle annotations for grammar fragments
- Hide annotation metadata for auxiliary inflection and ja-nai endings
- Preserve lexical `くれる` forms and add regression coverage
2026-05-04 00:06:27 -07:00
sudacode 424ff991c4 fix: accept modified digits for multi-line sentence mining 2026-05-04 00:06:27 -07:00
sudacode cca68af2b7 fix: refresh overlay on Hyprland fullscreen 2026-05-04 00:06:27 -07:00
sudacode 8dd63d69a2 fix: exclude kana-only n+1 targets 2026-05-04 00:06:27 -07:00
sudacode 9042edf68a fix: restore jlpt subtitle underlines 2026-05-04 00:06:27 -07:00
sudacode 8217d052e9 fix(tokenizer): preserve annotation and enrichment behavior 2026-05-04 00:06:27 -07:00
sudacode 30712738dc Fix Yomitan popup shortcut precedence in keyboard-only mode (#61) 2026-05-04 00:06:06 -07:00
sudacode 0915b23dc8 Persist stats exclusions in DB and fix word metrics filtering (#60) 2026-05-03 20:06:13 -07:00
sudacode db30c61327 [codex] Fix Jellyfin setup and discovery toggle (#59) 2026-05-02 19:56:10 -07:00
sudacode 27f5b2bb58 Polish changelog fragments with claude -p at release time
- Replace `renderGroupedChanges` with `polishFragmentsWithClaude` that pipes fragments through `claude -p --model sonnet` to merge related items, drop housekeeping noise, and produce user-facing release notes
- Internal fragments kept in CHANGELOG.md under a `<details>` collapse; dropped from GitHub release notes entirely
- CI no longer auto-runs `changelog:build` on tag-based releases — fails fast with a clear error if `changes/*.md` fragments are still pending; build locally and commit before tagging
- Add `runClaude` dep-injection seam to test surface; add failure-mode coverage (missing binary, empty output, missing headers, missing `<details>` wrapper)
- Delete implemented design doc; update `changes/README.md` and `docs/RELEASING.md` with claude CLI prerequisite and new workflow
2026-05-02 19:52:48 -07:00
sudacode 3a67e23bc3 feat: open texthooker from cli and tray 2026-05-02 19:37:44 -07:00
sudacode 13e2b5f8c8 Handle mpv reload buffering as same media
- Keep overlay alive across same-media mpv reloads
- Avoid rearming startup gate and repeating AniSkip lookups
- Add regression coverage for reload/end-file/file-loaded sequence
2026-05-02 15:42:54 -07:00
sudacode 53aa58d044 Route stats background mode through isolated daemon and defer in-app startup to live daemon (#58) 2026-04-26 19:26:01 -07:00
sudacode d8934647a9 Restore multi-copy digit capture and add AniList selection (#56) 2026-04-25 21:44:55 -07:00
sudacode 7ac51cd5e9 chore(release): prepare v0.12.0 2026-04-11 21:54:00 -07:00
sudacode 52bab1d611 Windows update (#49) 2026-04-11 21:45:52 -07:00
sudacode c1c40c8d40 fix(immersion-tracker): preserve timestamps under Bun libsql 2026-04-11 14:49:54 -07:00
sudacode c71482cb44 fix(mpv-plugin): restore Lua parser compatibility 2026-04-11 14:49:46 -07:00
sudacode 05cf4a6fe5 feat(stats): dashboard updates (#50) 2026-04-10 02:46:50 -07:00
sudacode 9b4de93283 chore(release): prepare v0.11.2 2026-04-07 01:23:18 -07:00
sudacode de4f3efa30 docs: add mpv.launchMode to config docs, add changelog:docs generator, format
- Document the new mpv.launchMode option in the configuration docs page
- Add changelog:docs command to auto-generate docs-site/changelog.md from root CHANGELOG.md
- Add breaking changes support to the changelog fragment generator
- Fix docs-sync test to only compare current minor release headings
- Apply prettier formatting to source files
2026-04-07 01:06:43 -07:00
Autumn (Bee) bc7dde3b02 [codex] Replace mpv fullscreen toggle with launch mode config (#48)
Co-authored-by: bee <autumn@skerritt.blog>
2026-04-07 00:38:15 -07:00
Autumn (Bee) 5f3c3871d3 [codex] Prefer unlabeled external sidecars for local playback (#46)
Co-authored-by: bee <autumn@skerritt.blog>
2026-04-05 22:07:56 -07:00
sudacode 4d24e22bb5 fix: force X11 mpv fallback for launcher-managed playback (#47) 2026-04-05 15:32:45 -07:00
sudacode c47cfb52af [codex] Fix Linux AppImage libffmpeg child-process startup (#45) 2026-04-05 15:22:57 -07:00
sudacode a784091ecb chore(release): finalize v0.11.1 prep 2026-04-04 00:45:47 -07:00
sudacode ce76a75630 chore: prep 0.11.1 release 2026-04-04 00:22:05 -07:00
sudacode 52249db5b4 fix: restore linux modal shortcuts 2026-04-04 00:14:53 -07:00
sudacode 0edd566904 chore(release): prepare v0.11.0 2026-04-03 22:32:57 -07:00
sudacode 6eb1b0f197 chore(config): update fresh-install defaults 2026-04-03 22:22:46 -07:00
sudacode 864f4124ae chore(deps): patch high severity audit findings 2026-04-03 21:53:34 -07:00
sudacode 7514985feb [codex] Make Windows mpv shortcut self-contained (#40) 2026-04-03 21:35:18 -07:00
sudacode d6c72806bb feat: streamline Kiku duplicate grouping and popup flow (#38) 2026-04-01 00:04:03 -07:00