Skip to content

docs(rfc): RFC-CLIENT-0003 — one installer core: Linux-first, thin OS adapters - #434

Open
LukasWodka wants to merge 1 commit into
developfrom
docs/rfc-0003-one-installer-core
Open

docs(rfc): RFC-CLIENT-0003 — one installer core: Linux-first, thin OS adapters#434
LukasWodka wants to merge 1 commit into
developfrom
docs/rfc-0003-one-installer-core

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds RFC-CLIENT-0003 — One installer core: Linux-first, thin OS adapters (docs/rfcs/0003-one-installer-core.md), the strategy decision from the 2026-07 multi-environment installer sweep (epic tracebloc/backend#1285, 25 children).

Core proposal:

Type

Docs (RFC — decision record)

Test plan

Docs-only; no installer script, chart, or workflow touched. Verified the document renders, the qualified-ID header matches the RFC-CLIENT-0001/0002 convention, next free number in this repo is 0003 (0002 is in-flight on #369), and no customer names or internal hostnames appear (public repo).

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only RFC; no installer scripts, CI workflows, or runtime behavior change in this PR.

Overview
Adds RFC-CLIENT-0003 (docs/rfcs/0003-one-installer-core.md), a decision record for installer architecture after the tracebloc/backend#1285 multi-OS sweep.

It proposes D1/D2: treat the Linux bash core as the single behavioral implementation, keep macOS as a thin adapter (brew paths consolidated per #429), and eventually replace the Windows PowerShell monolith with a WSL2 bootstrap that runs the bash core inside WSL—gated on RFC-CLIENT-0001 rootless validation on managed Windows hardware; PowerShell stays the supported path until then.

D3–D5 are called out for near-term adoption: a shared machine-readable facts spec with CI drift checks, a feature×OS parity matrix in CI, and a real Windows e2e leg (not mocked Pester only). An interim rule allows Wave-1/2 PS fixes for live installs but blocks new large PS-only subsystems (e.g. #420 gated on the D2 outcome).

Reviewed by Cursor Bugbot for commit dfa7fa1. Bugbot is set up for automated code reviews on this repo. Configure here.

… adapters

Records the strategy decision from the 2026-07 multi-environment installer
sweep: single Linux bash core, thin macOS/Windows adapters (Windows adapter
gated on the rootless-in-WSL validation, backend#1179), facts single-sourcing
+ CI parity gate + a real Windows e2e leg regardless of the gate outcome.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@LukasWodka LukasWodka self-assigned this Jul 27, 2026
@LukasWodka
LukasWodka requested a review from saadqbal July 27, 2026 13:39
@LukasWodka

Copy link
Copy Markdown
Contributor Author

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit dfa7fa1. Configure here.

@shujaatTracebloc shujaatTracebloc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed — approving.

Docs-only RFC (single new file docs/rfcs/0003-one-installer-core.md), CI fully green including Cursor Bugbot (0 findings), no open review threads.

Verified the content, not just the format:

  • All 8 client-side references are accurate#382 (closed, k3d pin in bash), #410 (pin missing in PS install-k8s.ps1), #429 (macOS bare-brew bypass), #411 (execute-gate), #426 (k3d/helm timeouts), #423 (Windows error-surface), #412 (Windows infinite spinner), #420 (resume/state engine, correctly flagged as gated by the interim rule). Each title matches the claim it supports.
  • Backend epic refs check out — #1285 (installer sweep epic), #1179 (Windows/WSL2 least-privilege child), #1168 (least-privilege epic).
  • Numbering is correct — 0003 is the next free slot; 0002 is legitimately in-flight on #369, which adds the file at 0002-least-privilege-install.md — exactly the path this RFC's relative link targets, so that link resolves once #369 merges.
  • No customer names or internal hostnames (public repo). Renders correctly.

Non-blocking: the ./0002-least-privilege-install.md link is a soft-dangling reference on develop until #369 merges, but the filename matches and the in-flight status is noted inline — it self-heals on merge order. Nothing to change here.

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.

2 participants