Compare With Latest System Design
1. Краткое резюме
Compare With Latest реализует read-only diff workflow. Он загружает latest и
selected non-latest composition versions, строит raw composition text для обеих
и отображает line-oriented compare rows в GUI.
2. Контекст и границы
В области охвата:
-
selection validation;
-
loading two versions of same composition;
-
raw composition text materialization;
-
LCS-like line compare;
-
GUI compare dialog state.
Вне области охвата:
-
semantic comparison;
-
storage mutation;
-
version merge or apply.
3. Компоненты и интеграции
-
CompositionsViewModel -
CompositionsPage.qml -
Engine.LoadComposition -
Engine.LoadBlock
5. Детализация поведения
Шаги:
-
Пользователь выбирает non-latest version.
-
View model проверяет, что выбранная версия не latest.
-
Загружаются latest и selected versions.
-
Для обеих версий строится raw composition text: block refs materialize as block templates, static text and separators are preserved.
-
Строится line-oriented diff.
-
Compare dialog shows titles, rows and summary.
6. Надёжность и деградация
Типовые ошибки:
-
composition not selected;
-
selected version is latest;
-
version parse error;
-
load composition/block failure.
При ошибке:
-
compare dialog не открывается;
-
user получает explicit status.