# Changelog / История изменений

Changes to the SACD ISO Patcher app (`sacd-iso-patcher.exe`). Versioning is
Semantic Versioning (MAJOR.MINOR.PATCH); release dates are not given. Library
source-code changes are in [`CHANGELOG-dev.md`](CHANGELOG-dev.md).

*(Русская версия ниже / Russian version below.)*

---

# English

## 2.4.0

Automatic text-encoding detection for Chinese, Japanese and Korean titles, a
one-click fix for self-made discs with an empty-but-declared text channel, and
correct handling of the Japanese wave dash.

### Added

- Automatic text-encoding detection for CJK titles. When you import a Chinese,
  Japanese or Korean release from Discogs or MusicBrainz, the app determines the
  text encoding the disc needs (Shift-JIS for Japanese, GB or Big5 for Chinese,
  KSC for Korean) and offers to create the matching language channel in one
  click. A character the disc's current encoding cannot store is no longer a
  dead end - it becomes a "create the right channel" action that moves the text
  into a new, correctly-encoded channel.
- Bring self-made discs up to standard. Some SACD-R tools leave a disc declaring
  a text channel that holds no text - a standards violation. Such a disc is now
  flagged when you open it, and one "bring to standard" button rewrites it to a
  conformant state (with a backup first, like every write). The command-line
  version gains a --normalize flag for the same fix, and a failed edit now
  returns a non-zero exit code for scripting.

### Changed

- Online lookup picks the right text channel for imported CJK text automatically
  and writes the titles into it.
- The disc's own region (its ISRC country, or the release country) decides
  Traditional vs Simplified Chinese, instead of an unreliable character-shape
  guess.
- When only one encoding can hold the imported text, it is applied confidently
  without an extra prompt; only a genuinely ambiguous case asks you to choose.
- A Chinese import is named plainly as "Chinese" instead of making a false
  Simplified/Traditional claim.

### Fixed

- The Japanese wave dash "〜" (as in "...〜snow a cappella〜") now encodes and
  imports correctly. Before, it could not be stored in the disc's Shift-JIS
  encoding and blocked saving the track.
- Editing an already-open extra-language tab no longer risks losing unsaved
  edits when a text channel is created or text is moved between tabs.
- A title that no single SACD encoding can hold is reported honestly,
  distinguishing "this character fits no encoding at all" from "every character
  fits some encoding, but not the same one".

## 2.3.0

Better online-lookup title matching, safer catalogue-number import, and new
library-scan filters.

### Added

- Library scan "Show only" filters to find discs that still need work: without
  track titles, without artist, with shouted ALL-CAPS track titles, or without a
  genre. Matching discs are tagged so the list is easy to skim.

### Changed

- Online release lookup (Discogs / MusicBrainz) now matches more of a disc's
  tracks. A title stored with a leading track number ("01 Sleep") matches the
  plain online title ("Sleep"), and a title that differs only by a hyphen or a
  space ("SEA NATURE" vs "Sea-Nature") now matches too. Exact matches are made
  first, so this only adds correct matches - it never changes one that already
  worked.
- Online lookup no longer overwrites a valid disc catalogue number with one an
  SACD cannot store. The catalogue number is limited to plain ASCII by the SACD
  standard, so a value with an accented letter (for example "Ö") cannot go there;
  the lookup keeps the disc's own number and tells you which release value was
  skipped. Album, disc and track titles are unaffected - they may still use
  accented letters.

### Fixed

- Typing a character the catalogue number cannot hold (such as an accented
  letter) now gives a clear explanation - the catalogue number is ASCII-only per
  the SACD standard, while titles may use accented letters - instead of a cryptic
  "charset code" message.

## 2.2.0

Adds a command-line tool, fills the ALBUM ARTIST tag from the disc artist on
single-disc albums, and softens recoverable warnings.

### Added

- Command-line tool (`sacd-iso-patcher-cli.exe`): runs from a terminal, for
  scripting and batch work alongside the app. It shows a disc's metadata,
  extracts audio (DSF / DSDIFF / DST / Edit Master, with track selection and a
  compression mode), edits metadata in place (always backing up first), and looks
  up releases on Discogs / MusicBrainz. English by default; add `--lang ru` for
  Russian. Run `sacd-iso-patcher-cli --help` for the full list with examples.

### Changed

- Extracted files now fill the ALBUM ARTIST tag from the disc-level artist when
  the album-level artist is blank (common on classical SACDs), so players group
  the album correctly. On a multi-disc set the album-level artist still wins, so
  a box set is not split apart.
- A "cannot save" notice you can resolve - such as one with a "repair and retry"
  button - is now shown in calm amber instead of alarming red; red is kept for
  genuine failures only.

### Fixed

- Saving track titles no longer fails with "locale 0 out of range" on a disc
  whose album/disc text exists but whose areas have no per-track text block yet
  (e.g. Hyperion classical releases). The app now creates the per-track text
  block for the language the disc already uses, without adding a stray empty
  extra language.

## 2.1.1

Tidier extraction: every export goes into one album folder, files never
overwrite each other, and player-visible names are clean.

### Changed

- Extraction always creates an album folder named `<Artist> - <Album> (<Year>)`,
  with a separate subfolder per variant (for example `Stereo [DFF-DST]`,
  `Multichannel [Edit Master DST]`). Different layers, formats and codecs no
  longer collide or overwrite each other - re-extracting another format simply
  drops in alongside the rest of the album.
- Track files no longer carry a `.dst` marker in the name (the subfolder shows
  the format instead), so a player displays a clean `01 - Title`.
- The app and the command-line tool now use the same folder layout.

### Added

- On a plain-DSD stereo disc, the Edit Master can now be taken as a compressed
  DST file (lossless, roughly half the size) in addition to the as-is
  uncompressed DSD. Such a disc offers both in the Extract window; a normal DST
  disc keeps its single, verbatim Edit Master.

## 2.1.0

Audio engine rewritten for speed and verified bit-exact; per-area (stereo /
multichannel) editing; almost every disc is now editable; richer online credits.

### Added

**Audio engine rewritten**
- DST decoding (used when extracting tracks) is now fast and multi-threaded, and
  the decoded audio is bit-exact.
- DST re-encoding is lossless and usually a little smaller than the disc (about
  1-2% on average, up to ~6-7% on good recordings; sometimes equal). Four modes,
  all lossless: `max` (best compression, the default), `high`, `fast`, `turbo`
  (fastest). The faster modes give up a little compression, so their files are
  the same size or at most a fraction of a percent larger.
- Verified by a multi-day run over hundreds of tracks: every track bit-exact, and
  lossless across a decode / re-encode round-trip.

**Editing and discs**
- Separate stereo / multichannel editing: when a hybrid disc's two areas differ
  in content (different tracks or titles) they are edited on separate tabs, each
  with its own ISRCs and genres; identical areas keep a single panel.
- Almost every disc is now editable: discs with trailing Area-TOC lists after
  the track-text block, and "bridge" rips zero-padded to full DVD capacity, are
  no longer refused.
- On open, the disc is quietly checked against the spec; any deviation is
  reported calmly. A disc that cannot be safely edited, or will not open at all,
  shows a calm explanation with a contact address instead of a bare failure.
- "Bring disc to standard" button: repairs the mirror copies of the on-disc
  tables and de-aliases shared text strings.
- A per-track field value can be applied to all tracks of an area with one click.

**Metadata**
- Performer credits with instruments from MusicBrainz and Discogs, MusicBrainz-
  style ("Name (instrument); ..."); the `vocalist` and `orchestrator` roles are
  no longer dropped. (Written into the disc's per-track metadata; players that
  read the SACD layer, e.g. foobar2000, show them - the Eversolo library has no
  "Performers" facet.)
- Composer, songwriter and arranger are now pulled per track from MusicBrainz
  and Discogs alongside the performer.
- The chosen release's web URL is shown in the lookup field after a search, so it
  can be copied and opened to double-check the match.

### Changed

- Automatic Title Case is applied only to Latin-script words; other writing
  systems are left untouched.
- When text does not fit the SACD format's fixed maximum (a rare case), the
  refusal now shows a clear localized hint instead of the raw engine message.

## 2.0.0

Major update: the app grew from a simple text-metadata editor into a full tool
for working with SACD images - with its own disc reading and writing, audio
extraction, and online metadata fill-in.

### Added

**Full metadata editing**
- All album and disc text fields: title, artist, publisher, copyright (and their
  phonetic variants).
- Per-track fields: performer, songwriter, composer, arranger, message, extra
  message, copyright (+ phonetic), with one-click "copy to all tracks".
- Catalogue numbers (album and disc separately), release date (year/month/day),
  disc number within a set (disc X of Y).
- Album, disc and per-track genres (up to 4 each) and per-track ISRC.
- Multiple text languages on one disc: add and remove languages (e.g. Japanese),
  Asian encodings and phonetic fields.
- Track titles can be set even on discs that originally carry no text block at
  all - the app safely makes room for them.

**Built-in audio extraction (no external tools)**
- Export tracks to DSF, DFF (DSD), DFF (DST - exact copy) and DSDIFF Edit
  Master.
- Pick the layer (Stereo / multichannel) and individual tracks; progress with an
  estimated time remaining and the ability to cancel.
- Tags (artist/album/title/year, etc.) are embedded into the extracted files.
- The app reads and verifies SACD images entirely on its own.

**Online metadata fill-in**
- Search Discogs or MusicBrainz by catalogue number/barcode or by artist and
  album; fetch by a direct URL/ID (Discogs) or URL/MBID (MusicBrainz).
- Cover-art download; SACD pressings are shown first in the results.
- A Discogs | MusicBrainz source toggle in the window.

**Disc details view**
- A detailed, human-readable breakdown of the disc: areas, tracks, times and
  pauses, flags, per-language text - with switchable time units.

### Changed
- The editor window widens on load so everything fits horizontally without
  scrolling; the date and album-set fields are compact.
- The search field hint depends on the chosen source (Discogs release ID or
  MBID).
- The Extract window no longer closes on an error (missing folder, or a file
  already exists) - it stays open, keeps your selections, and offers to overwrite
  or pick another folder.
- Deleting a backup now moves it to the Recycle Bin instead of erasing it
  permanently.
- About-box text updated.

### Fixed
- The changed-fields counter now accounts for every field (album/disc genre, both
  parts of the album-set number, each date field) and correctly enables the Save
  button.
- Online search uses the catalogue number you entered or corrected (in either
  catalogue field), not only the one stored on the disc.
- Validation of allowed values in the date and album-set fields.
- Many reliability fixes to disc reading/writing and extraction accuracy.

### Data safety
- Before every save, the affected sectors are backed up; restore returns the
  image byte-for-byte. The image is never corrupted: an edit is either fully
  applied or not applied at all.

## 1.2.1
- Minor fixes from review.

## 1.2.0
- Improved backups: a short, safe backup-folder name (`backup_<timestamp>`)
  instead of a long one embedding the image filename (the old one could exceed
  the Windows path-length limit and blocked moving the backup to a NAS/other
  drive); a `README.txt` is now placed next to the backup (source, size, time,
  how to restore). Older long-named backups still restore.
- SACD-format-compliance fixes on write (TOC mirroring, text-block placement
  detection, the re-patch path).

## 1.1.1
- Compatibility and reliability after a thorough audit and an end-to-end test
  across an 8-disc set. No new features. Six issues fixed - five touched on-disc
  text fields only, one was a layout edge case that could in rare cases land a
  write on the wrong area on certain disc layouts. Some discs that produced a
  "disc has errors" notice in third-party SACD tools after a 1.1.0 patch no
  longer do so after 1.1.1. Discs patched with 1.1.0 keep their audio and can be
  safely re-patched with 1.1.1.

## 1.1.0
- A reliability and data-safety hardening pass following a full code review. No
  new features and no change to how the app is used.
- Backup/restore made substantially safer: a corrupted backup is now detected and
  rejected instead of being written back into the disc, and restore can no longer
  truncate the image from a damaged manifest.
- Closed a path where the Discogs token could be forwarded to a non-Discogs host
  through an HTTP redirect.
- Graceful failure on a WebView2 loader problem instead of a silent exit;
  hardened SACD parsing and verification.

## 1.0.2
- Baseline: hand-edit the artist, album and track titles inside a SACD image;
  back up before writing; auto-fill from Discogs.

---

# Русский

## 2.4.0

Автоопределение кодировки для китайских, японских и корейских названий,
исправление в один клик для самодельных дисков с заявленным, но пустым
текстовым каналом, и корректная обработка японского знака волны.

### Добавлено

- Автоопределение кодировки текста для CJK-названий. При импорте китайского,
  японского или корейского релиза из Discogs или MusicBrainz приложение
  определяет нужную диску кодировку (Shift-JIS для японского, GB или Big5 для
  китайского, KSC для корейского) и одной кнопкой предлагает создать подходящий
  языковой канал. Символ, который текущая кодировка диска хранить не может,
  больше не тупик - это становится действием «создать нужный канал», которое
  переносит текст в новый канал с правильной кодировкой.
- Приведение самодельных дисков к стандарту. Некоторые программы авторинга
  SACD-R оставляют диск с заявленным текстовым каналом, в котором нет текста -
  нарушение стандарта. Такой диск теперь помечается при открытии, и одна кнопка
  «привести к стандарту» переписывает его в соответствующее стандарту состояние
  (сначала резервная копия, как при любой записи). В консольной версии для того
  же есть флаг --normalize, а неуспешная правка теперь возвращает ненулевой код
  выхода для скриптов.

### Изменено

- Онлайн-поиск сам выбирает правильный текстовый канал для импортируемого
  CJK-текста и записывает названия в него.
- Традиционный или упрощённый китайский определяется по региону диска (страна
  из ISRC или страна релиза), а не по ненадёжной догадке о начертании символов.
- Когда импортируемый текст помещается лишь в одну кодировку, она применяется
  уверенно, без лишнего вопроса; спрашивается только действительно
  неоднозначный случай.
- Китайский импорт называется просто «китайский», без ложного утверждения
  «упрощённый/традиционный».

### Исправлено

- Японский знак волны «〜» (как в «...〜snow a cappella〜») теперь корректно
  кодируется и импортируется. Раньше его нельзя было сохранить в кодировке
  Shift-JIS диска, и это блокировало сохранение трека.
- Правка уже открытой вкладки дополнительного языка больше не рискует потерять
  несохранённые изменения при создании текстового канала или переносе текста
  между вкладками.
- Название, которое не помещается ни в одну кодировку SACD, теперь честно
  сообщается с различием «этот символ не помещается ни в одну кодировку» и
  «каждый символ помещается в какую-то кодировку, но не в одну общую».

## 2.3.0

Лучше сопоставление названий при онлайн-поиске, безопаснее импорт номера
каталога и новые фильтры сканирования библиотеки.

### Добавлено

- Фильтры сканирования «Показывать только» - чтобы найти диски, которым ещё
  нужна работа: без названий треков, без артиста, с названиями КАПСОМ (только
  треки) или без жанра. Подходящие диски помечаются, чтобы список было легко
  просматривать.

### Изменено

- Онлайн-поиск релиза (Discogs / MusicBrainz) теперь сопоставляет больше треков
  диска. Название с ведущим номером трека («01 Sleep») сопоставляется с простым
  онлайн-названием («Sleep»), а название, отличающееся только дефисом или
  пробелом («SEA NATURE» и «Sea-Nature»), тоже теперь совпадает. Точные
  совпадения ищутся первыми, поэтому это только добавляет верные совпадения и
  никогда не меняет уже работавшее.
- Онлайн-поиск больше не затирает корректный номер каталога диска значением,
  которое невозможно сохранить на SACD. Номер каталога по стандарту SACD - только
  базовая латиница (ASCII), поэтому значение с буквой с диакритикой (например
  «Ö») туда не помещается; поиск оставляет собственный номер диска и сообщает,
  какое значение релиза было пропущено. Названия альбома, диска и треков это не
  затрагивает - в них диакритика по-прежнему допустима.

### Исправлено

- Ввод символа, который не помещается в номер каталога (например буквы с
  диакритикой), теперь даёт понятное пояснение - номер каталога по стандарту SACD
  только в ASCII, тогда как в названиях диакритика допустима - вместо невнятного
  сообщения про «charset code».

## 2.2.0

Добавлена консольная версия (CLI), тег ALBUM ARTIST на одно-дисковых альбомах
заполняется из артиста диска, а исправимые предупреждения больше не пугают
красным.

### Добавлено

- Консольная версия (`sacd-iso-patcher-cli.exe`): запускается из командной строки
  - для скриптов и пакетной работы рядом с приложением. Показывает метаданные
  диска, извлекает аудио (DSF / DSDIFF / DST / Edit Master, с выбором треков и
  режимом сжатия), правит метаданные на месте (всегда сначала делает резервную
  копию) и ищет релизы в Discogs / MusicBrainz. По умолчанию английский; для
  русского добавьте `--lang ru`. Полный список с примерами -
  `sacd-iso-patcher-cli --help`.

### Изменено

- Извлечённые файлы теперь заполняют тег ALBUM ARTIST из артиста уровня диска,
  когда артист уровня альбома пуст (частый случай на классике), чтобы плееры
  правильно группировали альбом. На многодисковом наборе артист уровня альбома
  по-прежнему в приоритете - бокс-сет не разбивается.
- Сообщение «сохранить нельзя», которое можно исправить (например, с кнопкой
  «починить и повторить»), теперь показывается жёлтым, а не тревожным красным;
  красный остаётся только для настоящих сбоев.

### Исправлено

- Сохранение названий треков больше не падает с ошибкой «locale 0 out of range»
  на диске, где текст альбома/диска есть, а потрекового текстового блока в
  областях ещё нет (например, классика Hyperion). Приложение теперь создаёт
  потрековый текстовый блок области для языка, который диск уже использует, не
  добавляя лишний пустой язык.

## 2.1.1

Извлечение стало аккуратнее: каждый экспорт попадает в одну папку альбома, файлы
больше не затирают друг друга, а имена в плеере - чистые.

### Изменено

- Извлечение всегда создаёт папку альбома `<Артист> - <Альбом> (<Год>)`, а внутри
  - отдельную подпапку на каждый вариант (например `Stereo [DFF-DST]`,
  `Multichannel [Edit Master DST]`). Разные области, форматы и кодеки больше не
  сталкиваются и не затирают друг друга - повторное извлечение другого формата
  просто ложится рядом, в ту же папку альбома.
- В имени файла трека больше нет пометки `.dst` (формат виден по имени подпапки),
  поэтому плеер показывает чистое `01 - Название`.
- Приложение и консольный инструмент теперь дают одинаковую раскладку папок.

### Добавлено

- На plain-DSD стерео-диске Edit Master теперь можно взять сжатым в DST (без
  потерь, примерно вдвое меньше) - в дополнение к несжатому DSD «как есть». Такой
  диск предлагает в окне извлечения оба варианта; обычный DST-диск сохраняет свой
  единственный Edit Master (точную копию).

## 2.1.0

Звуковой движок переписан для скорости и сверен бит-в-бит; раздельное
редактирование областей (стерео / многоканальной); редактируется почти любой
диск; больше кредитов из онлайна.

### Добавлено

**Звуковой движок переписан**
- Распаковка DST (нужна при извлечении треков) стала быстрой и работает на всех
  ядрах, а распакованный звук побитово точен.
- Обратная упаковка в DST без потерь и обычно чуть плотнее диска (в среднем на
  1-2%, на удачных записях до ~6-7%, иногда вровень). Четыре режима, все без
  потерь: `max` (максимальное сжатие, по умолчанию), `high`, `fast`, `turbo`
  (самый быстрый). Более быстрые режимы немного уступают в сжатии, поэтому их
  файлы того же или чуть большего размера.
- Проверено многодневным прогоном по сотням треков: каждый трек побитово точен и
  без потерь после распаковки и обратной упаковки.

**Редактирование и диски**
- Раздельное редактирование стерео и многоканальной областей: если на гибридном
  диске их содержимое различается (разные треки или названия), они правятся на
  отдельных вкладках, каждая со своими ISRC и жанрами; одинаковые области - одна
  панель.
- Редактируется почти любой диск: образы со служебными списками после блока
  названий треков и "мостовые" рипы, добитые нулями до полного объёма DVD,
  больше не отклоняются.
- При открытии диск тихо сверяется со стандартом, любое отклонение показывается
  спокойно. Если диск нельзя безопасно отредактировать или он не открывается -
  спокойное окно с объяснением и адресом для связи вместо сухого отказа.
- Кнопка "привести диск к стандарту": чинит зеркальные копии служебных таблиц и
  расклеивает общие строки текста.
- Значение поля трека можно одной кнопкой применить ко всем трекам области.

**Метаданные**
- Кредиты исполнителей с инструментами из MusicBrainz и Discogs в стиле
  MusicBrainz ("Имя (инструмент); ..."); роли вокалиста и оркестровщика больше не
  теряются. (Пишутся в потрековые метаданные диска; их показывают плееры,
  читающие слой SACD, например foobar2000 - в медиатеке Eversolo полки
  "Performers" нет.)
- Композитор, автор и аранжировщик теперь тянутся по каждому треку из MusicBrainz
  и Discogs вместе с исполнителем.
- После поиска в поле показывается ссылка на выбранный релиз - можно скопировать
  и открыть, чтобы проверить совпадение.

### Изменено

- Автоматический регистр в названиях применяется только к латинице; другие
  письменности не трогаются.
- Когда текст не помещается в фиксированный максимум формата SACD (редкий
  случай), отказ показывает понятную подсказку вместо технической строки движка.

## 2.0.0

Крупное обновление: из простого редактора текстовых метаданных приложение
выросло в полноценный инструмент для работы с SACD-образами - со своим чтением
и записью диска, извлечением аудио и онлайн-заполнением метаданных.

### Добавлено

**Полное редактирование метаданных**
- Все текстовые поля альбома и диска: название, исполнитель, издатель, копирайт
  (и их фонетические варианты).
- Поля каждого трека: исполнитель, автор слов, композитор, аранжировщик,
  сообщение, доп. сообщение, копирайт (+ фонетика), с заполнением «во все треки»
  одним нажатием.
- Каталожные номера (альбома и диска по отдельности), дата выпуска (год/месяц/
  день), номер диска в наборе (диск X из Y).
- Жанры альбома, диска и отдельных треков (до 4 на каждый) и ISRC треков.
- Несколько языков текста на одном диске: добавление и удаление языков (например,
  японского), азиатские кодировки и фонетические поля.
- Названия треков можно задать даже на дисках, где изначально нет ни одного
  текстового блока - приложение безопасно создаёт для них место.

**Встроенное извлечение аудио (без внешних программ)**
- Экспорт треков в форматы DSF, DFF (DSD), DFF (DST - точная копия) и DSDIFF
  Edit Master.
- Выбор слоя (Stereo / многоканальный) и отдельных треков; индикатор прогресса с
  оценкой оставшегося времени и возможностью отмены.
- В извлекаемые файлы вписываются теги (исполнитель/альбом/название/год и пр.).
- Приложение читает и проверяет SACD-образы полностью самостоятельно.

**Онлайн-заполнение метаданных**
- Поиск релиза в Discogs или MusicBrainz по каталожному номеру/штрихкоду или по
  исполнителю и альбому; загрузка по прямой ссылке/ID (Discogs) или ссылке/MBID
  (MusicBrainz).
- Скачивание обложки; SACD-издания показываются в результатах первыми.
- Переключатель источника Discogs | MusicBrainz прямо в окне.

**Просмотр сведений о диске**
- Подробный человекочитаемый разбор диска: области, треки, времена и паузы,
  флаги, тексты по языкам - с переключением единиц времени.

### Изменено
- Окно редактора при загрузке образа расширяется, чтобы всё помещалось по
  горизонтали без прокрутки; поля даты и набора дисков сделаны компактными.
- Подсказка строки поиска зависит от выбранного источника (ID релиза Discogs или
  MBID).
- Окно «Извлечь» больше не закрывается при ошибке (не указана папка или файл уже
  существует) - остаётся открытым, сохраняя выбор, и предлагает перезаписать или
  выбрать другую папку.
- Удаление резервной копии теперь отправляет её в Корзину, а не стирает
  безвозвратно.
- Обновлены тексты окна «О программе».

### Исправлено
- Счётчик изменённых полей теперь учитывает все поля (жанр альбома/диска, обе
  части номера набора, каждое поле даты) и корректно включает кнопку
  «Сохранить».
- Онлайн-поиск использует каталожный номер, который вы ввели или исправили (в
  любом из полей каталога), а не только сохранённый на диске.
- Проверка допустимых значений в полях даты и набора дисков.
- Множество исправлений надёжности чтения/записи и точности извлечения.

### Безопасность данных
- Перед каждым сохранением создаётся резервная копия затрагиваемых секторов;
  восстановление возвращает образ байт-в-байт. Образ никогда не повреждается:
  изменение либо применяется полностью, либо не применяется вовсе.

## 1.2.1
- Мелкие исправления по итогам ревью.

## 1.2.0
- Улучшено резервное копирование: короткое безопасное имя папки копии
  (`backup_<метка времени>`) вместо длинного с именем образа (прежнее могло
  превышать ограничение длины пути Windows и мешало переносу копии на NAS/другой
  диск); рядом с копией теперь кладётся `README.txt` (источник, размер, время,
  как восстановить). Старые длинноимённые копии по-прежнему восстанавливаются.
- Исправления соответствия формату SACD при записи (зеркалирование TOC,
  определение размещения текстового блока, путь повторного патча).

## 1.1.1
- Совместимость и надёжность после тщательного аудита и сквозной проверки на
  корпусе из 8 дисков. Без новых функций. Исправлено шесть проблем - пять
  касались только текстовых полей на диске, одна была краевым случаем
  размещения, который в редких случаях мог записать данные не в ту область на
  некоторых раскладках диска. Часть дисков, на которые после правки в 1.1.0
  сторонние SACD-инструменты выдавали «на диске ошибки», после 1.1.1 этого больше
  не вызывают. Диски, исправленные в 1.1.0, сохраняют аудио и безопасно
  переисправляются в 1.1.1.

## 1.1.0
- Проход по упрочнению надёжности и безопасности данных по итогам полного
  код-ревью. Без новых функций и без изменения способа использования.
- Резервное копирование/восстановление стало существенно безопаснее:
  повреждённая копия теперь обнаруживается и отвергается, а не записывается
  обратно на диск; восстановление больше не может обрезать образ из-за
  повреждённого манифеста.
- Закрыт путь, по которому токен Discogs мог уйти на чужой хост через
  HTTP-редирект.
- Корректный отказ при проблеме загрузчика WebView2 вместо тихого выхода;
  упрочнены разбор и проверка SACD.

## 1.0.2
- Базовая версия: ручное редактирование исполнителя, альбома и названий треков в
  SACD-образе; резервное копирование перед записью; автозаполнение из Discogs.
