You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New
vitest run (vitest 4.1.11 на Vite 8.0.16) работает в браузерной оболочке rifty, оба пула — матрица совместимости docs/public/compat/vitest.md
Опубликованы измеренные браузерные/персистентные полы (Chromium 108, ES2022) и метод замера; CI-гейт отсекает post-ES2022 синтаксис и builtins в пакетах и playground
worker_threads.Worker/fork запускаются с Node-опциями старта: -r/--require, -C/--conditions, --experimental-import-meta-resolve — preloads, пользовательские условия резолвера, import.meta.resolve(spec, parent) (ADR-0449)
fork с serialization: 'advanced' (vitest forks pool): structured clone над IPC-каналом с Node-правилами v8-сериализатора — views копируются в точные байты, бренд Buffer сохраняется, отказы — named-ошибки (ADR-0448)
Жизненный цикл Node-процесса (ADR-0445): uncaughtException/unhandledRejection/uncaughtExceptionMonitor до терминальных путей, статусы как в Node (1 без слушателя, 7 при бросающем слушателе), точная семантика exit()/exitCode
Worker#stdout/stderr — Node-Readables с авто-пайпом; fork наследует stdin; живой Worker/порт/parentPort держит родителя через ref/unref (ADR-0446/0447)
vm.constants и named-ошибка DONT_CONTEXTIFY (jsdom под vitest environment: 'jsdom' падает по имени); vm.Script/runInThisContext уважают lineOffset/columnOffset и называют скрипт по его sourceURL (ADR-0450)
fs.statfsSync, child_process.spawnSync, process.memoryUsage существуют и линкуют named-импорты vitest/tinyexec; вызов — named NotImplementedError (ADR-0443)
node:http.Agent/https.Agent с Node-формой (subclassable), конструктор — named gap: playwright-core падает по имени, а не Class extends value undefined (ADR-0464)
npm-client: значения overrides читаются как npm — версия/диапазон ({"vite": "8.0.16"}) пинует пакет вместо запроса packument 8.0.16 (ADR-0451)
@riftydev/agent: нативный каталог моделей pi с per-model дефолтами, нативные retry/compaction и восстановление контекста, изображения во входных промптах, бюджет 600 с и бюджетные квитанции. Breaking: сессионные settings/streamFn убраны; скраб секретов — один раз на входе провайдера, только в тексте ошибок (ADR-0466/0475/0479)
Playground: страница ручного браузерного пруфа (support, реальный Vite install/build, durable reload/reopen, копируемый отчёт об устройстве); редактируемый каталог моделей с отдельным провайдером на модель; секреты каталога (auth/key/token/secret/cookie/session, bare Bearer) маскируются до попадания в чат (ADR-0479)
agent-bench: сравнение записанных прогонов с per-task/lane дельтами и видимыми регрессиями; сводки коммитятся как gzip-артефакты с проверяемыми SHA256
Fixed
child.stdout.pipe(process.stdout) больше не крашится: Readable.pipe следует Node-правилу end ({end: false} и process.stdout|stderr не завершаются, такой пайп отцепляется в конце источника)
Дочерний процесс с наследуемым stdin (дефолт fork) читает ввод через ридер родителя — родитель больше не «зависает» после выхода ребёнка
Провальное создание Worker не оставляет stdio-слушателей у владельца; env: null наследует окружение родителя, как в Node
Парити-раннер больше не наследует FORCE_COLOR от Playwright-воркеров — Node-вывод в сравнениях чистый
«Continue with …» в playground: отредактированный черновик уходит как есть, авто-восстановленный промпт дропается — без дублирующих user-ходов; ожидающее вложение уходит одно
No-COI команды и runBin завершаются Node-статусом при фатальном выходе (exit(7)/exit(n) в слушателе, мгновенный останов таймеров), а не «сливаются» в natural exit 0; ретиред-транспорт отменяет застрявшую PTY-работу при закрытии проекта