Skip to content

feat(metadata): add advanced metadata editing - #137

Merged
flamboh merged 7 commits into
mainfrom
agent/advanced-metadata-editing
Aug 3, 2026
Merged

flamboh merged 7 commits into
mainfrom
agent/advanced-metadata-editing

Conversation

@flamboh

@flamboh flamboh commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • add album artist, disc number, composer, BPM, and comment to Tagium’s canonical metadata model
  • read, write, clear, and preserve those fields losslessly across MP3, FLAC, and M4A/MP4
  • centralize album-to-track metadata linking policy without coupling UI callers to audio formats
  • add a Settings-gated Advanced editor with linked album artist, validation, and accessible error focus
  • preserve sparse pending edits through hydration, write success, and write failure
  • animate the metadata-linking disclosure with reduced-motion support
  • make the normal/advanced control slide like a switch and normalize editor copy to lowercase
  • crossfade the normal and advanced field panes using the settings/editor transition pattern

Why

This rebuild combines the product intent of #122 and #124 on top of the merged multi-format engine from #129. It replaces the old MP3-specific write architecture with format-driver support and keeps format branching behind the existing metadata engine seam.

Replacement

Replaces #122 and #124 as one PR. #119 is already superseded by #129 and is not included.

The implementation was built in two stages (engine/policy, then UI) and passed independent foundation, UI, whole-PR, and targeted data-safety reviews.

Data safety

  • empty advanced text values and null advanced numbers clear their owned tags
  • unknown metadata, alternate comments, APE items, disc totals, and encoded audio bytes are preserved
  • malformed numeric values fail validation rather than being truncated
  • failed writes keep buffered edits intact
  • album sharing remains on its existing basic v1 manifest

Human review

  1. Open Settings → Metadata and toggle metadata linking with the mouse and keyboard. The label-only options and chevron should transition smoothly in both directions, and closed options should not receive focus.
  2. Enable advanced metadata while the disclosure is open. The album-artist linking option should appear without a subtitle; disabling Advanced should hide it without changing the other link settings.
  3. Import a track and switch repeatedly between normal and advanced. One indicator should slide between the labels while the field panes crossfade, placeholders and tooltips should use lowercase copy, and the linked album-artist field should have no visible sync subtitle.
  4. Edit album artist, disc number, composer, BPM, and comments, then switch modes and download. Values should persist, invalid numeric values should reveal and focus their error, and a failed write should retain edits.
  5. As a merge-regression check, start a library or album download. The confirmation dialog added on main should still open and complete normally.

Worth checking: reduced-motion should remove the disclosure, switch, and field-pane transitions; album title remains permanently linked; unlinking a tag makes it track-local while linked tags continue to follow album changes.

The main product tradeoff is deliberate: Advanced controls are hidden by default, but their values and linking choices are retained when Advanced is disabled.

Verification

  • bun run typecheck
  • bun run lint — 0 warnings/errors
  • bun run test — 106 files, 674 tests passed
  • bun run build
  • Impeccable UI detector — 0 findings
  • git diff --check

Playwright/live visual verification was not run because no dev server was already available and project instructions prohibit starting one for this workflow.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
tagium 17ff983 Commit Preview URL

Branch Preview URL
Aug 03 2026, 07:54 PM

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 17ff983.

@flamboh
flamboh force-pushed the agent/advanced-metadata-editing branch from eacbf56 to f1a3d60 Compare July 25, 2026 08:45
@flamboh
flamboh marked this pull request as ready for review August 3, 2026 20:03
@flamboh
flamboh merged commit 7a95176 into main Aug 3, 2026
6 checks passed
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