Skip to content

feat(installer): bootstrap a managed local PowerContext runtime #2115

Open

Description

@knqiufan

Goal

Prepare a verified, isolated local PowerContext runtime from Desktop on Windows 11 x64 and macOS Apple Silicon/Intel without requiring preinstalled Python, uv, Git, or compilers. Network installation of pinned compatible resources is the first-wave delivery.

Parent: #2114. First-wave release: #2099. Linux #2110 / #2111 is optional and does not block this issue.

PR breakdown

  • PR 10-A — Installation resources, plans and recovery contract. Define supported resource/version identities, ownership records, non-mutating preflight, approved plan identity, paths, locks, operation status, cancellation boundaries and interruption recovery. Define how existing installations, occupied ports, unsupported database versions and environment damage are reported.
  • PR 10-B — Bootstrap, install and repair. Obtain and verify compatible resources, prepare the managed runtime, invoke supported configuration/service operations and persist per-component results. Implement repeat-run recovery and repair for owned installations without overwriting user-managed environments or data.

Dependencies and coordination

Acceptance criteria

  • The installation entry starts on a clean supported machine without a system Python. A managed Python runtime may run the Server after bootstrap; Windows includes the required pythonw.exe.
  • Sources, platform/architecture, exact versions, checksums and trust decisions are native/producer-owned. Untrusted renderer URLs or a checksum supplied beside an untrusted download cannot authorize execution.
  • Runtime dependencies are resolved from verified compatible distribution resources; users do not compile dependencies or clone repositories. Existing PATH/tools are not silently replaced.
  • Programs, protected configuration and user data have separate locations/ownership. First use defaults to SQLite/user data and model-free basic operations, following the local policy in Tracking: deliver personal local Server setup and management in Desktop #2114.
  • Preflight distinguishes owned/current, missing, repairable, foreign/unknown, occupied-port and incompatible states. Apply revalidates the approved target and cannot silently take over an existing service.
  • Repeated installation, interrupted download, integrity failure, partial setup and Desktop exit preserve prior results and expose a supported resume/repair action; secrets never enter progress/journals.
  • Configuration, service registration, service readiness and usable connection are separate outcomes. Return actual endpoint/installation identity and supported secure credential references rather than guessed defaults.
  • Repair preserves user data and configuration choices. An incompatible existing database requires supported migration/maintenance; do not delete it or run an incompatible old runtime.
  • Clean Windows/macOS acceptance uses the published resource identities; failures are actionable and work is not credited from fixtures alone.

Non-goals

Automatic Agent setup, arbitrary source builds, global Python modification, automatic version upgrades, arbitrary database migration/rollback, complete offline distribution, and first-wave Linux delivery.

Metadata

Metadata

Assignees

Labels

desktopDesktop application, native platform integration, and packaging

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions