krona-staff/tests/e2e/report-evidence/round3-accept-all-open.md
grok 10ba0b440f docs(e2e): доказательства круга 3 — вывод accept-branch
Почему: TASK-GROK-3 требует каждый вывод с командой и фактическим выводом.
round3-accept-owner-shas.md — 1df2019/8baad55/513cdff: все ожидания владельца подтвердились;
round3-accept-owner-branches-first.md — те же ветки по именам (Antigravity уже 6c5bf36);
round3-format-proof.md — prettier-only ветка проходит, 513cdff ловится;
round3-accept-all-open.md — все открытые codex/*, antigravity/* после fetch 16:16 NOVT;
round3-combined-merge.md — локальная сборка основа+live-database+c0(+grok): конфликтов нет,
интеграционные 7/7, храповик просит убрать ровно K3/N2, K4/N1, K13/SYNC-A, K13/SYNC-B, SYNC-C0;
round3-preset-mode.md — режим E2E_MIGRATOR_URL/E2E_APP_URL (вердикт SKIP).
Файлы прогнаны через prettier (иначе format:check в CI падает), содержимое таблиц не менялось.
2026-09-26 16:24:19 +07:00

140 lines
25 KiB
Markdown

# Команда: node scripts/test/accept-branch.mjs $(все origin/codex/* и origin/antigravity/* кроме основы) — после git fetch в 16:16 NOVT
## accept-branch — 2026-09-26 09:20 UTC
База: `origin/codex/bootstrap-platform-foundation` = b0243d5; стенд (оверлей tests/e2e, scripts/test): 6f408bc; БД: роли созданы один раз через E2E_PG_ADMIN_URL (provision-pg), дальше --roles keep. Логи: `tests/e2e/evidence/accept/2026-09-26T09-16-26/`.
### Сводка
| Ветка | SHA | npm run check | integration (красные файлы) | e2e red/green | e2e: стало зелёным | e2e: стало красным |
| ------------------------------------------------- | ------- | -------------- | --------------------------- | ------------------------------------------- | ------------------ | ------------------------------- |
| origin/codex/bootstrap-platform-foundation (база) | b0243d5 | OK (195 passed | 1 skipped (196)) | 3/4 зелёных; FAIL: tenant-isolation.test.ts | 46/5 | n/a | n/a |
| origin/antigravity/employee-notifications | 3e20544 | OK (164 passed | 1 skipped (165)) | 3/4 зелёных; FAIL: tenant-isolation.test.ts | 49/2 | — | HARNESS (AssertionError: expected 10 to be greater than or equal to 11); PILOT-REHOME-SEED (error: relation "staff_sync_change_log" does not exist); SYNC-L (AssertionError: HTTP 404 {"message":"Route POST:/api/v1/staff/sync/devices not found","error":"Not Found","statusCode":404}: expected 404 to be 201 // Object.is) |
| origin/antigravity/fix-reject-device-shifts | b283736 | OK (196 passed | 3 skipped (199)) | 4/5 зелёных; FAIL: tenant-isolation.test.ts | 44/7 | K13/SYNC-A, K13/SYNC-B | — |
| origin/antigravity/fix-sync-c0-bootstrap | 24cc18d | OK (197 passed | 5 skipped (202)) | 5/6 зелёных; FAIL: tenant-isolation.test.ts | 43/8 | K13/SYNC-A, K13/SYNC-B, SYNC-C0 | — |
| origin/antigravity/offline-sync-backend | 5ee7517 | OK (192 passed | 1 skipped (193)) | 3/4 зелёных; FAIL: tenant-isolation.test.ts | 46/5 | — | — |
| origin/codex/finance-calendar-dashboard | c08a7e6 | OK (113 passed | 1 skipped (114)) | 4/4 зелёных | 48/3 | A4, K4/N1 | CTRL (AssertionError: expected 200 to be 401 // Object.is equality); HARNESS (AssertionError: expected 8 to be greater than or equal to 11); PILOT-REHOME-SEED (error: relation "staff_professions" does not exist); SYNC-L (AssertionError: HTTP 404 {"message":"Route POST:/api/v1/staff/sync/devices not found","error":"Not Found","statusCode":404}: expected 404 to be 201 // Object.is) |
| origin/codex/fix-format-baseline | a05777c | OK (195 passed | 1 skipped (196)) | 3/4 зелёных; FAIL: tenant-isolation.test.ts | 46/5 | — | — |
| origin/codex/fix-live-database | 1573860 | OK (197 passed | 2 skipped (199)) | 4/5 зелёных; FAIL: tenant-isolation.test.ts | 44/7 | K3/N2, K4/N1 | — |
| origin/codex/frontend-library | 331e490 | OK (195 passed | 1 skipped (196)) | 3/4 зелёных; FAIL: tenant-isolation.test.ts | 46/5 | — | — |
| origin/codex/security-finance-production | f74aa6d | OK (142 passed | 1 skipped (143)) | 4/4 зелёных | 49/2 | — | HARNESS (AssertionError: expected 9 to be greater than or equal to 11); PILOT-REHOME-SEED (error: relation "staff_push_subscriptions" does not exist); SYNC-L (AssertionError: HTTP 404 {"message":"Route POST:/api/v1/staff/sync/devices not found","error":"Not Found","statusCode":404}: expected 404 to be 201 // Object.is) |
| origin/codex/server-web-production | 2f6b367 | OK (113 passed | 1 skipped (114)) | 4/4 зелёных | 49/2 | K4/N1 | CTRL (AssertionError: HTTP 404 {"message":"Route POST:/api/v1/staff/imports/owner-workbook not found","error":"Not Found","statusCode":404}: expected 404 to be less t); HARNESS (AssertionError: expected 7 to be greater than or equal to 11); PILOT-REHOME-SEED (error: relation "staff_professions" does not exist); SYNC-L (AssertionError: HTTP 404 {"message":"Route POST:/api/v1/staff/sync/devices not found","error":"Not Found","statusCode":404}: expected 404 to be 201 // Object.is) |
### Интеграционные тесты (каждый файл отдельно, свежая БД)
| Ветка | Файл | Итог | Test Files | Tests | Первая ошибка |
| ------------------------------------------- | --------------------------------- | ---- | ------------ | -------------- | -------------------------------------------------- |
| origin/codex/bootstrap-platform-foundation | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/bootstrap-platform-foundation | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/bootstrap-platform-foundation | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/codex/bootstrap-platform-foundation | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/antigravity/employee-notifications | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/antigravity/employee-notifications | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/antigravity/employee-notifications | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/antigravity/employee-notifications | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/antigravity/fix-reject-device-shifts | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/antigravity/fix-reject-device-shifts | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/antigravity/fix-reject-device-shifts | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/antigravity/fix-reject-device-shifts | sync-rejection.test.ts | OK | 1 passed (1) | 2 passed (2) | |
| origin/antigravity/fix-reject-device-shifts | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/antigravity/fix-sync-c0-bootstrap | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/antigravity/fix-sync-c0-bootstrap | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/antigravity/fix-sync-c0-bootstrap | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/antigravity/fix-sync-c0-bootstrap | sync-bootstrap.test.ts | OK | 1 passed (1) | 2 passed (2) | |
| origin/antigravity/fix-sync-c0-bootstrap | sync-rejection.test.ts | OK | 1 passed (1) | 2 passed (2) | |
| origin/antigravity/fix-sync-c0-bootstrap | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/antigravity/offline-sync-backend | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/antigravity/offline-sync-backend | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/antigravity/offline-sync-backend | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/antigravity/offline-sync-backend | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/codex/finance-calendar-dashboard | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/finance-calendar-dashboard | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/finance-calendar-dashboard | portal.test.ts | OK | 1 passed (1) | 11 passed (11) | |
| origin/codex/finance-calendar-dashboard | tenant-isolation.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/fix-format-baseline | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/fix-format-baseline | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/fix-format-baseline | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/codex/fix-format-baseline | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/codex/fix-live-database | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/fix-live-database | live-postgres-remediation.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/fix-live-database | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/fix-live-database | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/codex/fix-live-database | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/codex/frontend-library | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/frontend-library | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/frontend-library | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/codex/frontend-library | tenant-isolation.test.ts | FAIL | 1 failed (1) | 1 passed (1) | error: permission denied for table staff_employees |
| origin/codex/security-finance-production | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/security-finance-production | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/security-finance-production | portal.test.ts | OK | 1 passed (1) | 12 passed (12) | |
| origin/codex/security-finance-production | tenant-isolation.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/server-web-production | health.test.ts | OK | 1 passed (1) | 3 passed (3) | |
| origin/codex/server-web-production | openapi-runtime.test.ts | OK | 1 passed (1) | 1 passed (1) | |
| origin/codex/server-web-production | portal.test.ts | OK | 1 passed (1) | 11 passed (11) | |
| origin/codex/server-web-production | tenant-isolation.test.ts | OK | 1 passed (1) | 1 passed (1) | |
npm ci (lock отличается): origin/codex/finance-calendar-dashboard, origin/codex/security-finance-production, origin/codex/server-web-production
### Попарные слияния (`git merge-tree --write-tree`)
| Ветка A | Ветка B | Результат | Конфликтные файлы |
| ------------------------------------------- | ------------------------------------------- | --------- | ----------------- |
| origin/codex/bootstrap-platform-foundation | origin/antigravity/employee-notifications | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/antigravity/fix-reject-device-shifts | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/antigravity/fix-sync-c0-bootstrap | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/antigravity/offline-sync-backend | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/finance-calendar-dashboard | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/fix-format-baseline | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/fix-live-database | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/frontend-library | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/security-finance-production | чисто | |
| origin/codex/bootstrap-platform-foundation | origin/codex/server-web-production | чисто | |
| origin/antigravity/employee-notifications | origin/antigravity/fix-reject-device-shifts | чисто | |
| origin/antigravity/employee-notifications | origin/antigravity/fix-sync-c0-bootstrap | чисто | |
| origin/antigravity/employee-notifications | origin/antigravity/offline-sync-backend | чисто | |
| origin/antigravity/employee-notifications | origin/codex/finance-calendar-dashboard | чисто | |
| origin/antigravity/employee-notifications | origin/codex/fix-format-baseline | чисто | |
| origin/antigravity/employee-notifications | origin/codex/fix-live-database | чисто | |
| origin/antigravity/employee-notifications | origin/codex/frontend-library | чисто | |
| origin/antigravity/employee-notifications | origin/codex/security-finance-production | чисто | |
| origin/antigravity/employee-notifications | origin/codex/server-web-production | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/antigravity/fix-sync-c0-bootstrap | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/antigravity/offline-sync-backend | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/finance-calendar-dashboard | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/fix-format-baseline | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/fix-live-database | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/frontend-library | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/security-finance-production | чисто | |
| origin/antigravity/fix-reject-device-shifts | origin/codex/server-web-production | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/antigravity/offline-sync-backend | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/finance-calendar-dashboard | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/fix-format-baseline | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/fix-live-database | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/frontend-library | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/security-finance-production | чисто | |
| origin/antigravity/fix-sync-c0-bootstrap | origin/codex/server-web-production | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/finance-calendar-dashboard | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/fix-format-baseline | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/fix-live-database | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/frontend-library | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/security-finance-production | чисто | |
| origin/antigravity/offline-sync-backend | origin/codex/server-web-production | чисто | |
| origin/codex/finance-calendar-dashboard | origin/codex/fix-format-baseline | чисто | |
| origin/codex/finance-calendar-dashboard | origin/codex/fix-live-database | чисто | |
| origin/codex/finance-calendar-dashboard | origin/codex/frontend-library | чисто | |
| origin/codex/finance-calendar-dashboard | origin/codex/security-finance-production | чисто | |
| origin/codex/finance-calendar-dashboard | origin/codex/server-web-production | чисто | |
| origin/codex/fix-format-baseline | origin/codex/fix-live-database | чисто | |
| origin/codex/fix-format-baseline | origin/codex/frontend-library | чисто | |
| origin/codex/fix-format-baseline | origin/codex/security-finance-production | чисто | |
| origin/codex/fix-format-baseline | origin/codex/server-web-production | чисто | |
| origin/codex/fix-live-database | origin/codex/frontend-library | чисто | |
| origin/codex/fix-live-database | origin/codex/security-finance-production | чисто | |
| origin/codex/fix-live-database | origin/codex/server-web-production | чисто | |
| origin/codex/frontend-library | origin/codex/security-finance-production | чисто | |
| origin/codex/frontend-library | origin/codex/server-web-production | чисто | |
| origin/codex/security-finance-production | origin/codex/server-web-production | чисто | |
### Форматирование без поведения
**origin/codex/fix-format-baseline** (a05777c), merge-base f5ac179, изменено файлов: 19 — ТОЛЬКО ФОРМАТИРОВАНИЕ