Skip to content

feat(omnidev): support pnpm through Corepack - #7863

Open
svenwb wants to merge 1 commit into
omnigent-ai:mainfrom
svenwb:feat/omnidev-corepack
Open

svenwb wants to merge 1 commit into
omnigent-ai:mainfrom
svenwb:feat/omnidev-corepack

Conversation

@svenwb

@svenwb svenwb commented Sep 20, 2026

Copy link
Copy Markdown

Related issue

Closes #7862

Summary

This is a quality-of-life improvement for developers who have Corepack installed but have not enabled the pnpm shim. pnpm is already a documented prerequisite; omnidev now accepts corepack pnpm as well, matching setup.py.

Resolve the install and Vite commands before startup, reuse them for restarts, and report setup instructions when neither tool is available. Skip readiness polling when Vite cannot spawn. Custom process profiles and --no-vite keep their existing behavior.

pnpm available?     yes -> pnpm
                   no  -> Corepack available? yes -> corepack pnpm
                                              no  -> setup instructions

Other workflows that invoke pnpm directly retain that prerequisite. Broader developer-toolchain setup is outside this change.

Test Plan

  • cd dev/omnidev && cargo fmt --check && cargo test --offline --locked: all 73 tests passed.
  • pre-commit run: passed on all five staged contribution files.
  • On Linux with Corepack available and no standalone pnpm on PATH, ran COREPACK_ENABLE_NETWORK=0 cargo run with the pinned pnpm already cached. Vite became ready; the UI and proxied /health returned HTTP 200. Pressed 3, then r to restart Vite and verified both responses again.
  • To reproduce manually, start cargo run from dev/omnidev in a configured checkout with Corepack but no pnpm shim. Confirm the Corepack fallback log, open the displayed UI URL, then press 3, r and verify the UI still loads. Quit with q.

Demo

  • Visual demo attached below
  • Non-visual evidence provided below or in Test Plan
  • Not applicable — no behavioral change

N/A for visual media; this changes development-tool startup. Reproducible evidence is in Test Plan.

Type of change

  • Bug fix
  • Feature
  • UI / frontend change
  • Refactor / chore
  • Docs
  • Test / CI
  • Breaking change

Test coverage

  • Unit tests added / updated
  • Integration tests added / updated
  • E2E tests added / updated
  • Manual verification completed
  • Existing tests cover this change
  • Not applicable

Coverage notes

Tests exercise install/Vite arguments through a fake Corepack executable, standalone pnpm preference, missing or non-executable tools, and custom profile preservation. The binary-level regression test verifies missing tools produce actionable instructions before entering the TUI or starting servers. Startup and Vite restart were also verified manually on Linux; macOS was not tested.

Strict Clippy reports existing warnings in unchanged code: unnecessary_map_or in pod.rs and search_is_some in omnigent_cmd.rs.

Changelog

omnidev can use pnpm through Corepack without enabling its shim and gives setup instructions when neither tool is available.

Signed-off-by: Sven Wagner-Boysen <3901085+svenwb@users.noreply.github.com>
@github-actions github-actions Bot added size/L Pull request size: L waiting-for-review labels Sep 20, 2026
@github-actions
github-actions Bot requested a review from PattaraS September 20, 2026 11:22
@github-actions github-actions Bot added the P2-medium Priority: bug with workaround, important feature request label Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2-medium Priority: bug with workaround, important feature request size/L Pull request size: L waiting-for-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Let omnidev use pnpm through Corepack

2 participants