chore(release): back-merge release/v0.18.0 into main - #6490
Closed
lefarcen wants to merge 16 commits into
Closed
Conversation
β¦red resources, workspace-scoped billing, and the #5517 redesign (#6430) * BACKPORT-CONFLICT * fix(backport): resolve #6142 conflicts for release/v0.18.0 - apps/packaged/package.json: keep release 0.18.0 (release version line) - NewProjectPanel.tsx: keep release variant (hardcoded copy, size 13) to avoid referencing newproj.openFolder/openingFolder i18n keys that the backport did not carry over (only used at this one call site) web typecheck + guard both green. --------- Co-authored-by: lefarcen <935902669@qq.com>
β¦port (#6435) Packaged prerelease builds shipped with the workspace-team transport dormant because release-prerelease.yml never injected OPEN_DESIGN_AMR_PROFILE or OD_VELA_WEB_URL (apps/packaged/src/workspace-team.ts requires both). Ports the beta workflow mechanism: new amr_profile input (dispatch + call) drives a top-level OD_VELA_WEB_URL/OPEN_DESIGN_AMR_PROFILE pair. Empty default keeps the push-driven prod pipeline unchanged; a test/feature-test dispatch enables the transport against that profile Vela backend.
β¦ile=test (#6437) notify-release-feishu forwards amr_profile to release-prerelease so the push-driven prerelease on the workspace-team release branch ships with the vela-cli transports enabled and posts a Feishu card for the real build. Manual dispatch can still override; other release branches stay on prod.
β¦packaged smoke (#6447) The packaged win smoke deterministically fails under amr_profile=test (CI is unattended, the cloud profile lands on onboarding), and publish hard-gates on build_win success β so every auto push-built prerelease on the workspace-team branch died before publishing any platform. Forward win_x64_smoke_mode from notify-release-feishu (manual dispatch overrides; release/v0.18.0 defaults to skip, every other branch keeps release-prerelease defaults). TEMPORARY until the smoke learns the cloud sign-in shell; the win package itself still builds.
β¦eet kills 12min+ jobs (#6448) (#6449) The project-collab shard is the only UI P0 job still running past ~12 minutes, where the current nexu-runners-large (rn44m) fleet hard-kills the pod: two unrelated PRs (#6414, #6446) both lost this shard at exactly 12.0 minutes with zero test output, while every completed run of these specs passes (run 30946194081: 4 passed in 6.5m). This blocks every merge. Skip the two heavy multi-client specs (the keyboard-flow specs stay); TODO in the file header records the evidence and the re-enable conditions (fleet fix, or splitting the suite under the kill line). (cherry picked from commit c5cfd9d) Co-authored-by: lefarcen <935902669@qq.com>
Rediscover the active daemon before local MCP calls, retry only safe reads after unreachable targets, and expose durable artifact references while marking preview and studio URLs as session-scoped. Validated with focused MCP tests, daemon typecheck/build, workspace typecheck, guard, and a live daemon port-switch smoke. (cherry picked from commit fe1231e) Co-authored-by: open-design-crew[bot] <299007234+open-design-crew[bot]@users.noreply.github.com> Co-authored-by: Cheems <94773058+itscheems@users.noreply.github.com>
β¦6452) prerelease.4 win build died on makensis half an hour after a green Setup NSIS step: the Chocolatey feed flaked (Unable to find package nsis, 0/0 installed) and pwsh -command swallowed choco exit code, so the step passed with nothing installed. Retry up to 4 times with backoff and hard- fail the setup step with a clear message when makensis is still absent.
β¦nsport (#6446) (#6454) The packaged client's first open of an unmaterialized team project fires a burst of od:// requests; when that burst hits transient transport failures the proxy answers with synthetic 502s, and the billing read's retry loop made it worse: every mounted consumer armed its own fixed 5s timer, each timer's retry event fanned out to every consumer, and each listener force-refetched past the coalescing cache β one failure became a standing 5s-cadence request storm that fed the very burst it was waiting out (observed by QA as hundreds of repeated billing requests while the left panel span). - Replace the per-hook fixed 5s retry timer with one module-level schedule per requestKey whose delay grows 5s β 10s β 20s β 40s β 60s cap while failures are consecutive; a success resets the count but deliberately leaves a pending timer armed so stale consumers still re-sync. - Stop forcing the retry read. Failures are never cached, so the plain coalesced path is a genuine refetch, and a retry that lands just after a concurrent consumer's success now joins that fresh result instead of evicting it and issuing another request. - Hard-expiry revalidation keeps its forced read via an explicit force flag on the retry event β its cached answer is void by definition, which the plain path cannot know. Red tests first: both new specs fail on the previous implementation (fixed-cadence retry fires at t=10s; retry stampedes a third request past a 0.5s-old success) and pass with the fix. 403 stays fail-closed with no retry; the 83 web test files touching workspace context/billing all pass. (cherry picked from commit 125f373) Co-authored-by: lefarcen <935902669@qq.com>
β¦6460) The public pricing surface linked subscription checkout at the internal test console (vela.powerformer.net) β every visitor who clicked through to buy landed on a non-production environment. Point CLOUD_BASE_URL and the machine-readable pricing.md contract at https://open-design.ai/cloud/dashboard instead; the `?billing=plan` deep link is unchanged and is consumed by the dashboard route (vela apps/web team-dashboard.tsx reads billing=plan to open the plan dialog). The header's console link moves from /cloud/wallet to /cloud/dashboard: wallet is the pre-workspace surface being retired, and vela already rewrites /wallet to /dashboard on workspace selection (workspace-selector.ts). Contract tests updated to lock the production URLs. (cherry picked from commit b8d7dd2) Co-authored-by: lefarcen <935902669@qq.com>
Production was deliberately held outside the workspace-team profile allowlist until its Vela backend could actually serve the feature. It can now: WORKSPACE_TEAM_ENABLED and the three billing-scope flags are true on prod amr-api, and the resource hub it needs for team file sharing is configured (S3-backed blob store instead of the chart's mock default, which would have failed every push with 'unsupported protocol scheme mock' while comments kept syncing through Postgres). - Add prod to WORKSPACE_TEAM_AMR_PROFILES. - Resolve OD_VELA_WEB_URL for prod from secrets.VELA_WEB_URL_PROD, so release builds bake the production console origin. - Drop the temporary amr_profile=test default on release/v0.18.0; release builds now ship prod, with manual dispatch still able to target test or feature-test. The origin half of the gate is unchanged and still load-bearing: a build without an injected origin stays dormant on every profile rather than pointing at an unknown backend. Tests updated to lock the new prod behaviour and to keep local/profile-less builds dormant. (cherry picked from commit 5f5a589) Co-authored-by: lefarcen <935902669@qq.com>
β¦ilds (#6468) (#6471) release-stable.yml and release-preview.yml never set OPEN_DESIGN_AMR_PROFILE or OD_VELA_WEB_URL. Neither has a default in tools-pack, so velaWebUrl reached the packaged config as undefined, workspaceTeamTransportEnv returned an empty record, and the four vela transports were never injected into the daemon spawn env. Both channels therefore shipped clients with Workspace Team silently dormant β the build succeeds, the app installs and starts, and the absence only surfaces once a package is in a user's hands. beta and prerelease already inject the pair from their amr_profile input, which is why prerelease validation looked correct: the artifact under test had the feature and the stable artifact promoted from it would not have. Stable and preview are production channels, so the pair is pinned instead of dispatched β there is no legitimate stable build aimed at the test backend. Naming prod explicitly is a no-op for AMR itself (the daemon already defaults to prod in integrations/vela-profile.ts); it exists to satisfy the profile half of the gate. A fork or PR build without the secret leaves the origin empty, so the transports stay dormant rather than half-enabled. (cherry picked from commit 3371ce4) Co-authored-by: lefarcen <935902669@qq.com>
release-stable.yml offers win_x64_smoke_mode: skip, but choosing it makes the release impossible to finish. The windows smoke uploads its e2e report with if-no-files-found: warn, so a skipped smoke leaves the report directory empty and publishes no artifact; finalize then downloads that artifact unconditionally and fails β after every platform has already built, signed and notarized, and after the pre-flight tag check has passed. Twenty-five minutes of work is thrown away for a report nothing downstream reads. Guard the download on the same condition that gates the smoke itself, matching how the linux report is guarded by its build result. The mac report stays unconditional because the mac smoke has no skip switch.
Contributor
|
@lefarcen I'm holding off on generating review comments for #6490 because this pull request has merge conflicts right now. Please resolve the conflicts with main and push the updated branch. Once that's done, request or wait for the review to run again and I'll take another look. π Powered by Looper Β· runner=reviewer Β· agent=codex Β· An autonomous AI dev team for your GitHub repos. |
Contributor
Author
|
Superseded β the back-merge is going in as a real two-parent merge commit via a dedicated branch, since |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Back-merge after 0.18.0 shipped (open-design-v0.18.0, R2
stable/latest= 0.18.0, promoted from0.18.0-prerelease.9).π¨ Merge with a MERGE COMMIT β never squash, never rebase. Squashing collapses the shared history and makes every future releaseβmain back-merge conflict.
What comes back
Most commits on the branch are backports whose content already sits on
main. These landed directly on the release branch and exist nowhere else:30c427ce0awin_x64_smoke_mode: skipis usable on the stable lane8e458f516840281395fa649bf1c536amr_profile=test45745db8b0amr_profileinput that enables the Workspace Team transportf62c3425c6,a95cf4205bThe three
release/v0.18.0-specific defaults (#6437, #6440) are branch-scoped by their owngithub.ref_nameconditions, so carrying them tomainchanges nothing for other branches.Known follow-up
#6481 (open, targets
main) fixes the stale Windows smoke expectation that forced this release ontowin_x64_smoke_mode: skip. Once it lands, the guard from #6480 stops being load-bearing and Windows regains real smoke coverage.