Migrated from alkoleft/v8-runner-rust pr #37.
Original author: korolevpavel; created: 2026-07-21T23:23:41Z; last upstream update: 2026-07-26T23:48:02Z.
GitHub shows the migration account as the new author; this block preserves actual attribution.
Upstream historical base: master at d612e2d07e0702c6c829f3981d083022611f6373; head: korolevpavel:fix/platform-strict-hint at abc5c79097829d71c34a42ba0e8c3d8e359e1572. Active migrated PRs compare that exact head with the current IngvarConsulting/v8-runner-rust:master.
Upstream merged: 2026-07-26T23:48:02Z; merge commit: 0ae245c75bf8dd4d1f92cded6d243b9d7635bdc2.
Closes upstream #28.
What changed
- adds opt-in
tools.platform.strict with fail-closed explicit path resolution
- validates exact four-component and prefix platform versions
- pins
1cv8, 1cv8c, and ibcmd to one canonical installation root in strict mode
- exposes typed path/version/source/installation-root metadata in launch JSON and MCP responses
- keeps legacy fallback behavior unchanged when strict mode is disabled
- supports primary
strict: true with a machine-local path supplied by the local overlay
- hardens symlink containment, cache revalidation, Windows drive-relative PATH roots, and Windows case-insensitive executable/layout matching
- updates configuration schemas, README, and the repo-local agent skill
Verification
- locator: 38 passed
- utilities: 5 passed
- config/schema: 160 passed
- launch unit: 7 passed
- MCP service: 36 passed
- CLI, MCP stdio, and MCP HTTP launch metadata integration tests passed
- schema artifact freshness passed
cargo fmt --all -- --check, cargo check --all-targets, and git diff --check passed
- independent whole-branch reviewer, tester, and Rust expert reviews are clean
Platform note
Windows-specific regressions cover cross-drive drive-relative PATH handling and case-insensitive executable/BIN/1CEDT identity. The local Homebrew Rust toolchain has no Windows standard-library target, so those cfg-gated tests require Windows CI/runtime confirmation.
Two pre-existing unrelated warnings remain in tool_extension.rs and process.rs.
Summary by CodeRabbit
-
Новые возможности
- Добавлен параметр
tools.platform.strict для fail-closed резолва платформенных утилит без fallback-логики.
- Команда
launch теперь возвращает расширенные платформенные сведения: канонический путь, версия (или null), источник обнаружения и корень установки.
-
Исправления
- Нормализуются и корректно разрешаются относительные пути
tools.platform.path.
- В строгом режиме неподходящие версии/неизвестные версии/недостающие утилиты приводят к ошибке.
-
Документация
- Обновлены конфигурационные материалы, JSON-схемы и описание контракта результата
launch.
Closes upstream #28.
What changed
tools.platform.strictwith fail-closed explicit path resolution1cv8,1cv8c, andibcmdto one canonical installation root in strict modestrict: truewith a machine-local path supplied by the local overlayVerification
cargo fmt --all -- --check,cargo check --all-targets, andgit diff --checkpassedPlatform note
Windows-specific regressions cover cross-drive drive-relative PATH handling and case-insensitive executable/BIN/1CEDT identity. The local Homebrew Rust toolchain has no Windows standard-library target, so those cfg-gated tests require Windows CI/runtime confirmation.
Two pre-existing unrelated warnings remain in
tool_extension.rsandprocess.rs.Summary by CodeRabbit
Новые возможности
tools.platform.strictдля fail-closed резолва платформенных утилит без fallback-логики.launchтеперь возвращает расширенные платформенные сведения: канонический путь, версия (илиnull), источник обнаружения и корень установки.Исправления
tools.platform.path.Документация
launch.