Skip to content

fix(run): isolate service toolchain requirements - #278

Merged
1lck merged 4 commits into
previewfrom
codex/isolate-run-toolchains
Aug 27, 2026
Merged

fix(run): isolate service toolchain requirements#278
1lck merged 4 commits into
previewfrom
codex/isolate-run-toolchains

Conversation

@1lck

@1lck 1lck commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • scope missing and incompatible toolchain diagnostics to only the run configurations that consume them
  • keep Spring Boot and Vue services independent so a missing Node runtime blocks frontend services without blocking Java/Maven backend services
  • discover, select, and persist Windows Node runtimes in the machine-local toolchain document
  • use one effective automatic Node path for both version validation and process launch
  • keep Go, Python, Cargo, and Gradle PATH-based until Windows exposes configurable registries for them
  • keep Bun independent from Node and execute the shared Spring Boot + Vue fixture in Rust Core tests
  • reconcile older v2 run documents during resolution so upgrades gain service-scoped runtime consumption without regeneration

Review fixes

  • detector-owned runtime consumption: npm, pnpm, and Yarn consume Node; Bun does not
  • legacy v2 npm commands gain the effective Node binding in memory, while stale Bun-to-Node bindings are removed
  • requirements without a configuration consumer no longer create project-wide blocking diagnostics
  • nested Gradle consumers generate the JDK requirement even when Java sources are absent
  • Windows prefers executable shims such as npm.cmd over extensionless Bash scripts
  • selected Node package-manager commands resolve beside the selected node.exe and never fall back to another PATH installation

Windows VM verification

  • Windows ARM64 Release build passed
  • Windows Tauri Rust tests passed: 92/92
  • both new npm resolution regression tests passed on Windows
  • frontend production build and TypeScript typecheck passed as part of the Release build
  • focused Windows Run tests passed: 22/22
  • with Node unavailable, backend selection remains free of Node diagnostics while frontend configurations are blocked

Local verification

  • Rust Core passed: 244/244 plus 5/5 Git watch tests
  • Rust Core bridge verification passed
  • macOS passed: 631/631
  • Windows Run frontend passed: 22/22
  • shared contracts, service boundaries, and Windows boundaries passed
  • Cargo formatting, Rust Core comments, TypeScript typecheck, and diff checks passed

Closes #277

@1lck

1lck commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

Addressed the review findings in e7df360:

  • Windows no longer receives synthetic Go, Python, Cargo, or Gradle runtime requirements that it cannot resolve. These providers retain their PATH-based process commands; Gradle declares only its supported JDK consumption.
  • Automatic Node discovery now produces a session-effective executable path used by both compatibility validation and launch. Explicit user selection still wins and only explicit selections are persisted.
  • Bun scripts retain the bun command and no longer consume project-node.
  • The shared hybrid Spring Boot + Vue fixture is now executed by Rust Core tests, protecting the original service-isolation requirement.

Verification includes Rust Core 242/242, Git watch 5/5, macOS 631/631, Windows Run frontend 22/22, and a Windows ARM64 Release build plus Tauri Rust tests 91/91.

@1lck

1lck commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

Addressed the four follow-up findings in a458c85:

  1. Windows executable resolution now prefers .exe, .cmd, and .bat before extensionless files. A realistic Node directory containing both npm and npm.cmd is covered.
  2. Older v2 documents are reconciled at resolution time. Legacy npm commands consume project-node, orphan requirements do not block globally, and Spring Boot remains independent without forcing regeneration.
  3. Once project-node is selected, npm/pnpm/Yarn resolve only from that Node installation. A missing shim fails explicitly instead of launching another PATH installation.
  4. JDK requirement generation now follows actual project-jdk consumers, including nested Gradle services without Java source files.

The original Spring Boot + Vue requirement remains protected: missing Node blocks only the frontend configuration.

Verification: Rust Core 244/244, Git watch 5/5, macOS 631/631, Windows Run frontend 22/22, and Windows 11 ARM64 Release build plus Tauri Rust tests 92/92.

@1lck

1lck commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

@lithe review

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Lithe Review

结论: ❓ 审查未完成

审查状态:cancelled
请查看本次 Actions 日志与诊断附件后重新召唤。

@1lck
1lck merged commit 6e85633 into preview Aug 27, 2026
15 checks passed
@1lck
1lck deleted the codex/isolate-run-toolchains branch August 27, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant