Skip to content

VALUE-08 — Low-friction distribution #146

Description

@daniele21

Goal

Remove repository-development setup from the normal user path: obtain Performance Lab, launch it locally, connect an external inference target and reach Find best setup without cloning the repo or manually assembling Python/frontend environments.

Delivery / REAL_ENVIRONMENT policy

Software slices may be integrated incrementally into dev once their repository-owned deterministic gates pass. REAL_ENVIRONMENT acceptance is intentionally deferred until the planned software modifications are integrated and dev is the consolidated candidate. VALUE-08D remains required for final representative install/use acceptance, but it no longer blocks integrating VALUE-08A/B/C software.

Current gap on dev

  • release packaging already builds an immutable ZIP containing the built frontend plus Python wheel and validates it with package smoke/full product E2E;
  • the artifact still requires the user to create an isolated Python environment, install the wheel, author a StarterRunConfig, and run performance-lab-ui manually;
  • normal local development still requires uv, Node/pnpm and repository checkout;
  • serving/model lifecycle must remain external; Performance Lab must not become a model downloader/server.

Vertical slices

VALUE-08A — Artifact-owned launcher

Define and implement the narrowest supported launcher path that owns Performance Lab setup/runtime lifecycle while keeping model serving external. The launcher must remain loopback-only, bounded and cleanly stoppable.

VALUE-08B — First-run connection flow

Allow a user to launch the product without pre-authoring JSON, connect/probe a Local LLM Server/OpenAI-compatible target from the existing UI, and persist only safe local connection preferences (never raw credentials).

VALUE-08C — Distributed artifact acceptance

Exercise the exact distributed artifact from clean state through launch -> connect -> Find best setup -> one bounded evaluation using the deterministic fixture, then retain package/source identity and cleanup evidence.

VALUE-08D — Representative install/use smoke

After software convergence on dev, on a representative desktop verify the documented installation/launch path and a real external LLS connection without repository-development tooling.

Material decision intentionally not guessed

The repository does not currently choose a native desktop container/installer technology. VALUE-08A must first prefer the smallest extension of the existing validated ZIP/wheel/browser product unless a native-app requirement is explicitly adopted. Do not introduce Electron/Tauri/PyInstaller/DMG/MSI packaging speculatively.

Acceptance

  • normal usage does not require cloning/editing/building the repository;
  • user does not need Node/pnpm or the source tree;
  • launch owns only bounded local Performance Lab processes/listeners;
  • inference serving/download lifecycle remains external;
  • connection setup reaches the existing decision-first UI;
  • distributed artifact has immutable source/build identity, checksum and packaged E2E evidence;
  • credentials are never persisted in portable evidence.

Non-goals

  • bundling Local LLM Server/model weights;
  • hosted SaaS/control plane;
  • choosing a native desktop framework before product need requires it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions