Files
paseo/MANAGED_CLI_GLOBAL_INSTALL_LOOP_PLAN.md
T

5.1 KiB

Managed CLI Global Install

Status

Implemented on this branch.

The original plan was to replace the desktop app's state-file trampoline CLI install flow with a stable outer shim, a bundle-managed inner launcher, structured install results, UI fallback instructions, and Docker-like CLI default host resolution. That work now exists in code and this file records what shipped.

What Exists

Desktop runtime and launcher

  • The desktop runtime bundle is assembled by build-managed-runtime.mjs.
  • The Tauri runtime manager now maintains:
    • a stable inner launcher under bin/
    • a trivial outer PATH shim
    • structured CLI install/uninstall results
    • manual install instructions
  • The old --paseo-cli-shim <state-file> trampoline is no longer the installed shim path.

Relevant files:

App UI and desktop bridge

  • The desktop bridge exposes a structured CliShimResult with explicit statuses and optional manual instructions.
  • The desktop settings UI now:
    • warns that a permissions prompt may appear before install starts
    • opens a dedicated modal when manual install is required
    • shows copyable platform-specific commands

Relevant files:

CLI default host resolution

  • The CLI now resolves default daemon targets in this order when --host is not provided:
    1. local IPC target if discoverable
    2. configured non-default TCP target
    3. localhost:6767

Relevant files:

Files Created For This Work

Acceptance Check

  • Stable outer shim: covered by runtime-manager tests that assert the outer shim forwards to a stable inner launcher and does not encode runtime-specific roots.
  • Inner launcher: implemented inside the managed runtime tree and invoked directly by the outer shim.
  • Structured install results: implemented in Rust and parsed in TypeScript without string matching.
  • Permission notice and fallback modal: implemented in the desktop settings UI.
  • macOS global target: /usr/local/bin/paseo.
  • CLI host ordering: covered by CLI tests, including the non-default TCP fallback case.

Verification

  • Run npm run typecheck
  • Run targeted tests for the CLI and desktop-managed runtime paths
  • Perform a manual macOS smoke check for the privileged /usr/local/bin/paseo install flow

Remaining Manual Validation

  • Privileged install and uninstall prompts still need the normal on-device macOS smoke pass.
  • Merge readiness depends on the branch test pass after rebasing onto origin/main.