Validation: strict TypeScript runtime and toolchain
Окружение#
| Параметр | Фактическое значение |
|---|---|
| Дата проверки | 2026-07-25 (Asia/Ho_Chi_Minh) |
| Commit | 68582c97cb6b51804532cbd021290f07f4f74fa5; проверялся dirty working tree, новый snapshot не создавался |
| OS и hardware | macOS 26.4 build 25E246, arm64 |
| Runtime | Node.js 24.14.0; npm 11.9.0; Bun 1.3.6; Bun-reported Node compatibility 24.3.0 |
| Compiler | TypeScript 7.0.2; @types/node 24.13.3 |
| Внешние сервисы | none; 0 LLM/API calls |
| Входные данные | root package.json, package-lock.json, наличие bun.lock/bun.lockb |
Результаты по критериям#
| ID | Проверка | Ожидалось | Получено | Evidence | Результат |
|---|---|---|---|---|---|
| AC-01 | Strict compiler gate | Exit 0 | Exit 0, TypeScript 7.0.2 | E-028 |
pass |
| AC-02 | Node unit + CLI | 2 tests; verifier ok: true |
2 pass/0 fail; 13 findings passed; Node 24.14.0 | E-029, E-030 |
pass |
| AC-03 | Bun unit + CLI, single-lock invariant | 2 tests; verifier ok: true; no Bun lock |
2 pass/0 fail; 13 findings passed; bun.lock* absent |
E-031, E-032 |
pass |
| AC-04 | npm metadata | Exact manifest/lock pins | npm@11.9.0, lock v3, 4/4 package pins matched manifest and lock | E-009, E-030, E-031 |
pass |
| AC-05 | Decision matrix | Все обязательные категории | 13 rows; versions, decision, trigger и evidence заполнены | RESEARCH.md |
pass |
| AC-06 | No paid calls / honest unknowns | 0 calls; model metrics Unknown | 0 calls; quality/latency/cost/cache-hit оставлены Unknown | E-019–E-026 |
pass |
Команды проверки#
Все команды ниже фактически выполнены из корня репозитория.
1. RED#
node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts
До создания production-файла: exit 1,
ERR_MODULE_NOT_FOUND: .../verify-toolchain.ts. Это ожидаемая причина RED, а
не syntax/config failure (E-027).
2. Strict typecheck#
./node_modules/.bin/tsc -p RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/tsconfig.json
Exit 0, без diagnostics (E-028).
3. Node tests#
node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts
Существенный output:
tests 2
pass 2
fail 0
4. Node runtime#
node RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=node
Существенный output:
{
"ok": true,
"measured": {
"runtime": "node",
"node": "24.14.0",
"bun": null
}
}
Полный CLI output содержал 13/13 successful findings.
5. Bun runtime#
bun run RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=bun
Существенный output:
{
"ok": true,
"measured": {
"runtime": "bun",
"node": "24.3.0",
"bun": "1.3.6"
}
}
Полный CLI output содержал 13/13 successful findings, включая
single-lockfile.
6. Bun tests#
bun test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts
Существенный output:
2 pass
0 fail
7. Reusable Bun companion gate#
npm run check:bun
Команда запускает Bun verifier и те же 2 Bun tests; exit 0. Полный
Node+Bun путь доступен как npm run check:all.
Ошибки и нестабильность#
- Единственная ошибка — намеренный TDD RED до реализации (
E-027). - Повторных прогонов для оценки timing variance не было: latency/performance не являются критерием этого исследования.
- Финальный
npm run checkпрошёл: 4 site tests, 41 technical tests, strict typecheck, 10-study validator, 96-document build и rendered-link validation с 0 failures.
Воспроизводимость#
Основной сценарий повторён двумя runtime на одной машине, но независимого повтора на другом checkout/OS не было. Для закрытия ограничения нужен clean Linux runner:
npm ci
./node_modules/.bin/tsc -p RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/tsconfig.json
node --test RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.test.ts
node RnD/technical/2026-07-25-typescript-runtime-toolchain/prototype/verify-toolchain.ts --expect-runtime=node
Bun smoke добавляется только на runner с явно установленной Bun 1.3.6.
Финальный исход#
- Outcome:
pass - Обоснование: все шесть обязательных критериев выполнены; ключевое
доказательство — strict compiler exit 0 и successful execution одного файла
в Node и Bun при отсутствии второго lockfile (
E-028–E-032). - Что результат не доказывает: полную Bun compatibility будущего приложения, production event-store reliability, LLM quality/cost/latency, provider structured-output correctness на конкретной модели или cache economics.