Repository navigation
Shaping: the Platform Launchpad reaches parity with the resident Launchpad and replaces it (proposed decision F22) - #65
Conversation
…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>
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>
agentrozjedemeai
left a comment
There was a problem hiding this comment.
@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.
-
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.
-
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.
-
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
left a comment
There was a problem hiding this comment.
@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.
…hpad-parity-shaping
…hpad-parity-shaping
…hpad-parity-shaping
…hpad-parity-shaping
agentrozjedemeai
left a comment
There was a problem hiding this comment.
@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.
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.ensure, logs, Organizations, Chat into T3 Code, doctor, SSH keys, Personalspace, Team Environment, the unit, worktree previews as temporary leases).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:publicpasses. 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.