fix: bump paired assembler default 0.40.0 → 0.92.0 + released-path smoke (#322) - #323
Conversation
…oke (#322) DEFAULT_ASSEMBLER_VERSION sat at 0.40.0 since the thin-driver migration (#217), so every cold `labelle init` scaffolded via a 0.40.0 assembler: no `.y_axis`, tag-stamped nonsense pins — a project the current assembler line refuses to build (MissingYAxis on first upgrade). - DEFAULT_ASSEMBLER_VERSION → 0.92.0 (first release carrying the assembler-side scaffold fix, assembler#629: curated pins + .y_axis, release workflow no longer tag-stamps package versions). - versions.zon curated set → core 1.26.0 / engine 2.5.0 / gfx 1.28.1 (verified end-to-end: init → generate → full compile from released tarballs). - CI: released-path init smoke — init with NO local overrides (the exact cold-user path: downloads the paired default from releases), assert .y_axis, generate, full build. The existing Versions Integration test uses local: overrides for everything, which is precisely why this rot was invisible. - upgrade.zig test: the downgrade-guard test pinned "0.40.0" == the then-default and only passed by coincidence; rewritten version-independently (newer pin kept, older pin moved forward). Verified locally with a simulated 0.92.0 cache seed: cold init scaffolds .y_axis + all five pins correct; full build blocked only on the not-yet-published release bundle (CI smoke covers it post-release). Claude-Session: https://claude.ai/code/session_011szWvquoss1yNX7KWSKCaM
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThe CLI assembler default and compatible component versions were updated. Upgrade tests now cover assembler pin handling, and CI adds a released-path smoke test covering project initialization, generation, and desktop build. ChangesReleased-path assembler alignment
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the DEFAULT_ASSEMBLER_VERSION to 0.92.0 in src/cli/assembler.zig to ensure new project initializations use a compatible assembler version. It also updates the downgrade guard tests in src/cli/upgrade.zig to be version-independent and adds a test case for moving older pins forward. Additionally, the dependency versions for .core, .engine, and .gfx are bumped in versions.zon. There are no review comments, so no feedback is provided.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Pull request overview
Updates the CLI’s “paired default” and curated compatible-version set so cold labelle init scaffolds match the modern assembler line, and adds a CI guard that exercises the true released-path (no local overrides).
Changes:
- Bump
DEFAULT_ASSEMBLER_VERSIONfrom0.40.0→0.92.0to prevent stale scaffolds (missing.y_axis, outdated pins). - Update curated versions in
versions.zontocore 1.26.0 / engine 2.5.0 / gfx 1.28.1. - Add a released-path CI smoke test (init →
.y_axisassertion → generate → build) and make the assembler downgrade-guard test version-independent.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
versions.zon |
Updates the CLI-bundled compatible set targeted by upgrade/init scaffolding. |
src/cli/upgrade.zig |
Adjusts tests to validate downgrade-guard behavior independent of the default version constant. |
src/cli/assembler.zig |
Bumps the runtime default assembler version used when a project has no pin. |
.github/workflows/ci.yml |
Adds a released-path smoke test to prevent default-version rot from going undetected. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // broke the moment the stale constant was bumped — labelle-cli#322.) | ||
| try testing.expectEqualStrings("99.0.0", pickTarget("assembler_version", "99.0.0", assembler.DEFAULT_ASSEMBLER_VERSION, false)); | ||
| // An OLDER pin is moved forward to the paired default. | ||
| try testing.expectEqualStrings(assembler.DEFAULT_ASSEMBLER_VERSION, pickTarget("assembler_version", "0.40.0", assembler.DEFAULT_ASSEMBLER_VERSION, false)); |
…xis grep (Copilot review) Claude-Session: https://claude.ai/code/session_011szWvquoss1yNX7KWSKCaM
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: de4f039c63
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .engine = "1.65.0", | ||
| .gfx = "1.19.0", | ||
| .core = "1.26.0", | ||
| .engine = "2.5.0", |
There was a problem hiding this comment.
Update compatibility check for engine 2.x
With this new upgrade all target, a project upgraded to the bundled set gets core_version = "1.26.0" and engine_version = "2.5.0", but every generate/build path calls compatibility.validateCompatibility and that still warns whenever a dependency major differs from the core major (compatibility.zig:39-42). Users who just applied the blessed compatible set will therefore see a spurious “engine 2.5.0 may be incompatible with core 1.26.0” plus a “run labelle upgrade all” hint. Please update the compatibility rule (or the curated set) together with this major-version bump.
Useful? React with 👍 / 👎.
| /// project the current assembler line refuses to build). The | ||
| /// released-path smoke test in ci.yml (init with NO local overrides → | ||
| /// generate → build) fails if this constant rots again. | ||
| pub const DEFAULT_ASSEMBLER_VERSION = "0.92.0"; |
There was a problem hiding this comment.
Keep target dirs in sync with external backends
Pairing unpinned projects with assembler 0.92.0 also pairs the CLI with assembler schema/features that this CLI still ignores: v0.92.0 supports .backend_package and generates into .labelle/{cfg.backendName()}_{platform}, but src/cli/project_config.zig has no backend_package field and pipeline.run still computes/builds .labelle/{@tagName(parsed.backend)}_{platform}. For an external-backend project whose enum backend remains the default (e.g. backend_package.name = "foo"), generation succeeds into foo_desktop and then labelle build tries to build the nonexistent/stale raylib_desktop directory; either mirror the new backend name in the CLI or avoid making 0.92 the default until the CLI can build those projects.
Useful? React with 👍 / 👎.
Closes #322. CLI half — paired with labelle-toolkit/labelle-assembler#629 (the scaffold-content fix). Draft until assembler v0.92.0 is released: the new released-path smoke test downloads the paired default from GitHub releases, so it can only pass once that release exists.
What
DEFAULT_ASSEMBLER_VERSION0.40.0 → 0.92.0. The constant sat untouched since the thin-driver migration (Make labelle-cli a thin driver over the assembler binary (drop the build-time dep) #217); every coldlabelle initscaffolded via assembler 0.40.0 — no.y_axis, stale pins,MissingYAxisthe moment the project met a modern assembler.versions.zoncurated set → core 1.26.0 / engine 2.5.0 / gfx 1.28.1 (upgrade-all target; set verified end-to-end from released tarballs:init → generate → zig build= build ok).initwith NO local overrides — the exact cold-user path (downloads the paired default, scaffolds its curated pins), asserts.y_axis, generates, and full-builds. The existing Versions Integration test useslocal:overrides for everything, which is exactly why this rot was invisible for months."0.40.0"(== the then-default) and passed only by coincidence — rewritten version-independently.Verified
core_version = "0.91.0"etc.,assembler_version = "0.77.0".labelle initscaffolds.y_axis = .down+core 1.26.0 / engine 2.5.0 / gfx 1.28.1 / labelle 1.57.0 / assembler 0.92.0. Full build validated with the identical version set fetched from real releases.zig build test: 502/506 (4 skipped), 0 failed.Landing order
https://claude.ai/code/session_011szWvquoss1yNX7KWSKCaM
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.