Skip to content

fix: задокументировать расхождение ConfigDirPath, закрыть дыру пустой строки (#110)#115

Merged
EvaTheSalmon merged 1 commit into
masterfrom
feature/110
Jun 5, 2026
Merged

fix: задокументировать расхождение ConfigDirPath, закрыть дыру пустой строки (#110)#115
EvaTheSalmon merged 1 commit into
masterfrom
feature/110

Conversation

@EvaTheSalmon

Copy link
Copy Markdown
Member

Closes #110.

Решение

Вариант 3 из issue — расхождение оставлено, задокументировано — плюс закрытие дыры пустой строки в боевом блоке. Решение принято после git-археологии (восстановленный контекст ниже).

Что сделано

  • Docs/mbe-table.md — секция «Путь к конфигурации» уточнена: фолбэк срабатывает на пустой/незаданный путь, объяснено происхождение (проекты до появления свойства в Добавить для MbeTableFb возможность выбирать папку конфига #67 десериализуются с пустым полем при обновлении палитры); добавлен указатель на намеренное расхождение с редактором.
  • Docs/mbe-table-editor.md — задокументировано, что пустой путь у редактора — явная ошибка, и почему это намеренно: содержимое сериализованного свойства непредсказуемо между обновлениями палитры, и для редактора молчаливая загрузка не того набора YAML опаснее остановки.
  • MbeTableFB.Configuration.cs — условие фолбэка расширено с ??= (только null) до IsNullOrWhiteSpace: вручную очищенное в дизайнере свойство больше не уходит в Path.Combine относительным путём с криптичной ошибкой. Поведение легаси-проектов не меняется. Редактор не тронут.

Восстановленный контекст (git-археология)

  • До Добавить для MbeTableFb возможность выбирать папку конфига #67 (af2a605) поля не существовало — путь был жёстко зашит в AppContext.BaseDirectory\NtoLibTableConfig.
  • Добавить для MbeTableFb возможность выбирать папку конфига #67 (cfc8f03) ввёл свойство и одновременно сменил дефолт на C:\DISTR\Config\NtoLibTableConfig; ??=-фолбэк добавлен в том же коммите как явный shim обратной совместимости.
  • Бросок редактора введён сознательно в feat: MbeTableEditor — editor-only recipe FB #103 (заявлен в теле PR), мотив: содержимое сериализованного поля непредсказуемо между обновлениями палитры (поле могло отсутствовать или иметь другой дефолт), у нового блока легаси-блобов нет — fail loud корректнее тихого ухода в чужой каталог.
  • Унификация на бросок отвергнута историей: 97fe8ba — ревёрт изменения путей «из-за ошибки проектов».

Тесты

293/293 зелёные, формат чистый. Изменение поведения — только пограничный случай пустой строки в MbeTableFB (раньше — ошибка относительного пути, теперь — фолбэк, как и при null).

🤖 Generated with Claude Code

… строки (#110)

Расхождение оставлено намеренно (восстановлено по истории): фолбэк боевого
блока — shim обратной совместимости из #67 для проектов без поля; бросок
редактора — защита нового блока от непредсказуемого содержимого
сериализованного свойства между обновлениями палитры. Оба поведения
задокументированы в Docs/mbe-table.md и Docs/mbe-table-editor.md.

Условие фолбэка MbeTableFB расширено с null до IsNullOrWhiteSpace: вручную
очищенное свойство больше не уходит в Path.Combine относительным путём.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@EvaTheSalmon EvaTheSalmon merged commit 25edb0f into master Jun 5, 2026
1 check passed
@EvaTheSalmon EvaTheSalmon deleted the feature/110 branch June 5, 2026 11:19
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.

Расхождение поведения LoadConfigurationInternal: MbeTableFB падает на дефолтный путь, editor бросает

1 participant