Skip to content

fix(desktop): stabilize managed runtime status and errors - #110

Merged
tulayha merged 3 commits into
mainfrom
fix/desktop-install-errors
Aug 7, 2026
Merged

fix(desktop): stabilize managed runtime status and errors#110
tulayha merged 3 commits into
mainfrom
fix/desktop-install-errors

Conversation

@tulayha

@tulayha tulayha commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Accept Desktop-managed POSIX virtual environments when their Python executable resolves to uv's shared base interpreter, while still requiring both the VidXP launcher and reported environment prefix to belong to the Desktop-owned runtime.
  • Keep managed-install failures visible in the setup dialog until acknowledged, and place other setup errors consistently where the UI focuses them.
  • Serialize local-worker status polling, show worker failures beside the processing control, and clear stale failures after a successful authoritative result.
  • Make the tray report compact, truthful states: omit redundant Ready, distinguish Not installed, Unavailable, and Status unknown from Off, and identify actions that start a stopped service.
  • Preserve downloaded model files for reuse after a failed installation attempt.

The macOS setup failure occurred after package and model preparation because the final compatibility check rejected a legitimate virtual-environment interpreter symlink. The contradictory Windows page had a separate cause: worker status was polled on a fixed interval while earlier subprocesses could still be active, and a timeout stored in the shared page banner was not cleared by a later successful status. The tray also conflated installation readiness, capability availability, and service runtime state, producing combinations such as Ready with an unavailable service labeled Stopped.

There is no storage migration or index rebuild.

Validation

  • python -m build — built the Python sdist and wheel consumed by the Desktop build.
  • npm --prefix desktop run sidecar:windows — fetched and verified the pinned uv sidecar required by the Rust build on this machine.
  • npm --prefix desktop run typecheck — checked the Desktop TypeScript project.
  • npm --prefix desktop run lint — linted the Desktop frontend.
  • npm --prefix desktop test -- --run src/App.test.tsx — ran 28 mocked Desktop UI lifecycle tests, including persistent install-failure and worker-timeout recovery coverage; this is not end-to-end validation.
  • npm --prefix desktop run build — produced the production Vite frontend bundle.
  • cargo test --locked --manifest-path desktop/src-tauri/Cargo.toml — ran all 81 Rust unit tests, including managed-runtime ownership and compact tray-state regressions.
  • cargo fmt --manifest-path desktop/src-tauri/Cargo.toml -- --check
  • git diff --check

A real macOS Desktop installer was not available from this Windows worktree, so the original installer path still needs a macOS smoke test.

BEGIN_COMMIT_OVERRIDE
chore(desktop): stabilize managed runtime status and errors
END_COMMIT_OVERRIDE

@tulayha
tulayha marked this pull request as ready for review August 7, 2026 10:31
@tulayha tulayha changed the title fix(desktop): accept macOS managed Python runtimes fix(desktop): stabilize managed runtime validation and errors Aug 7, 2026
@tulayha tulayha changed the title fix(desktop): stabilize managed runtime validation and errors fix(desktop): stabilize managed runtime status and errors Aug 7, 2026
@tulayha
tulayha merged commit 1b0d0a3 into main Aug 7, 2026
10 checks passed
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