Skip to content

Deepen mdo C5: Linux install shaped like the Windows plan/executor - #50

Merged
maphew merged 1 commit into
mainfrom
agent/6w5-c5-linux-plan
Oct 7, 2026
Merged

maphew merged 1 commit into
mainfrom
agent/6w5-c5-linux-plan

Conversation

@maphew

@maphew maphew commented Oct 7, 2026

Copy link
Copy Markdown
Owner

C5: Shape Linux integration install like the Windows plan/executor

Beads mdo-6w5.5 · parent epic mdo-6w5 (PR order 5 of 6)

What

The Linux install flow gets the mirror image of the Windows shape (pure plan + thin executor + typed results):

  • `linux_install_plan(data_home, current_exe, set_default)` — pure, unit-tested without spawn-capture: desktop-file/icon targets, entry content (carrying the C3 handler-invocation contract), default mimes, legacy-cleanup root.
  • `apply_linux_install_plan(plan)` — the only file-touching step; returns `LinuxInstallReport` (`Applied` / `NeedsManualHint` / `NotRequested`) instead of reporting through stdout mid-apply.
  • `print_linux_install_report(report)` — the executor-caller's CLI surface; lines mirror the pre-plan flow byte for byte (verified against the pre-epic binary: identical exit codes and output modulo the fixture paths).
  • The three `_impl` trampolines (`install` / `uninstall` / `integration_installed` across linux/windows/not-any) are collapsed into the pub fns on every platform, including the `not(any)` Unsupported fallbacks.
  • Dead pubs removed: `install_linux_for_exe`, `install_windows_for_exe` (zero external callers); the Windows body moved into `install()` verbatim. Doc references updated.

Scope line (per ADR-0004, Deferred)

Strictly the v0.6 minimal owned-registration check — no repair flows, no remnant cleanup, no partial-state classification; reopening ADR-0004 is out of scope. `scripts/uninstall-*.sh/ps1` legacy helpers are a known duplication but explicitly out of scope; a retirement decision would be its own ADR. Status stays in `file_manager`; dialogs and terminal spawning stay in `mdo-setup`.

Gates

fmt --check ✓ · clippy -D warnings ✓ · `cargo test --all-targets --all-features --locked` ✓ (77 lib tests incl. 3 new plan/executor tests; Windows registry-plan tests unchanged, still byte-exact) · render byte-identity harness ✓ · install-flow byte-diff ✓

Signed: kilo-kilo-auto-efficient on behalf of matt (Beads mdo-6w5.5)

C5 / Beads mdo-6w5.5 (epic mdo-6w5, PR order 5 of 6; stacked on the C3
branch).

Mirror image for the Linux side of the Windows shape the code already has
(pure plan + thin executor + typed results):

- linux_install_plan(data_home, current_exe, set_default) is a PURE
  function: the desktop-file/icon targets, the entry content (which now
  shows it carries the handler invocation contract), the default mimes,
  and the legacy-cleanup root - unit-testable without spawn-capture.
- apply_linux_install_plan(plan) is the only file-touching step; it
  returns LinuxInstallReport (paths written + LinuxDefaultOutcome:
  Applied / NeedsManualHint / NotRequested) instead of reporting through
  stdout mid-apply.
- print_linux_install_report(report) is the executor-caller's CLI
  surface; the exact lines mirror the pre-plan flow byte for byte
  (verified: install output diffed against the pre-epic binary modulo
  the fixture paths; both exit 0).
- The three _impl trampolines (install/uninstall/integration_installed
  across linux/windows/not-any cfg bodies) are collapsed into the pub
  fns directly, on every platform including the not(any) fallbacks.
- Dead pubs removed: install_linux_for_exe and install_windows_for_exe
  had zero external callers; the Windows body moves into install()
  verbatim (only the handler locals rename to avoid the new `handler`
  module import shadow). Doc references updated.

SCOPE LINE per ADR-0004 (Deferred): strictly the v0.6 minimal
owned-registration check - no repair flows, no remnant cleanup, no
partial-state classification; reopening ADR-0004 is out of scope. The
scripts/uninstall-*.legacy helper scripts are a known duplication but
explicitly out of scope; a retirement decision would be its own ADR.

Gates: fmt --check, clippy --all-targets --all-features -D warnings,
cargo test --all-targets --all-features --locked all green (3 new Linux
plan/executor tests; Windows-side tests unchanged and still asserting
the registry plan byte-exactly).

Beads-Ref: mdo-6w5.5

Agent-Signature: kilo-kilo-auto-efficient on behalf of matt
@maphew
maphew force-pushed the agent/6w5-c5-linux-plan branch from 2239ee7 to 326f012 Compare October 7, 2026 17:16
@maphew
maphew merged commit d3172fb into main Oct 7, 2026
3 of 4 checks passed
@maphew
maphew deleted the agent/6w5-c5-linux-plan branch October 7, 2026 17:16
@kilo-code-bot

kilo-code-bot Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 files)
  • src/file_manager.rs

Reviewed by efficient · Input: 50.3K · Output: 9K · Cached: 329K

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant