admin: closing ritual — wiki concept fnf-testing-method (+index/log), STATUS.md бухгалтерия r8/r9

This commit is contained in:
2026-08-19 20:28:14 +03:00
parent 64fea70dec
commit cbd22be2a2
4 changed files with 61 additions and 1 deletions

View File

@@ -0,0 +1,57 @@
---
title: "sched F&F — метод тестирования: скомпилированная дока + порядок хендоффа"
type: concept
tags: [sched, fnf, testing, docs, methodology, handoff]
sources: []
related: [concepts/sched-fnf-r8-verification-stand.md, concepts/sched-admin-client-openapi.md]
updated: 2026-08-19
---
# sched F&F — метод тестирования
Урок раунда r10 (2026-08-19, режект → фикс → ретест 6/6). Правила тестирования
в кросс-агентном цикле F&F против sched-команды. Применимо к любому следующему раунду.
## 1. Тестируем по СКОМПИЛИРОВАННОЙ доке, не по сырцам
- «Публичная дока» текущего этапа = **скомпилированная дока на дев-сервере**
`http://localhost:5108` (nuxi dev, биндится на IPv6 `[::1]` — открывать localhost,
НЕ 127.0.0.1). Роуты: `/docs/tasks`, `/docs/self-hosting` и т.д.
- НЕ тестировать по `docs/content/docs/*.md` в рабочем дереве — тогда битый билд,
пустой dist, мёртвый/устаревший рендер проскочат незамеченными. Дока как артефакт —
часть предмета теста.
- `schedjs.com` — заглушка конфига (NXDOMAIN, домен не зарегистрирован), проект никуда
официально не публиковался. Деплой на публичный URL НЕ требовать — это вопрос фазы
публикации и решение владельца.
## 2. Порядок хендоффа sched F&F (их процедура, fnf-testing-procedure.md)
Проверять ВСЕ 6 пунктов ПЕРЕД первым прогоном. Любой пропуск = возврат без теста:
1. Код + юнит-тесты.
2. Доки source — примеры парсятся (битый пример = возврат; в r10 был сломанный
`createDaemon({ alerts })` — лишняя `},`, `tasks`-мапа неоднозначно вложена).
3. `npm run generate` в `docs/``docs/dist` не пуст и закоммичен. ⚠️ Гоча: nuxi
сам создаёт `docs/dist` как **symlink** на `.output/public` — «0 байт», в git не
попадает; у них закрыто `scripts/docs-dist.mjs` (после generate заменяет симлинк
реальной копией) + `!docs/dist/` в .gitignore.
4. `git push` — ноль ahead (тестируем то, что в origin).
5. Пакеты в verdaccio (versions на месте).
6. Пинг тестера со списком версий + целью (URL скомпилированной доки).
## 3. Ретейст-рецепт (r10, переиспользуем)
- Стенд: `/tmp/sched-alerts-stand/` (Windows Temp), node_modules `@sched/core` /
`@sched/daemon` из verdaccio, `.npmrc``@sched:registry=https://verdaccio.kzntsv.site/`.
Приёмник `receiver.mjs` (порты 8131/8132).
- Лестница r10: a) регресс дефолта, b) `on:[]` = тишина (массивы REPLACE), c) per-task on,
d) per-task onMissed (missed-slot: гашение демона на слот > grace 120s), e) мультиканал
(+ без корневого webhook), f) fail-fast на load (все 3 варианта).
- ⚠️ Гоча путей: write-тул пишет `/tmp/...` как `C:\tmp\...` (диск-рут), bash `/tmp` =
Windows Temp. Синхронизировать через `cp`.
- Крон `* * * * *` — слот на :00 каждой минуты; запускать демон и ждать следующего :00+8s.
## 4. Результат r10
6/6 PASS, 0 находок, 0 замечаний — первый раунд без фиксов после режекта. Бонус: HMAC
`X-Sched-Signature-256` MATCH. Финальные версии: core 0.44.0 / daemon 0.4.2.

View File

@@ -26,6 +26,7 @@ Catalog of all wiki pages. One line per page, organized by type. Updated on ever
- [nvm-junction-ismain-gate-gotcha](concepts/nvm-junction-ismain-gate-gotcha.md) — ESM isMain-гейт молча не выполняется под junction'нутым npm-рутом (nvm/mise/volta); realpath-фикс; диагностика за 30 сек
- [nvm-windows-node-switch](concepts/nvm-windows-node-switch.md) — смена версии Node на nvm-windows: junction, per-version глобалы, PATH-кэш, npm 11 allow-scripts; Node 22→24 evidence
- [sched-fnf-r8-verification-stand](concepts/sched-fnf-r8-verification-stand.md) — стенд верификации F&F r8 (schedule-as-entity): путь, версии core 0.40.2/ui 0.2.0, карта репро-скриптов (миграции/движок/политики/API 52/UI 13), подтверждённый контракт (ceiling, retryCount, snapshot, pause AND, tz-hoist, PATCH-merge), находки №5 (U1 форма-tz, U2 вёрстка), как закрыть раунд
- [sched-fnf-testing-method](concepts/sched-fnf-testing-method.md) — метод F&F-тестирования (урок r10): тест по СКОМПИЛИРОВАННОЙ доке (dev-сервер localhost:5108), не по сырцам; порядок хендоффа 16 (код → доки source парсящиеся → generate/dist → push ноль ahead → verdaccio → пинг), битый пример = возврат, schedjs.com = заглушка (деплой не требовать)
- [windows-docker-test-harness-gotchas](concepts/windows-docker-test-harness-gotchas.md) — грабли Windows-верификации против docker: rmSync до DatabaseSync (EBUSY), vitest 10s vs ~11s docker-DDL, монотонность фейк-часов, изоляция DB на сценарий, висельники node-процессов
- [snolla-smtp-mail-delivery-2026-08](concepts/snolla-smtp-mail-delivery-2026-08.md) — SMTP-инцидент 1214.08: 525 (Яндекс отключил протоколы) → 554 (холодный ящик, мульти-получатели) → 550 (from not owned); фиксы + монитор на VDS + рецепт деплоя
- [keenetic-rci-api](concepts/keenetic-rci-api.md) — KeeneticOS RCI API: auth, чтение конфига, запись через CLI-parser, DNS-override против сломанного hairpin

View File

@@ -1,3 +1,4 @@
## [2026-08-19] ingest | NEW concepts/sched-fnf-testing-method.md — метод F&F-тестирования (урок r10): тест по скомпилированной доке (dev-сервер localhost:5108), порядок хендоффа 16, битый пример = возврат, schedjs.com заглушка. index.md updated (+1).
## [2026-08-16] ingest | concepts/pilonuxt-restart-vs-redeploy-2026-08-16.md — день деплоев стека 16 (7 операций): рестарт vs пересборка разведены как отдельные операции. Рестарт сбрасывает in-memory viewModel кэш content-api (цена за м³ подтянулась после рестарта без пересборки); пересборка — только для кода. Анти-симптом: 500 на категориях с логом `@snolla/core viewModels/index.js:419 _.find(x=>x.name)` = код/данные (Content object vs array, admin-api create), рестарт не лечит — фикс snolla core 0.26.7 + admin-api 0.11.0 array-canon (1128ddc → 64c2539). Откат-цепочка образов 64c2539→…→8b7e8c4. +index.md. Монорепа-сторона заингестена прогером (lazy-data-not-found-404, admin-api-content-wire array-canon, cms-edits-cache-restart, v-html-on-component-ssr, admin-api-content-edit).
## [2026-08-14] decision | FormSubmissions.Content ₽→«?» — координация закрыта. ALTER на клиентской stostayer сделан (.admin); snolla опубликовала `@snolla/data@0.15.1` (STRING→TEXT=NVARCHAR(MAX), тесты 7/7); скан живых БД VDS: MoreThenCms+Staging уже nvarchar (ALTER не нужен), VDS-stostayer varchar — не прод, не трогаем (роль — к оператору); legacy stostayer.web на @snollajs 0.7.x — фикс не едет, ALTER покрывает (backport опция `065bb44`); формы есть у всех сайтов тиража (pilorama98 2516/labtools 916 — вопреки гипотезе snolla). Бонус: email-контракт задокументирован snolla (forms-email-contract.md), warn при пустом `to` — ждёт решения vitya. Таска snolla [formsubmissions-content-nvarchar] закрыта.
## [2026-08-14] implement | MSSQL stayer_site: ALTER FormSubmissions.Content varchar(max) cp1251 → NVARCHAR(MAX) (запрос их прогера: ₽→«?» в письмах с калькулятора). Verify до/после (nvarchar max). Live-тест не гонял, тестовые заявки #68485/#68486 не удалял (ждут подтверждения). Соединение: tedious из packages/web node_modules, MSSQL 91.222.236.225:1433 открыт снаружи.