From 5ba46dfd970b6f93d46a7455c3944ab4b2d716e2 Mon Sep 17 00:00:00 2001 From: Codex Date: Thu, 20 Aug 2026 23:28:26 +0300 Subject: [PATCH] docs: take the atomic write out of the "free to change" block (#220 M3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The assumptions section is explicitly labelled "technical, free to change", and it held a requirement that AC3 and a mutant already test as a fact. Read literally, it invited splitting the write in two — reopening the very window in which markers move. The point now states the opposite: everything else in that section is free, this one is normative and lives in section 8.3. Issue: #220 User-Visible: no --- docs/specs/220-space-tab-reorder.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/specs/220-space-tab-reorder.md b/docs/specs/220-space-tab-reorder.md index 534b48d2..f7cfcba6 100644 --- a/docs/specs/220-space-tab-reorder.md +++ b/docs/specs/220-space-tab-reorder.md @@ -265,10 +265,18 @@ Safety floor §69 того же документа соблюдён по пос 2. **Механика вставки** — вставка перетаскиваемой вкладки перед той, над серединой которой отпущена мышь. Альтернатива (обмен местами) отвергнута: при переносе через несколько позиций она даёт неожиданный результат. -3. **Материализация привязки** (§8.3) выполняется в том же `config/set`, что и - порядок, а не отдельной записью: две записи дали бы окно, в котором порядок - уже новый, а привязка ещё старая. Ревизия r2: прежняя редакция предлагала - якорь в `settings` — отвергнута по M2 ревью r1 как новое поле конфигурации. +3. **Атомарность записи предположением не является.** Требование «порядок и + материализация уходят одним `config/set`» — норматив §8.3, его проверяет AC3 + и стережёт мутант `reorder-skips-materialization`. Разносить запись на две + нельзя: между ними возникает окно, где порядок уже новый, а привязка ещё + старая — ровно тот риск, ради которого §8.3 написан. Здесь пункт оставлен + только как указатель: свободно меняется всё остальное в этом разделе, но не + это (находка M3 ревью r2; прежняя редакция §17 держала норматив под + заголовком «менять свободно»). + + Историческая справка к §8.3: первая редакция предлагала хранить якорь + `firstSpaceId` в `settings` — отвергнута по M2 ревью r1 как новое поле + конфигурации. 4. **Тост о числовом `floor`** показывается всегда, а не только когда числовой `floor` действительно где-то используется: карточка не видит чужие панели, поэтому условие проверить нечем.