Skip to content

fix: handle stale metadata, narrator mismatch, and re-tag/re-merge support#21

Open
pdugan20 wants to merge 1 commit into
mainfrom
fix/metadata-narrator-retag
Open

fix: handle stale metadata, narrator mismatch, and re-tag/re-merge support#21
pdugan20 wants to merge 1 commit into
mainfrom
fix/metadata-narrator-retag

Conversation

@pdugan20

Copy link
Copy Markdown
Owner

Summary

  • Fix narrator field name mismatch between Chrome extension (narrators[]) and CLI (narrator) - narrator was always undefined
  • Enable re-tagging and re-merging books through the interactive menu (previously blocked once tagged/merged)
  • CLI option overrides (--title, --author, --narrator) now properly override metadata.json values
  • Add --force flag to merge command for overwriting existing M4B files

Test plan

  • All 203 tests pass
  • Typecheck, lint, format all clean
  • Extension validation passes
  • Manual: run npm run dev and verify all books appear in tag/merge menus with status indicators
  • Manual: re-tag a previously tagged book and verify updated metadata
  • Manual: re-merge a previously merged book and verify M4B is replaced
  • Manual: verify narrator field appears in ID3 tags after tagging

The Chrome extension writes `narrators` (plural, string[]) to
metadata.json but the CLI read `narrator` (singular, string), so
the narrator field was always undefined.

Also fix several usability issues that prevented updating metadata:
- CLI option overrides (--title, --author, etc.) were silently
  ignored when metadata.json existed
- Interactive menu hid already-tagged/merged books, blocking re-runs
- Merge command failed on existing M4B with no way to overwrite

Changes:
- Read `narrators[]` array from metadata.json in both MetadataService
  and MergeService, with fallback to legacy `narrator` field
- Apply CLI option overrides on top of metadata.json values
- Show all books in interactive tag/merge menus with status indicators
- Add --force flag to merge command to overwrite existing M4B files
- Auto-force when re-merging via interactive menu
@pdugan20 pdugan20 changed the title Fix stale metadata: narrator mismatch, re-tag/re-merge support fix: handle stale metadata, narrator mismatch, and re-tag/re-merge support May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant