Skip to content

chore: revert default Firecracker version to v1.12#2478

Merged
ValentaTomas merged 1 commit intomainfrom
chore/default-firecracker-v1.12
Apr 22, 2026
Merged

chore: revert default Firecracker version to v1.12#2478
ValentaTomas merged 1 commit intomainfrom
chore/default-firecracker-v1.12

Conversation

@ValentaTomas
Copy link
Copy Markdown
Member

Summary

  • Switch featureflags.DefaultFirecrackerVersion back to DefaultFirecackerV1_12Version (v1.12.1_210cbac).
  • The v1.14 default landed in feat: update Firecracker client to v1.14 #2415 but we don't want to roll it out yet; v1.14 stays available via the firecracker-versions flag and per-build overrides.

Test plan

  • Confirm new builds pick v1.12.1_210cbac when no explicit --firecracker / DEFAULT_FIRECRACKER_VERSION is set.
  • Existing v1.14 builds continue to resolve via FirecrackerVersionMap / feature flag overrides.

The v1.14 default landed in #2415 but we are not ready to roll it out
yet. Switch the infra-wide default back to v1.12.1_210cbac while we
keep v1.14 available behind the feature flag.
@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 22, 2026

PR Summary

Medium Risk
Changing the default Firecracker binary affects new sandbox/build behavior and compatibility, even though overrides via env/feature flags remain available.

Overview
Reverts featureflags.DefaultFirecrackerVersion to DefaultFirecackerV1_12Version, so new builds/sandboxes that don’t explicitly override --firecracker/DEFAULT_FIRECRACKER_VERSION will default back to Firecracker v1.12 instead of v1.14.

Reviewed by Cursor Bugbot for commit 39ac213. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — straightforward one-line revert of the default Firecracker version from v1.14 back to v1.12.

Extended reasoning...

Overview

Single-line change in packages/shared/pkg/featureflags/flags.go that reassigns DefaultFirecrackerVersion from DefaultFirecackerV1_14Version to DefaultFirecackerV1_12Version. The change is a deliberate revert of the v1.14 default introduced in #2415, with v1.14 remaining accessible via FirecrackerVersionMap and per-build feature flag overrides.

Security risks

None. This is a version string constant change with no auth, crypto, or permissions implications. The version strings themselves are hardcoded and unchanged.

Level of scrutiny

Low. This is a config-level revert to a known-good state — the exact inverse of a previously merged PR. The intent is unambiguous and the blast radius is limited to the default Firecracker binary selected for new builds when no explicit override is set.

Other factors

The only finding is a pre-existing typo in the constant identifiers (Firecacker vs Firecracker), noted as a nit in the inline comments. The typo predates this PR and has no runtime impact since only the string values are used externally. It does not block approval of this revert.

Comment on lines 242 to +245
DefaultFirecackerV1_10Version = "v1.10.1_30cbb07"
DefaultFirecackerV1_12Version = "v1.12.1_210cbac"
DefaultFirecackerV1_14Version = "v1.14.1_458ca91"
DefaultFirecrackerVersion = DefaultFirecackerV1_14Version
DefaultFirecrackerVersion = DefaultFirecackerV1_12Version
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Three exported constants use the misspelling 'Firecacker' (missing 'r'): DefaultFirecackerV1_10Version, DefaultFirecackerV1_12Version, and DefaultFirecackerV1_14Version, while DefaultFirecrackerVersion is spelled correctly. Since this PR already touches line 245 where these constants are referenced, this would be a low-risk opportunity to correct the naming.

Extended reasoning...

The typo: Three exported Go constants in the const block at lines 242-245 use Firecacker (dropping the first r) while the product name is Firecracker. The affected identifiers are DefaultFirecackerV1_10Version, DefaultFirecackerV1_12Version, and DefaultFirecackerV1_14Version. The fourth constant in the same block, DefaultFirecrackerVersion, is spelled correctly, creating an inconsistency within a four-line const block.

How it manifests: This is a naming inconsistency in the exported API surface. Any caller that tries to reference these constants by name, or any developer adding a new versioned constant who follows the existing pattern, will encounter or perpetuate the typo. IDE autocomplete and grep searches for Firecracker will miss these identifiers.

Why existing code does not prevent it: Go does not enforce any naming conventions at compile time. The string values (e.g. v1.12.1_210cbac) are spelled correctly, so runtime behavior is unaffected. The typo is purely in the Go identifier names.

Scope of impact: A codebase-wide grep confirms these three constants are only referenced within flags.go itself -- in the FirecrackerVersionMap var and the DefaultFirecrackerVersion assignment on line 245. No external callers use them by name, so renaming is a non-breaking change within this package.

Step-by-step proof:

  1. Open packages/shared/pkg/featureflags/flags.go, lines 242-248.
  2. DefaultFirecackerV1_10Version -- count the letters: F-i-r-e-c-a-c-k-e-r = Firecacker, missing the first r after e.
  3. Same for DefaultFirecackerV1_12Version and DefaultFirecackerV1_14Version.
  4. Compare against DefaultFirecrackerVersion on line 245: F-i-r-e-c-r-a-c-k-e-r = correct spelling.
  5. FirecrackerVersionMap on lines 247-251 references all three misspelled constants as values.
  6. This PR changes line 245 from DefaultFirecackerV1_14Version to DefaultFirecackerV1_12Version, directly touching the misspelled identifier -- making this PR an appropriate moment to fix the names.

How to fix: Rename DefaultFirecackerV1_10Version to DefaultFirecrackerV1_10Version, DefaultFirecackerV1_12Version to DefaultFirecrackerV1_12Version, and DefaultFirecackerV1_14Version to DefaultFirecrackerV1_14Version throughout flags.go. Since all usages are in this single file, the change is mechanical and safe.

@ValentaTomas ValentaTomas merged commit 17ab9f2 into main Apr 22, 2026
47 checks passed
@ValentaTomas ValentaTomas deleted the chore/default-firecracker-v1.12 branch April 22, 2026 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants