fix(db-*, epf-*): ошибка до запуска платформы не выдаётся за успех

Временный каталог брался из $env:TEMP, которой вне Windows нет. Join-Path
падал на привязке параметра внутри try/finally без catch: try прерывался,
finally отрабатывал, и скрипт выходил с кодом 0 — платформа не запускалась,
постусловие не проверялось (#106).

- временный каталог — [IO.Path]::GetTempPath() (на Windows тот же путь);
- верхнеуровневый trap { … exit 1 } в 15 скриптах db-*/epf-*, запускающих
  платформу: любая необработанная ошибка даёт код 1 и печатает место;
- уборка временного каталога в finally не падает на пустом пути;
- гард check-ps-portability.mjs держит оба правила.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 13:53:51 +03:00
co-authored by Claude Opus 5.5
parent 317dce6d9f
commit eb1796ef94
35 changed files with 233 additions and 79 deletions
+1
View File
@@ -23,6 +23,7 @@ const GUARDS = [
['check-agent-portability.mjs', 'исходники навыков: без привязки к конкретному AI-агенту'],
['check-error-streams.mjs', 'сообщения об ошибках: один и тот же поток в обоих портах'],
['check-nonascii-fs.mjs', 'fsutil: удаление и копирование держат не-ASCII пути, копии не разошлись'],
['check-ps-portability.mjs', '.ps1: без $env:TEMP, необработанная ошибка у db-*/epf-* даёт код 1'],
];
let failed = 0;