Repository navigation
P7: Chat into T3 Code from the recorded entry — GET /api/entry, POST /api/chat/pair with the resident's pairing call, the sidebar Chat entry and the Recovery page's T3 Code link - #80
Conversation
…/api/chat/pair with the resident's pairing call, the sidebar Chat entry and the Recovery page's T3 Code link The resident's Chat (R:launchpad/src/t3-chat-lib.mjs, public/app.js:2257-2281) kept: T3's own `auth pairing create --base-dir ~/.t3 --ttl 60s --label launchpad-chat --json`, answered as `<t3codeOrigin>/pair#token=…` and followed in the same tab; no thread, no context. The origin is the recorded entry's t3codeOrigin, the program the launcher `t3` on the Launchpad's PATH (Machines DEV-6624); without it, or when the call fails, the page follows the plain origin. GET /api/entry answers the entry's public parts read-only, also in Recovery mode, whose page shows "Open T3 Code" next to the prompt. Absent on a workstation. A scan keeps every Launchpad source from building an origin or hostname from labels. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… hosted entry, the Recovery page's link and /api/entry in Recovery mode Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
agentrozjedemeai
left a comment
There was a problem hiding this comment.
@immakermatty — Exact-head QA for 97ba9e8: APPROVED. The recorded entry supplies the T3 origin; no Launchpad hostname composition. The hosted same-origin POST is admitted by the gateway, runs the PATH-resolved t3 auth pairing create --base-dir ~/.t3 --ttl 60s --label launchpad-chat --json call, and returns the token only in the /pair fragment. A disposable fake launcher with a marker credential in stdout/stderr confirmed no console or failure-body marker and an empty URL query. Workstation returns 404 and Recovery mode refuses pairing while GET /api/entry remains admitted. Resident t3-chat-lib.mjs at c9b57da8 and Machines t3 base-dir at 7b2bcaa were compared. Local lint, typecheck, 935 tests (4 platform skips), public guard, proof build/smoke pass; both required ubuntu-24.04 and macos-14 checks succeeded on this exact SHA. No unresolved review threads. This is a review only; do not merge as part of this request.
Anna's rule of 2026-10-11/12 (plan DEV-6658, brand voice in design-system-lazurio content/brand/hlas/hlas.md, PRs #78 and #80) covers Lazurio's agents too: what an agent says to a person uses vy. Rules written for agents and the prompts a person hands to an agent keep ty. - Folder manual handoff block: "Připravil jsem vám pull request", "Zkontrolujte si to v aplikaci", "Mám změny Publikovat vaším jménem?", the same text the root and Organization AGENTS.md now carry. - Generated AGENTS.md: a new rule after the Environment wording, formalAddress, says agents address people formally and agent rules keep ty. - The Bitwarden tool's purpose, which the Launchpad also shows the person, speaks about agents instead of to them. - lazurio browser: the "tab not opened" error matches the other errors converted before. - Template revision base-instructions-44 with its pinned digest; the snapshots differ only in the revision header and the lines above. F28 records the addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anna's rule of 2026-10-11/12 (plan DEV-6658, brand voice in design-system-lazurio content/brand/hlas/hlas.md, PRs #78 and #80) covers Lazurio's agents too: what an agent says to a person uses vy. Rules written for agents and the prompts a person hands to an agent keep ty. - Folder manual handoff block: "Připravil jsem vám pull request", "Zkontrolujte si to v aplikaci", "Mám změny Publikovat vaším jménem?", the same text the root and Organization AGENTS.md now carry. - Generated AGENTS.md: a new rule after the Environment wording, formalAddress, says agents address people formally and agent rules keep ty. - The Bitwarden tool's purpose, which the Launchpad also shows the person, speaks about agents instead of to them. - lazurio browser: the "tab not opened" error matches the other errors converted before. - Template revision base-instructions-45 with its pinned digest; the snapshots differ only in the revision header and the lines above. F28 records the addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anna's rule of 2026-10-11/12 (plan DEV-6658, brand voice in design-system-lazurio content/brand/hlas/hlas.md, PRs #78 and #80) covers Lazurio's agents too: what an agent says to a person uses vy. Rules written for agents and the prompts a person hands to an agent keep ty. - Folder manual handoff block: "Připravil jsem vám pull request", "Zkontrolujte si to v aplikaci", "Mám změny Publikovat vaším jménem?", the same text the root and Organization AGENTS.md now carry. - Generated AGENTS.md: a new rule after the Environment wording, formalAddress, says agents address people formally and agent rules keep ty. - The Bitwarden tool's purpose, which the Launchpad also shows the person, speaks about agents instead of to them. - lazurio browser: the "tab not opened" error matches the other errors converted before. - Template revision base-instructions-48 with its pinned digest; the snapshots differ only in the revision header and the lines above. F28 records the addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anna's rule of 2026-10-11/12 (plan DEV-6658, brand voice in design-system-lazurio content/brand/hlas/hlas.md, PRs #78 and #80) covers Lazurio's agents too: what an agent says to a person uses vy. Rules written for agents and the prompts a person hands to an agent keep ty. - Folder manual handoff block: "Připravil jsem vám pull request", "Zkontrolujte si to v aplikaci", "Mám změny Publikovat vaším jménem?", the same text the root and Organization AGENTS.md now carry. - Generated AGENTS.md: a new rule after the Environment wording, formalAddress, says agents address people formally and agent rules keep ty. - The Bitwarden tool's purpose, which the Launchpad also shows the person, speaks about agents instead of to them. - lazurio browser: the "tab not opened" error matches the other errors converted before. - Template revision base-instructions-48 with its pinned digest; the snapshots differ only in the revision header and the lines above. F28 records the addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anna's rule of 2026-10-11/12 (plan DEV-6658, brand voice in design-system-lazurio content/brand/hlas/hlas.md, PRs #78 and #80) covers Lazurio's agents too: what an agent says to a person uses vy. Rules written for agents and the prompts a person hands to an agent keep ty. - Folder manual handoff block: "Připravil jsem vám pull request", "Zkontrolujte si to v aplikaci", "Mám změny Publikovat vaším jménem?", the same text the root and Organization AGENTS.md now carry. - Generated AGENTS.md: a new rule after the Environment wording, formalAddress, says agents address people formally and agent rules keep ty. - The Bitwarden tool's purpose, which the Launchpad also shows the person, speaks about agents instead of to them. - lazurio browser: the "tab not opened" error matches the other errors converted before. - Template revision base-instructions-48 with its pinned digest; the snapshots differ only in the revision header and the lines above. F28 records the addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Why
Slice P7 of the Launchpad parity program (#65 B8; root decision DEV-6616 "Launchpad Chat → T3"): the resident Launchpad's Chat entry into T3 Code, done in the Platform from the recorded handover entry — never from a hostname convention.
What changes
R:launchpad/src/t3-chat-lib.mjs:56-90):POST /api/chat/pairmints a one-time pairing token with T3's own CLI (t3 auth pairing create --base-dir ~/.t3 --ttl 60s --label launchpad-chat --json,t3from the Launchpad's PATH) and opens<t3codeOrigin>/pair#token=…; the token is never logged, never in an error, never in a query. Without a launcher or on a failed call (409t3-launcher-missing/t3-pairing-failed) the page follows the plaint3codeOrigin, where an unpaired browser is asked to pair; a modified click opens the plain origin in a new tab.GET /api/entry:{launchpadOrigin, t3codeOrigin, moduleOriginTemplate}ornull, read-only, behind the existing admission; also answered in Recovery mode (the pairing route there keeps the Recovery refusal).lazurio chat link(C.5 item 10) is not in this slice.src/launchpadbuilds a hostname from labels. Docs:launchpad-development.md"Chat entry",hosted-entry.md,recovery.md,machine-handover.md.Verified
Author of the slice:
bun run check919 pass; the page driven in headless Chromium with stubbed hosted answers (absent on a workstation; correct href on home, Settings, Recovery; the click lands on the pair URL, and on the plain origin when pairing is refused). Thread owner'sbun run checkon the merged head: exit 0; lint and the chat/recovery-page tests on 97ba9e8 (mergesmainafter #75).What only a real hosted Machine can prove
That
t3is on the Launchpad's PATH (Machines DEV-6624 adds~/.local/bin/t3; until then Chat falls back to the plain origin); that the fork'st3 auth pairing create --jsonstill returnscredential; that/pair#token=pairs through the real gateway; that a browser already paired opens straight through the fallback.🤖 Generated with Claude Code