Repository navigation
DEV-6633: rebuild the fork on upstream v0.0.43 and release upstream previews as canary - #21
Conversation
|
|
agentrozjedemeai
left a comment
There was a problem hiding this comment.
@immakermatty — exact-head review of c5f4ceb (upstream v0.0.43 + six overlay commits). REQUEST_CHANGES: the preview canary cannot pass the required archive pipeline.
-
P1 —
.github/workflows/lazurio-cli-archives.yml:60: the reusable build job still validates onlyX.Y.Z-lazurio.N, whilelazurio-release.yml:133passes it the new preview version. Reproduced locally:0.0.43-preview.20260929.1passes the release validator but fails the archive validator. Both archive builds stop before checkout/build. The green workflow_dispatch run used0.0.43-lazurio.0, so it did not exercise this route. Extend the archive validator and cover both shapes at the caller/callee boundary. -
P1 —
.github/workflows/lazurio-cli-archives.yml:195-197: even after fixing the regex, the launcher smoke executesnode apps/server/src/bin.ts update "$VERSION" ... --yesin a non-interactive Actions shell. For a preview target,apps/server/src/cli/update.ts:325-340requires a TTY and an explicit confirmation when starting from the unstamped stable0.0.43source;--yescovers only service restart, not preview consent. This job will fail before archive validation. Keep the real preview-consent safety gate; make the smoke exercise the interactive path with a controlled TTY/confirmation, or add an appropriate separately tested non-interactive preview fixture without weakening production behavior.
The local release contract test passes 9/9 despite both gaps. CI on this exact SHA is green (run 36632741663), but covers only the stable-shaped archive. git diff --check v0.0.43 HEAD is clean. Also before first preview dispatch, Admin must extend ruleset 24037218 to refs/tags/v*-preview.* and read it back (current live include only covers lazurio tags). No release or main swap was performed.
c5f4ceb to
7d5e3c2
Compare
agentrozjedemeai
left a comment
There was a problem hiding this comment.
@immakermatty — APPROVED on exact head 7d5e3c2. Re-reviewed the two previous P1s: the archive validator accepts the release preview shape (and the CI stable sentinel); the launcher smoke now uses a PTY and answers the upstream preview confirmation only for preview. Production preview consent remains intact. The contract test passes 11/11 locally, git diff --check is clean, and all four Lazurio Fork CI jobs in run 36634491799 succeeded on this SHA. The Greptile thread is resolved. No release was dispatched. Operational gates remain: the live tag ruleset 24037218 still includes only refs/tags/v*-lazurio.* (not preview), so Admin must extend and read back its scope before preview dispatch; the PR currently reports CONFLICTING/DIRTY against main, so resolve integration and rerun exact-head gates before merge. This approval is not a release or merge authorization for a changed head.
Status: ready for review — head
7d5e3c2e4e769fbb6c4b9249d28fb9c91424ef84,Lazurio Fork CI4/4 greenMission Control: DEV-6633 (M2), linked to DEV-6624 and #20.
Why
Upstream released T3 Code v0.0.43. The desktop app connects to T3 on Lazurio Machines, so the fork servers have to catch up. This refresh is also the first real end-to-end test of the update pipeline: an upstream-shaped preview for Spectoda canary Machines → Matěj's test → public stable
0.0.43-lazurio.1offered by the Update button. Only mechanisms T3 Code already has are used: upstream version-derived channels,t3 update, the launcher with trial and rollback, and the overlay already shipped inv0.0.42-lazurio.1.Exact inputs
v0.0.43→27bdf1aa14e6b946b72fb7013062084ca70796a6(lightweight tag, peeled = commit; published 2026-09-29 19:14Z)mainb6a27feab300e336bda823dd7bbef040034a0b61= immutable releasev0.0.42-lazurio.1Overlay: remove / retain / migrate
Upstream v0.0.43 offers no equivalent for any overlay capability, so nothing is removed. Every retained commit was re-applied on the new base and migrated to upstream's Effect v4 API names (
Config.String,Config.Boolean,Config.mapEffect, …) and to upstream's new update progress UI.hosted: configurable client session TTLDEFAULT_SESSION_TTL; Machines set365dhosted: serve behind an explicit HTTPS external originT3CODE_EXTERNAL_ORIGINhosted: explicit environment labelPRETTY_HOSTNAME/hostname; Machines and Organization hosts setT3CODE_ENVIRONMENT_LABELfeat: in-app update from the configured release channelpingdotgg/t3codeand takes the first release of a channel in publish order. The three v0.0.42 commits (configurable repository, advertisedavailableServerUpdate, whole-index/one-train fix) are one capability commit now; thet3 updatepath is merged with upstream's new progress outputrelease: Lazurio distribution0.0.43-lazurio.0for the archive job, runbook overlay inventory with this tablerelease: publish upstream preview versions as canary pre-releasesAllowlist
allowed_upstream_changesre-checked: the overlay still changes exactly the same 8 client/shared files and each is still needed (git diff --name-only v0.0.43 HEAD | grep -E '^(apps/(web|mobile|desktop)|packages)/'). No file was added.The one change beyond the refresh: upstream preview channel in
lazurio-release.ymlX.Y.Z-preview.YYYYMMDD.Nnext toX.Y.Z-lazurio.N;X.Y.Zmust still equal the upstream tag;cliReleaseChannelOfdoes (the contract test imports that function and checks the workflow expression against it);newestCliReleaseVersionworks per channel. Without this, stable0.0.43-lazurio.1would be refused after0.0.43-preview.…(SemVer:lazurio<preview);latest;lazurio-cli-archives.yml) accepts the same two shapes; its launcher smoke runst3 updatein a pseudo-terminal and answers upstream's real preview consent prompt only for a preview (a stable target must not see it). The production consent gate is unchanged. (Review round 1: Pablo + Greptile found the archive validator and the TTY gate.)T3CODE_RELEASE_REPOSITORYlives only in the service drop-in, so an SSH shell must export it), return from preview (t3 update --channel stable --allow-downgrade), how vanilla desktop/mobile behave against a fork server, and a correction: Machines set onlyT3CODE_RELEASE_REPOSITORY, notT3CODE_RELEASE_BASE_URL.Upstream guarantees relied on (read in v0.0.43 source, to be proven live in the canary): a preview server never checks for updates, a preview is never offered, and
t3 update <preview>asks for confirmation in a TTY.Admin prerequisite before the first preview dispatch (DEV-6633 stop condition): ruleset 24037218 protects only
refs/tags/v*-lazurio.*today. The Admin addsrefs/tags/v*-preview.*— exact change and readback are in #20.What deliberately does not change
Verification
Local (macOS arm64, pnpm 11.10.0):
pnpm install --frozen-lockfile,vp fmt --check,vp run --filter t3 typecheck,vp run --filter @t3tools/web typecheck: OK.apps/server:src/cli/config.test.ts src/auth src/environment src/cloud src/cli/update.test.ts32 files / 341 tests OK;src/server.test.ts205/205 OK (one earlier run had 2 order-dependent failures in cloud-health/ws-ticket tests that pass in isolation and in a full rerun; vanilla v0.0.43 204/204).apps/web src/versionSkew.test.ts21/21,packages/shared src/cliRelease.test.ts10/10,scripts/install-scripts.test.ts4/4,node --test scripts/lazurio-release-contract.test.mjs11/11.t3 updatefrom this source: preview target → prompt answered, download, SHA256SUMS, extract (a substituted archive then fails the version check as expected); stable target → no prompt; preview withEXPECT_PREVIEW_PROMPT=0→ refused.0.0.43accepted,0.0.42-lazurio.1and lower previews refused, a stable after a published preview accepted.CI: the PR is
CONFLICTINGagainst today'smainby design, sopull_requestCI does not start;Lazurio Fork CIis dispatched on this branch: run 36634491799 on7d5e3c2e4e— all 4 required checks green. The preview archive route itself first runs in the preview release'sCLI archivesjob, which gates before the approval and publishes nothing if it fails.Main swap (filled in before the push)
expected_old_main:b6a27feab300e336bda823dd7bbef040034a0b61(= tagv0.0.42-lazurio.1, release immutable: verified)candidate_head:7d5e3c2e4e769fbb6c4b9249d28fb9c91424ef84(Pablo APPROVED on this exact head; 4/4 required checks green in run 36634491799; 0 unresolved threads)git push --force-with-lease=refs/heads/main:b6a27feab300e336bda823dd7bbef040034a0b61 origin 7d5e3c2e4e769fbb6c4b9249d28fb9c91424ef84:refs/heads/main🤖 Generated with Claude Code
The PR is not ready to merge because preview releases fail before publication.
Findings
Summary
The PR rebuilds the Lazurio overlay on upstream v0.0.43 and adds preview releases for canary Machines.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR Dispatch[Preview release dispatch] --> Verify[Verify accepts preview] Verify --> Archives[Archive version gate] Archives -->|Stable-only pattern rejects preview| Stop[Build fails] Archives -->|Success required| Publish[Publish release]Reviews (1) · Last reviewed commit: "release: publish upstream preview versio..."