feat(16-03): WriteTrackTags pipeline with player safety, scan mutex, events, and app wiring

- TagWriter struct with WriteTrackTags entry point orchestrating full pipeline
- PlayerStopper interface + playerAdapter for import-cycle-free player safety
- PipelineLocker interface + pipelineMu on Library for scan/write mutual exclusion
- TrackMetadataChanged event constant + auto-generated TypeScript events
- TagWriter wired into app.go as Wails binding with SetContext in OnStartup
- 5 pipeline integration tests: player safety, scan mutex, orphan cleanup, genre relink, full DB sync
- Lint fixes: static error, else-if, wsl cuddle, golines
This commit is contained in:
2026-03-17 10:55:10 -04:00
parent 2966079625
commit 64322f9353
7 changed files with 707 additions and 6 deletions
+3
View File
@@ -47,6 +47,9 @@ export const Events = {
LibraryAdded: "LibraryAdded",
LibraryRenamed: "LibraryRenamed",
LibraryRemoved: "LibraryRemoved",
// Tag writing events
TrackMetadataChanged: "TrackMetadataChanged",
} as const;
export type EventName = (typeof Events)[keyof typeof Events];