Skip to content

P0 Phase-L: add one-command local demo launcher #315

Description

@gnanirahulnutakki

Problem

The completed Phase-L product has three entry surfaces (sith, sith ui, and sith desktop) but no obvious one-command graphical launch path. This makes a healthy, feature-complete local client feel unfinished during first-run and demo use.

Scope

Add sith launch as orchestration over the existing local surfaces. It must not create another UI, deploy fixtures, persist kubeconfig paths, or change the local-versus-governed action boundary.

Acceptance criteria

  • sith launch selects the native desktop on macOS and the loopback-only web UI on other supported platforms.
  • --mode auto|desktop|ui provides an explicit override and rejects unknown values.
  • --kubeconfig-dir reuses the existing bounded, in-memory directory importer.
  • UI-only listener/browser flags remain explicit and are rejected when desktop mode is selected rather than silently ignored.
  • Missing backends, unsupported desktop platforms, invalid paths, and cancellation fail safely with sanitized errors.
  • Unit tests cover mode selection, invalid combinations, dependency validation, and command registration.
  • README first-run and demo guidance leads with sith launch.
  • No workload, credential, telemetry, external listener, or cluster mutation is introduced by the launcher itself.

Verification

  • Focused race tests for internal/cli.
  • Full make ci.
  • Local launch smoke using an isolated kubeconfig-directory fixture.

Refs #29 #34 #166 #27.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureFeature / child issuelocal-modeLocal fleet client / adoption wedgephase-LPhase L: local mode (day 0 adoption wedge)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions