Context
Artists rename. Mandolin Orange became Watchhouse in 2021. Filesystem and DB need to know both names so that:
- Files filed under the old name are findable
- Search by old name resolves to the canonical entity
- New ingests go to the canonical directory automatically
What
When taxis renames an artist (or detects a known alias on import), create a symlink at the old artist directory pointing to the new canonical directory:
```
/library_root/Mandolin Orange -> Watchhouse
```
The symlink is benign for downstream consumers (Plex sees a separate "artist" with no files; harmonia recognizes it as an alias via `artist.toml`).
Track aliases in `artist.toml [aliases]` section:
```toml
[artist]
name = "Watchhouse"
[aliases]
"Mandolin Orange" = "renamed 2021"
```
Same pattern applies to book/audiobook authors when they're known to publish under multiple names (`author.toml [aliases]`).
What this requires
- Sidecar reader/writer (depends on issue: `taxis: TOML sidecar reader/writer`)
- `taxis::import` recognizes the `[aliases]` section and creates the symlink during import
- Scanner recognizes symlinks at the artist root and skips them (don't double-scan)
- `harmonia-db` artist/author tables get an `aliases` JSON column or join table for queryable alias resolution
Files
- `crates/taxis/src/import/` (symlink creation logic)
- `crates/taxis/src/scanner/` (skip symlink artists)
- `harmonia-db` migration for aliases storage
- Sidecar schema additions
Acceptance
Reference
Real-world examples: Mandolin Orange → Watchhouse (band rename 2021). Hardcoded in the music migration script's `ARTIST_ALIASES` map at `~/menos-ops/scratch/migrate-music-canonical.py`.
Context
Artists rename. Mandolin Orange became Watchhouse in 2021. Filesystem and DB need to know both names so that:
What
When taxis renames an artist (or detects a known alias on import), create a symlink at the old artist directory pointing to the new canonical directory:
```
/library_root/Mandolin Orange -> Watchhouse
```
The symlink is benign for downstream consumers (Plex sees a separate "artist" with no files; harmonia recognizes it as an alias via `artist.toml`).
Track aliases in `artist.toml [aliases]` section:
```toml
[artist]
name = "Watchhouse"
[aliases]
"Mandolin Orange" = "renamed 2021"
```
Same pattern applies to book/audiobook authors when they're known to publish under multiple names (`author.toml [aliases]`).
What this requires
Files
Acceptance
Reference
Real-world examples: Mandolin Orange → Watchhouse (band rename 2021). Hardcoded in the music migration script's `ARTIST_ALIASES` map at `~/menos-ops/scratch/migrate-music-canonical.py`.