[2026-09-27] eagle: personal/plans/music-artist-albumartist-repair.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-27 19:58:42 +06:00
1 parent e9c2135642
commit 4803fc9881
2 files changed
+151 -3

No files matched your search

+14 -2
View File
@@ -23,14 +23,26 @@ related:
# Music Tags Repair — TrueNAS (7906 → 7905 файлов)
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, конец сессии 9) — ЧИТАЙ ЭТО ПЕРВЫМ
> ## 🔴 АКТУАЛЬНОЕ СОСТОЯНИЕ (2026-09-27, сессия 28) — ЧИТАЙ ЭТО ПЕРВЫМ
>
> ⚠️ **НОВОЕ (сессия 28): детектор «файл в корне папки артиста» сравнивал на РАВЕНСТВО
> и терял папки-огрызки.** `'Руки'` ≠ `'Руки Вверх'` → `!Retro/Руки` (8 файлов) и
> `!Pop, Club, Любэ/Руки вверх` (2) **выпадали из выборки целиком**. Фикс — нормализованное
> **ВХОЖДЕНИЕ** (`nleaf in nartist or nartist in nleaf`). Результат: **225 → 1133 файла**
> (`RULE-CHECK.csv` → `RULE-CHECK-v2.csv`, 60 → 169 папок). Подробно —
> [[personal/plans/music-artist-albumartist-repair]] § СЕССИЯ 28.
>
> 🔑 **МЕТОД-УРОК (повторяется 3-й раз):** при сопоставлении имени папки с именем артиста
> **НИКОГДА не сравнивать на равенство** — только `norm()` + вхождение в обе стороны.
> Иначе теряются ровно те случаи, ради которых правило писалось (папка-огрызок,
> `Забугр`/`Забугор`, разный регистр, `Руки`/`Руки Вверх`).
>
> **Этот файл — исторический лог волны 38 (завершена). Актуальная работа идёт здесь:**
>
> | Документ | О чём |
> |---|---|
> | **[[personal/plans/tagwriter-container]]** | ⭐ скрипт-писатель `apply_tags_v2.py` (566 стр): логика полей, ID3v1-снос, тесты, 18 питфоллов, запуск |
> | **[[personal/plans/music-artist-albumartist-repair]]** | ⭐ **правила формирования плана, `APPLY-PLAN.csv`, дифф `DIFF-new-vs-38.csv`, сессии 1-9** |
> | **[[personal/plans/music-artist-albumartist-repair]]** | ⭐ **правила формирования плана, `APPLY-PLAN.csv`, диффы, сессии 1-28** |
> | **[[personal/tech/music-broken-toload]]** | 29 битых/DRM файлов на перезагрузку |
>
> **Состояние:** план `APPLY-PLAN.csv` доведён до **0 пустых полей** и проверенного диффа