Skip to content

fix(fork): explicitly pin fork profile to base = "cobalt" (v2.0.x release branch) - #219

Merged
rayyan224 merged 1 commit into
releases/v2.0.xfrom
fix/cobalt-fork-profile-pin
Sep 8, 2026
Merged

fix(fork): explicitly pin fork profile to base = "cobalt" (v2.0.x release branch)#219
rayyan224 merged 1 commit into
releases/v2.0.xfrom
fix/cobalt-fork-profile-pin

Conversation

@rayyan224

Copy link
Copy Markdown
Collaborator

Summary

Pins [profile.fork] base to "cobalt" on the releases/v2.0.x snapshot, explicitly, instead of
relying on the implicit base = true default.

base = true resolves to base-anvil's DEFAULT_BASE_UPGRADE at build time. As of base-anvil PR #71
that default is Cobalt — correct today — but relying on the implicit default means a future
DEFAULT_BASE_UPGRADE bump would silently change which precompile dispatch version this frozen
branch's fork tests run against, without any diff in base-std to explain why.

Context

Same fix pattern already applied to the frozen Beryl snapshot (releases/v1.0.x, commit 520d069,
tagged v1.0.1) after base-anvil's default moved on from Beryl to Cobalt. This closes the same gap
for the new Cobalt release branch before it ships, rather than waiting for a future default bump to
break it the same way.

Cherry-picked from 1d005bc (originally proposed against main in #217, closed unmerged — retargeting
here since the pin only matters for a frozen branch, not main, which is meant to track whatever
hardfork is currently in development).

Test plan

  • Cobalt fork tests continue to pass (behavior unchanged today, just explicit)

base = true resolved to the base-anvil's DEFAULT_BASE_UPGRADE at
build time. As of base-anvil PR #71, that default is Cobalt — which
happens to be correct today — but relying on an implicit default is
fragile. Pinning to "cobalt" makes the intent explicit and ensures a
future DEFAULT_BASE_UPGRADE bump doesn't silently change test behavior.

Mirrors the same fix applied to the frozen Beryl snapshot
(beryl-harness-patch), where base = "beryl" is required.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

🟡 ≥95% across all metrics — some metrics below 99%.

File Lines Stmts Branches Funcs
🟡 B20FactoryLib.sol 97.70% 98.00% 100.00% 95.00%
🔴 test/lib/ForceFeeder.sol 0.00% 0.00% 100.00% 0.00%
🔴 test/lib/PrecompileProbe.sol 0.00% 0.00% 0.00% 0.00%
🟢 MockActivationRegistry.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockActivationRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Asset.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockB20Factory.sol 98.96% 99.10% 100.00% 100.00%
🟢 MockB20Stablecoin.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Storage.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockPolicyRegistry.sol 100.00% 99.54% 97.67% 100.00%
🟢 MockPolicyRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
Total 97.07% 97.52% 98.16% 97.00%

Full report: download artifact. To browse locally: make coverage (runs forge coverage + genhtml + opens the HTML report).

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

✅ Fork tests: all 725 passed

base/base is fully in sync with the base-std spec.

@rayyan224
rayyan224 merged commit 19ba3e5 into releases/v2.0.x Sep 8, 2026
7 checks passed
@rayyan224
rayyan224 deleted the fix/cobalt-fork-profile-pin branch September 8, 2026 18:18
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.

1 participant