docs(audit): add third acceptance for Codex branches
Some checks failed
ci / verify (push) Has been cancelled
Some checks failed
ci / verify (push) Has been cancelled
Форматирование пересобрано чисто: ни один из 19 файлов не меняет поведение после нормализации prettier. Пилот больше не может стартовать с арендатором-заглушкой. Ветку с этой защитой нельзя влить, пока tests/unit/sync.test.ts падает на новой проверке — записано, как закрыть без правки чужой зоны. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
b0243d5001
commit
f7d3c73f1f
2 changed files with 71 additions and 0 deletions
70
docs/audit/2026-09-26/ACCEPTANCE-3.md
Normal file
70
docs/audit/2026-09-26/ACCEPTANCE-3.md
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
# Приёмка №3 — 2026-09-26
|
||||||
|
|
||||||
|
Проверка независимая, на живой PostgreSQL 17.10, в отдельной рабочей копии. Ветки исполнителей не менялись. Основная ветка — `b0243d5`.
|
||||||
|
|
||||||
|
## Codex
|
||||||
|
|
||||||
|
| Ветка | Коммит | Вердикт |
|
||||||
|
| --------------------------- | --------- | --------------------------------------------------------------------------------------- |
|
||||||
|
| `codex/fix-format-baseline` | `a05777c` | **Принято.** Пункт 1 TASK-CODEX-2 выполнен |
|
||||||
|
| `codex/fix-live-database` | `1573860` | **Принято.** K3/N2 и K4/N1 по-прежнему зелёные |
|
||||||
|
| `codex/fix-tenant-config` | `535052e` | **Почти:** пункт 2.1 сделан правильно, но `npm run check` на ветке красный. Одна строка |
|
||||||
|
|
||||||
|
### Форматирование — пункт 1 закрыт
|
||||||
|
|
||||||
|
Перепроверил тем же способом, что и в прошлый раз: взял каждый из 19 изменённых файлов в версии из основы, прогнал prettier и сравнил с версией из ветки. **Ни один файл не отличается после нормализации** — в коммите только стиль. Синхронизация из него убрана.
|
||||||
|
|
||||||
|
`codex/fix-live-database` перебазирован на новое форматирование. Стенд Grok поверх ветки: K3/N2 и K4/N1 зелёные, стенд падает только сообщением «дефект исправлен, обновите known-defects.json» — это правильное поведение храповика, а не ошибка ветки.
|
||||||
|
|
||||||
|
### Пункт 2.1 — заглушка больше не вернётся
|
||||||
|
|
||||||
|
Сделано по всем четырём местам:
|
||||||
|
|
||||||
|
| Где | Как |
|
||||||
|
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `deploy/pilot/setup.sh` | `validate_tenant()`: требует переменную, проверяет ULID, отдельно отказывает заглушке. Вызывается и при создании `.env`, и после его чтения |
|
||||||
|
| `compose.yaml` | `${STANDALONE_TENANT_ID:?…}` |
|
||||||
|
| `.env.example` | пусто, с комментарием откуда брать |
|
||||||
|
| `src/config.ts` | заглушка отклоняется, кроме `development` на loopback |
|
||||||
|
|
||||||
|
### Что мешает влить `codex/fix-tenant-config`
|
||||||
|
|
||||||
|
`npm run check` на ветке: **`Test Files 1 failed | 17 passed`**.
|
||||||
|
|
||||||
|
```text
|
||||||
|
FAIL tests/unit/sync.test.ts
|
||||||
|
Error: STANDALONE_TENANT_ID uses the development placeholder, which is allowed only in development on loopback
|
||||||
|
```
|
||||||
|
|
||||||
|
`tests/unit/sync.test.ts:553` берёт `STANDALONE_TENANT_ID = '01J00000000000000000000000'` с `NODE_ENV: 'test'`. Новая проверка это запрещает. Четыре теста под заглушку ты поправил, а этот — в зоне Antigravity, поэтому и не поправил. Правильно, что не полез.
|
||||||
|
|
||||||
|
**Как закрыть, не трогая чужую зону:** разрешить заглушку и при `NODE_ENV === 'test'`. Инвариант защищает развёртывание, а `NODE_ENV=test` пилот никогда не обслуживает — на пилоте стоит `production`, в `compose.yaml` заглушка уже невозможна. Тест в `tests/unit/config.test.ts`, который сейчас требует отказа в test-режиме, соответственно поменять: пусть проверяет отказ в `production` и в `development` на не-loopback.
|
||||||
|
|
||||||
|
**Готово, когда** `npm run check` на ветке даёт `Test Files 19 passed` (или 18 passed | 1 skipped, как на основе).
|
||||||
|
|
||||||
|
### Осталось по TASK-CODEX-2
|
||||||
|
|
||||||
|
- Пункт 2.2 — `scripts/rehome-tenant.mjs` нет. Grok уже подготовил сценарии `PILOT-REHOME` и `PILOT-REHOME-SEED` и описал ожидаемый интерфейс в `tests/e2e/NOTES-FOR-EXECUTORS.md`: `DATABASE_ADMIN_URL=… node scripts/rehome-tenant.mjs --from … --to … [--dry-run] [--json]`. Держись этого интерфейса — тогда сценарий позеленеет сам.
|
||||||
|
- Пункт 2.3 — скрипта сопоставления `core_user_id` нет.
|
||||||
|
- Перед пунктом 2.2 — резервная копия K18 и проверка восстановления.
|
||||||
|
|
||||||
|
## Слияния — всё чисто
|
||||||
|
|
||||||
|
| Пара | Результат |
|
||||||
|
| ----------------------------------------- | --------- |
|
||||||
|
| Codex format + AG c0 | чисто |
|
||||||
|
| Codex live-database + AG c0 | чисто |
|
||||||
|
| Codex tenant-config + Codex live-database | чисто |
|
||||||
|
| Codex tenant-config + Grok | чисто |
|
||||||
|
| Grok + Codex live-database | чисто |
|
||||||
|
|
||||||
|
Antigravity выстроил свои ветки в цепочку: `fix-reject-device-shifts` → `fix-sync-c0-bootstrap`. Конфликта больше нет.
|
||||||
|
|
||||||
|
## Порядок влития
|
||||||
|
|
||||||
|
1. `grok/e2e-harness`.
|
||||||
|
2. Цепочка Antigravity: `fix-reject-device-shifts` → `fix-sync-c0-bootstrap`.
|
||||||
|
3. Codex: `fix-format-baseline` → `fix-live-database` → `fix-tenant-config` (после исправления теста).
|
||||||
|
4. Grok — коммит в `known-defects.json`: убрать K3/N2, K4/N1, K13/SYNC-A, K13/SYNC-B, SYNC-C0.
|
||||||
|
|
||||||
|
Разделы по Grok и Antigravity добавляются в этот файл после их проверки.
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
| [ACCEPTANCE-1.md](ACCEPTANCE-1.md) | Приёмка первого круга работ Grok и Antigravity |
|
| [ACCEPTANCE-1.md](ACCEPTANCE-1.md) | Приёмка первого круга работ Grok и Antigravity |
|
||||||
| [TASK-CODEX.md](TASK-CODEX.md) | Codex: сервер, расчёт, база, пилот, терминал, роли, подтверждение и согласие — этапы 0–6 |
|
| [TASK-CODEX.md](TASK-CODEX.md) | Codex: сервер, расчёт, база, пилот, терминал, роли, подтверждение и согласие — этапы 0–6 |
|
||||||
| [ACCEPTANCE-2.md](ACCEPTANCE-2.md) | Приёмка второго круга: Grok принят, Codex и Antigravity — что доделать, порядок влития |
|
| [ACCEPTANCE-2.md](ACCEPTANCE-2.md) | Приёмка второго круга: Grok принят, Codex и Antigravity — что доделать, порядок влития |
|
||||||
|
| [ACCEPTANCE-3.md](ACCEPTANCE-3.md) | Приёмка третьего круга: Codex принят кроме одного красного теста, порядок влития |
|
||||||
| [TASK-CODEX-2.md](TASK-CODEX-2.md) | Codex, **текущий круг**: форматирование без синхронизации, пилот на настоящего арендатора, сопоставление с платформой |
|
| [TASK-CODEX-2.md](TASK-CODEX-2.md) | Codex, **текущий круг**: форматирование без синхронизации, пилот на настоящего арендатора, сопоставление с платформой |
|
||||||
| [TASK-ANTIGRAVITY-3.md](TASK-ANTIGRAVITY-3.md) | Antigravity, **текущий круг**: починить тесты, цепочка веток, дальше S2–S9 и push |
|
| [TASK-ANTIGRAVITY-3.md](TASK-ANTIGRAVITY-3.md) | Antigravity, **текущий круг**: починить тесты, цепочка веток, дальше S2–S9 и push |
|
||||||
| [TASK-GROK-3.md](TASK-GROK-3.md) | Grok, **текущий круг**: приёмка с интеграционными тестами и конфликтами, перенос арендатора |
|
| [TASK-GROK-3.md](TASK-GROK-3.md) | Grok, **текущий круг**: приёмка с интеграционными тестами и конфликтами, перенос арендатора |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue