Files
SubMiner/backlog/tasks/task-140 - Fix-guessit-title-parsing-for-character-dictionary-sync.md
sudacode 48f10dbb03 chore(backlog): maintain task backlog and add changelog fragments
- Move completed tasks (85, 117, 118, 155) to backlog/completed/
- Delete superseded task files (166 verification, 172 drilldown)
- Add stats dashboard milestone m-1
- Add new tasks (190, 194)
- Update task metadata across remaining backlog items
- Add changelog fragments for stats, mpv args, and subtitle filtering
2026-03-18 02:25:07 -07:00

1.7 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority, ordinal
id title status assignee created_date updated_date labels dependencies references priority ordinal
TASK-140 Fix guessit title parsing for character dictionary sync Done
2026-03-09 00:00 2026-03-18 05:28
dictionary
anilist
bug
guessit
/home/sudacode/projects/japanese/SubMiner/src/core/services/anilist/anilist-updater.ts
/home/sudacode/projects/japanese/SubMiner/src/core/services/anilist/anilist-updater.test.ts
high 44500

Description

Fix AniList character dictionary auto-sync for filenames where guessit misparses the full path and our title extraction keeps only the first array segment, causing AniList resolution to match the wrong anime and abort merged dictionary refresh.

Acceptance Criteria

  • #1 AniList media guessing passes basename-only targets to guessit so parent folder names do not corrupt series title detection.
  • #2 Guessit title arrays are combined into one usable title instead of truncating to the first segment.
  • #3 Regression coverage includes the Bunny Girl Senpai filename shape that previously resolved to the wrong AniList entry.
  • #4 Verification confirms the targeted AniList guessing tests pass.

Implementation Notes

Root repro: guessit parsed the Bunny Girl Senpai full path as title: ["Rascal", "Does-not-Dream-of-Bunny-Girl-Senapi"], and our firstString helper kept only Rascal, which resolved to AniList 3490 (rayca) and produced zero character results. Fixed by sending basename-only input to guessit and joining multi-part guessit title arrays.