Status: Accepted Scope: Windows-first distribution after Phase 8.1
Phase 8.1 implemented safe MCP discovery and project hooks in the lore binary, but the repository did not yet provide a repeatable installation path. A package must be usable without Rust, must not duplicate integration logic, and must never discover repositories by recursively scanning the machine.
- The first distribution artifact is a versioned Windows ZIP containing
lore.exe, PowerShell installers, and.cmdlaunchers for double-click/Command Prompt use. - The installer uses a user-local default directory,
%LOCALAPPDATA%\Lore\bin, and adds only that directory to the user PATH. It does not require administrator privileges. - The installer accepts an explicit
-ProjectPath. In interactive mode it may offer the current directory only when that directory contains.git; in non-interactive mode it never prompts or scans other directories. - The installer runs
lore setup --checkbefore any integration mutation. Applying MCP configuration and project hooks requires-ApplySetupor an interactive confirmation, and delegates all detection, ownership, backup, rollback, and handshake behavior to the binary. - The installer records the selected project in a local manifest so the uninstaller can remove Lore-owned hooks and integrations without guessing. Lore data under
LORE_HOMEis preserved by default. - Updates reuse the same idempotent installer and replace only the installed executable. No MSI-specific implementation is introduced until a Windows packaging tool and signing pipeline are authorized.
- CI produces the ZIP and its SHA-256 as a Windows artifact. A public GitHub Release is the preferred first distribution channel; crates.io remains optional and is not the installation mechanism for post-install setup.
- The current ZIP contains an unsigned executable (
Authenticode: NotSigned). Signing is deferred until a certificate and an authorized pipeline exist; the published SHA-256 remains the integrity check in the meantime.
- Users can install and update Lore on Windows without Rust or a global machine change.
- Project scope remains explicit and auditable; installing Lore never scans drives or modifies unrelated repositories.
- The package is portable and reproducible with built-in PowerShell/Cargo tooling, but it is not an MSI yet.
cargo install --path . --lockedremains useful for contributors and local development, while release users can consume the ZIP.
- PowerShell scripts parse successfully on Windows PowerShell/PowerShell 7.
- Package creation builds
lore.exewithcargo build --release --locked, includes the expected files, and emits a SHA-256 hash. - Installation into a temporary user-local directory is idempotent, updates the user PATH once, and supports
-SkipSetup. - Explicit project onboarding runs check before apply, does not scan outside the provided path, and records the project in the manifest.
- Uninstallation removes only the package binary/manifest and Lore-owned integrations, preserves
LORE_HOME, and is idempotent.