Skip to content

Shaping: the Platform Launchpad reaches parity with the resident Launchpad and replaces it (proposed decision F22) - #65

Merged
immakermatty merged 10 commits into
mainfrom
claude/DEV-6626-launchpad-parity-shaping
Sep 28, 2026
Merged

immakermatty merged 10 commits into
mainfrom
claude/DEV-6626-launchpad-parity-shaping

Conversation

@immakermatty

@immakermatty immakermatty commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Why

Decision of the Principal on 2026-09-28: maximum priority for the Platform Launchpad. It takes the concepts of the resident Launchpad and does them properly, so that Machines switch fully to it in one apply. No period with both Launchpads side by side, no transition hostname, no rollback. First usable version for hosted Remote Environments on Ubuntu; macOS and Windows later, planned in outline.

What this adds

One document, docs/launchpad-parity.md, the shaping of proposed decision F22. No product code.

  • A. The complete inventory: what the resident Launchpad does, what the Platform has, the gap.
  • B. Concept by concept: what was accidental in the old implementation and the Platform design, CLI first, no new Folder state (catalog, toolchain, module lifecycle, hosted links, gateway ensure, logs, Organizations, Chat into T3 Code, doctor, SSH keys, Personalspace, Team Environment, the unit, worktree previews as temporary leases).
  • C. The hosted switch in one apply: preconditions, the order of steps with the point of no return after read-only checks, the acceptance checklist of a switched Machine, the order of repositories, qualification on a disposable Ubuntu VM.
  • D. The workstation, macOS first.
  • E. Slices with dependencies and sizes, the switch line per kind of Environment, the rebuild of personal VMs on Ubuntu 24.04 with state transfer (M6) and its acceptance without re-pairing.
  • F. What is deliberately not carried over, confirmed by the Principal.
  • G, H, I. Risks, the Principal's answers of 2026-09-28 (H1, H3, H4, H6 decided; H2, H5, H7 proceed on the recommendation), what could not be determined.

The Mission Control plan DEV-6628 and roadmap steps 032–038 follow this document; the root decision register carries it as row 0167 (HumanAndMachines/Lazurio pull request 442).

Verification

bun run check:public passes. Every statement about code is cited; the ones the author could not verify are marked.

Refs #50

🤖 Generated with Claude Code

Note

Add launchpad-parity design document for Platform Launchpad replacing resident Launchpad

Adds docs/launchpad-parity.md, a design and migration document for decision F22. It inventories resident and Platform Launchpad capabilities and covers the catalog, module lifecycle, handover, gateway contracts, logging, sync, Chat, doctor, SSH, Personalspace, supervision, and worktree previews. It also defines the migration sequence, preflight and acceptance checks, recovery boundaries, and implementation slices. This is analysis and design only; no implementation is included.

Macroscope summarized a52d93c.

…nt in one apply

Inventory of every resident Launchpad capability against the Platform, the
concept-by-concept design (CLI first, no new Folder state), the hosted switch
without a side-by-side period and without rollback (depends on F21 Recovery
mode), workstation parity for macOS, slices with the switch line, what is not
carried over, risks and questions. Proposes F22. Analysis only, no code.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
immakermatty and others added 4 commits September 28, 2026 13:58
H1: canonical-only Organizations run applications (F22 point 1 stands).
H3: previews of a pull request on hosted Work Machines go through SSH port
forwarding to a localhost link, so P9 leaves the switch line; recommended
to drop it. H4: agent-led clone until P10. H6: Lazurio-Environment trailer.
H2, H5, H7 stay open; implementation proceeds on the recommendations. The
three drops of section F are confirmed. The approved shell's proof of
concept finishes in the resident Launchpad and is the input for the visual
design (B1, G). Linux means Ubuntu 24.04 in the first phase (C.5, E).
Machines does not roll back either (C.6). The strict install one-liner.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
H3: SSH port forwarding with a localhost link works only when an agent on
the operator's own computer is connected over SSH, not from the web T3
Code on the Machine. The preview path is an open design question
(candidates: SSH forwarding, a per-worktree hostname through the gateway);
P9 stays off the switch line and is not dropped.

Hosted personal VMs are rebuilt on Ubuntu 24.04 at the next Machines
rollout; recommended as a separate Machines slice M6, before M5.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
H3 decided in direction: a worktree gets a temporary Environment URL
registered like a module's hostname. New B14 proposes the rules: a
catalog declaration served as a plain admitted proxy, a lease with a
24-hour time to live renewed on open, ended by unit exit, free port,
removed worktree or a merged or closed pull request (checked on open and
list), a cap per Machine, "Stop preview", no Folder state. The label keeps
root decision 0146's single hyphen because the catalog merges "--"; one
label stays under the Machine's wildcard certificate. P9 stays off the
switch line.

M6 becomes a rebuild with state transfer: Machine identity, tailnet node,
SSH host keys and the operator's home including the Buddy are carried and
proven by a readback; the inventory is part of the slice.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…uidance in the Folder

M6: acceptance criteria as the Principal states them, each with its
readback: T3 Code pairing keeps working, the Buddy is back with its
memory, SSH works with the same keys and host identity, the gh sign-in is
intact; the outage window is announced beforehand. T3 Code's pairing state
is carried explicitly.

P9/B14: the hosted Folder instructions tell agents that a preview is
reached only through its temporary URL or the operator's own SSH
forwarding, never a localhost link (template revision bump); an interim
sentence goes into the hosted manual at the next template change.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@immakermatty
immakermatty marked this pull request as ready for review September 28, 2026 12:29

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@immakermatty — exact-head review of a52d93c. The Ubuntu and macOS checks pass on this head; check:public also passes locally. I request changes to the shaping document before accepting its authority or switch procedure.

  1. Decision attribution (docs/launchpad-parity.md:3-7, 43-45, 460-465, 900-922, 943-965): H3 is presented as a Principal-accepted temporary preview URL and lease direction. The root decision-register row 0167 in HumanAndMachines/Lazurio#442 explicitly leaves hosted PR previews open, says only that worktree source is off the switch line, and calls for design later; merged DEV-6628 (mission-control-data#175, open_questions H3) does not record acceptance of this URL/lease. Keep the URL and its lease as a shaping proposal unless the Principal decision is first recorded in the authority register. The F22 proposed-decision block also says launchpad.gen3*.json have no successor, while H5 and row 0167 point 9 explicitly label that as unconfirmed proposal; distinguish it there too.

  2. Non-executable handover example (docs/launchpad-parity.md:280-300): entry.launchpad.listen_port is 0, but parseHostedEntry rejects any listenPort below 1 (src/launchpad/hosted-trust.ts:74-79). P3 promises to project this entry and start the installed service on it. Use the real nonzero gateway route port in the example and specify the wire-to-binding conversion; otherwise following B4 produces an invalid binding and C.2 cannot start.

  3. Unit ownership at the point of no return (docs/launchpad-parity.md:592-599): deleting lazurio-launchpad.service whenever it lacks the installer marker would also delete an unrelated operator-owned unit. The product explicitly classifies such a unit as foreign and refuses to overwrite it (src/update/install.ts:173-183; src/update/service-control.ts:15-20). Require positive proof that it is the exact Machines-owned resident unit, and block on any other foreign unit rather than using marker absence as deletion authority.

These are document changes, not a request to implement the switch in this PR. Existing source facts for the Bun flag, Host rewriting and resident unit were corroborated at the cited frozen SHAs. No merge performed.

…2, the handover example carries a real port and the wire-to-binding projection, the switch removes only the proven Machines-owned resident unit

Pablo's review of a52d93c: (1) the preview direction is now recorded as the
2026-09-28 addendum of root decision 0167 (HumanAndMachines/Lazurio#442) and
cited here; the F22 block labels the launchpad.gen3*.json successor question
(H5) as the unconfirmed proposal it is. (2) The handover example used
listen_port 0, which parseHostedEntry refuses; it is now the real route port
and the projection of every wire member into the binding is specified.
(3) The point of no return removes the resident unit only after positive
proof (byte-for-byte the unit Machines renders for this Machine, no Platform
marker); any other unit is foreign and stops the apply, as the product's own
rule says.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@immakermatty — exact-head re-review of 201e5ae (replaces my REQUEST_CHANGES on a52d93c). APPROVED for the shaping document only.

All three prior findings are addressed: (1) H3 now cites the 2026-09-28 addendum to decision 0167 in HumanAndMachines/Lazurio#442; the decision-register row at af9d907 records the temporary preview URL/lease direction while B14 rules remain proposals, and F22 labels H5/unconfirmed launchpad.gen3*.json successor as a proposal. (2) The handover sample uses listen_port 20000 and enumerates every wire-to-binding member, with validation before recording; parseHostedEntry requires 1–65535. (3) C.2 step 5 requires positive byte-for-byte proof against this Machine’s Machines-rendered resident unit before disabling/removing it; any other unit stops the switch without removal.

Platform checks succeeded on Ubuntu and macOS for this SHA (run 36425882141). Local bun run check:public: PASS (316 files); git diff --check origin/main...HEAD: clean. No unresolved review threads. This is documentation, not implementation or switch authorization. Dependency hold: decision-register PR HumanAndMachines/Lazurio#442 remains OPEN; do not treat its unmerged addendum as main-branch authority or merge/publish this shaping as accepted authority before that decision is accepted. The PR currently reports BEHIND live main, so re-evaluate base/integration gates before any merge. No merge performed.

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@immakermatty — APPROVED on exact head 6e8f76a for docs/launchpad-parity.md (shaping only). The 201e5ae..6e8f76a delta contains only integrations of main (#62, #63, #66, #68, #69, #71); the document has a byte-identical Git tree blob to the previously approved head. Local bun run check:public passes (344 files), git diff --check is clean, and both Platform checks (ubuntu-24.04 and macos-14) passed on this exact SHA. Zero unresolved review threads, no pending review requests, and live main is integrated. Dependency hold: HumanAndMachines/Lazurio#442 is still open; do not merge #65 until #442 is merged and all live merge gates are rechecked. No merge or product switch authorization here.

@immakermatty
immakermatty merged commit 0f94e7b into main Sep 28, 2026
3 checks passed
@immakermatty
immakermatty deleted the claude/DEV-6626-launchpad-parity-shaping branch September 28, 2026 14:50
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