feat(defaults): giga executor enabled by default, matching seid#42
feat(defaults): giga executor enabled by default, matching seid#42bdchatham wants to merge 1 commit into
Conversation
baseDefaults never set GigaExecutor, so the Go zero value rendered [giga_executor] enabled=false / occ_enabled=false into every node's app.toml — silently overriding seid's own DefaultConfig (enabled=true, occ_enabled=true, giga/executor/config/config.go). Because seid only falls back to its code default when the key is absent, the platform fleet has been force-pinned to the v2 executor by accident of zero values rather than by decision. Nodes that must stay on v2 pin giga_executor.enabled=false explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PR SummaryHigh Risk Overview Previously, leaving Reviewed by Cursor Bugbot for commit ed463f5. Bugbot is set up for automated code reviews on this repo. Configure here. |
Why
baseDefaults()never setsGigaExecutor, so the Go zero value renders[giga_executor] enabled = false / occ_enabled = falseinto every app.toml sei-config produces — for every mode, on every render. seid's own default is the opposite (DefaultConfig = {Enabled: true, OCCEnabled: true},giga/executor/config/config.go), and seid only applies its code default when the key is absent — so the fleet has been pinned to the v2 executor by an accident of zero values, not a decision. (Found while verifying why the EIP-7623 receipt-parity specs pass against every nightly node: no platform-managed node executes EVM txs through the giga path at all. Adversarial review confirmed the render chain:legacyGigaExecutorhas noomitempty, so the section is always present-with-false, and neither seid launch args nor env carry anygiga_executoroverride on live harbor nodes.)What
Set
GigaExecutor{Enabled: true, OccEnabled: true}inbaseDefaults(), matching seid. Explicit-falseoverrides still render (which is why this is a value change, not the omit-when-unset pattern used forwrite_mode/evm-ss-split—omitemptyon a bool would silently drop an operator's explicitfalse).giga_executor.enabledoverride flips to the giga executor on its next config render + seid restart. Only two prod files pin the key today (arctic-1/archive-0-1a,pacific-1/shadow-giga); everything else rides the default. If prod should stay v2, land explicitfalsepins before this merges, or gate this by mode.enabled = trueinto whatever giga maturity they shipped —TestNightlyChainUpgradeexercises exactly this.tmtypes.SkipLastResultsHashValidation— consensus-adjacent; deserves deliberate sei-chain sign-off.Testing
go build ./...+go test ./...green. No existing test pinned the old false default (registry/intent tests assert key presence, not value).🤖 Generated with Claude Code