diff --git a/.nvmrc b/.nvmrc index 2bd5a0a..df6ae33 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +24.21.0 diff --git a/development/audit-remediation.md b/development/audit-remediation.md index db48976..499a3fc 100644 --- a/development/audit-remediation.md +++ b/development/audit-remediation.md @@ -249,6 +249,42 @@ authority. | WL-P3-07 | Защитить рабочий `.env` от случайного commit. | frontend, specs, docs | done | [`2026-08-24-address-dependency-advisories-and-repo-hygiene`](../../specs/openspec/changes/archive/2026-08-24-address-dependency-advisories-and-repo-hygiene/) | — | 2026-08-24; frontend `826936c`, specs `8897bd9`, docs `60a1c33`; hygiene check passed. | | WL-P3-08 | Исключить runtime SQLite DB из Git. | backend, specs, docs | done | [`2026-08-24-address-dependency-advisories-and-repo-hygiene`](../../specs/openspec/changes/archive/2026-08-24-address-dependency-advisories-and-repo-hygiene/) | — | 2026-08-24; backend `6052565`, specs `8897bd9`, docs `60a1c33`; hygiene check passed. | +### 2026-09-13 — WL-P2-11: переход на Node 24 LTS + +Продолжение bootstrap policy из WL-P2-11, части 14.backend/frontend/docs +[рабочего TODO](../../todo/wealthledger-engineering-improvements.md). +Node 24.21.0 / npm 11.19.0 выбран по [официальному каталогу релизов](https://nodejs.org/dist/index.json) +и [расписанию поддержки](https://github.com/nodejs/Release#release-schedule): +ветка Krypton LTS поддерживается до 30.04.2028. + +`.nvmrc` frontend/backend/docs фиксируют 24.21.0, engines — 24.x. +Backend `@types/node` обновлён до 24.13.3; runtime dependencies не обновлялись. +Npm дополнил backend lockfile платформенными optional dependencies существующего +resolver. Для npm 11.19 явно разрешены install scripts сборочных зависимостей +с pin версий. Инструкция переустановки и отката — в +[локальном окружении](local-workspace.md#версия-node). +Specs продолжает наследовать frontend runtime; самостоятельный bootstrap CLI +из части 14.specs и CI остаются отдельными незавершёнными задачами. + +Проверки относятся к frontend `53c852b`, backend `ce24a84`, docs `c74c573`, +specs `834f2d1` с текущим diff перехода Node: + +- `npm ci` в frontend/backend/docs — PASS; backend native modules установлены + под Node 24, `npm run build` с генерацией Prisma client — PASS. +- Frontend `npm run verify` — PASS: 46 files, 268 tests, coverage, OpenAPI drift, + TypeScript, Biome, Knip, dependency boundaries, приложение и Storybook. + Прогон одновременно с установкой backend упирался в UI timeout; отдельный + повтор полного gate прошёл без изменения тестов или их таймаутов. +- Backend `npm run verify` — PASS: 35 suites, 257 tests, lint, оба typecheck и build. +- Backend `npm run test:e2e` — PASS: 8 suites, 98 tests; новая SQLite и штатные + migrations для каждой suite, включая runtime OpenAPI. Для HTTP-портов нужен + запуск вне sandbox. Рабочая БД не использовалась. +- Docs `npm run verify` — PASS: 54 Markdown-файла, 0 issues; + `git diff --check` во всех четырёх repos — PASS. +- OpenSpec CLI 1.10.0, существующая установка, исполненная Node 24.21.0: + `schema validate wealth-ledger-sdd --verbose` и + `validate --specs --strict --store wealth-ledger-specs` — PASS, 25 specs. + ## История registry Terminal evidence добавляется сюда только после завершения соответствующего change. diff --git a/development/local-workspace.md b/development/local-workspace.md index 1da32d8..7f3b97b 100644 --- a/development/local-workspace.md +++ b/development/local-workspace.md @@ -6,9 +6,24 @@ WealthLedger поставляется как локальное приложен исходного кода. Описано локальное окружение; production-топология по нему не подтверждается. +## Версия Node + +Все локальные проверки используют Node 24 LTS; `.nvmrc` в frontend, backend +и docs фиксирует 24.21.0. Specs использует frontend `.nvmrc`. +По [официальному расписанию Node](https://github.com/nodejs/Release#release-schedule) +поддержка Node 24 завершается 30.04.2028. +В каждом npm-репозитории выполните `nvm install`, `nvm use --silent` и `npm ci`; +в backend затем `npm run build` для генерации Prisma client. +Поставляемый npm 11.19 запускает dependency install scripts только по +`allowScripts` в package.json; разрешения привязаны к версиям сборочных +зависимостей и пересматриваются при их обновлении. +После смены major обязательна переустановка native modules через `npm ci`. +Для отката верните прежние runtime/package/lockfile-конфигурации, выберите Node 22 +и повторите `npm ci` и backend build. Сам переход Node не меняет схему или данные. + ## Подготовка backend -Локальная серверная среда использует Node 22 и SQLite. Для работы нужны: +Локальная серверная среда использует Node 24 и SQLite. Для работы нужны: | Параметр | Назначение и ограничение | | --- | --- | diff --git a/package-lock.json b/package-lock.json index 1cb5736..3c3fa02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "markdownlint-rule-relative-links": "5.1.2" }, "engines": { - "node": "22.x" + "node": "24.x" } }, "node_modules/@nodelib/fs.scandir": { diff --git a/package.json b/package.json index 8a8fc73..6f1fb73 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "engines": { - "node": "22.x" + "node": "24.x" }, "scripts": { "lint": "markdownlint-cli2 \"**/*.md\" \"#node_modules\"",