- 1231b28 feat: x-consensus contract for consensus params and chain-wide commit timing (#2861)
- aabd632 ci(rust): Build the Wasm contracts in release mode on contract changes and check the embedded x-consensus build
- 66538af ci: Remove the x-consensus-only artifact workflow
- 98157de docs(consensus): Mark the Cosmos SDK x/consensus module in lib as deprecated
- 87d8c45 refactor(consensus): Make x/consensus the only owner of the consensus store
- d04c17f refactor(consensus): Move x/xconsensus into x/consensus and clean up its constants
- cff259c refactor(consensus): Move the consensus types into x/consensus/types
- bb1586d build(xconsensus): Embed the x-consensus build gzipped and decompress it in Go
- 69af012 build(xconsensus): Embed the AMD64 release build of x-consensus from CI
- 5f0002f docs(xconsensus): Note that the deployer role follows the contract address and both evidence windows must be short
- 9f1d07e ci(xconsensus): Check that the embedded x-consensus Wasm is the release build of its source
- 2eb50b3 feat(xconsensus): Grant x-consensus the wasm_deployer role so self-migration works on mainnet
- 72d2fd0 docs(xconsensus): Explain the x-consensus Go message types in Nibiru BFT terms
- 801d32f feat(xconsensus): Make x-consensus its own Wasm admin so migration follows the x/sudo root
- 45bfd0c build(xconsensus): Embed the x-consensus build with self-admin migration
- fdc9426 docs(wasm): Explain x-consensus params in Nibiru BFT terms
- ff3fdda feat(wasm): Let the x/sudo root migrate x-consensus through the contract
- 5c38464 build(xconsensus): Embed the x-consensus build without cw2
- 6793e5e refactor(wasm): Drop the cw2 version record from x-consensus
- d6e52e9 docs: Note the single circuit breaker and that genesis takes Wasm code ID 1
- 2e4d9fd test: Use an empty Wasm genesis where tests assume code ID 1
- 66accd7 feat(upgrades): Create x-consensus in the v2.22.0 upgrade handler
- 1d9a9f2 test(xconsensus): Cover genesis, H+1 updates, fallback, restart and export
- 403d274 feat(app): Wire x-consensus into genesis, EndBlock and the Nibiru BFT commit wait
- 4b9053d feat(xconsensus): Copy x-consensus params into the x/consensus store each block
- 2637f5e feat(wasm): Add a gas-bounded, recovering smart query for block hooks
- 94584ed Merge branch 'ud/2860-x-consensus-contract' into ud/2860-x-consensus
- 2cb9f2e feat(xconsensus): Embed the x-consensus Wasm with Go message types
- 5cc49ae feat(wasm): Gate x-consensus updates on the x/sudo root and drop version
- e6909d5 Merge branch 'ud/2860-x-consensus-bft' into ud/2860-x-consensus
- 225acc1 docs(bft): Say the commit hook can run twice per height and warns only on a difference
- 4ff8d8b feat(bft): Let the app set the commit wait through a consensus hook
- a74e48a feat(wasm): Add x-consensus contract for consensus params
- ef8454a feat(evm): Add Eris escrow and allocation voting (#2799)
- 1b568b1 Revert "docs(evm): Document the Eris escrow and gauge constants and vote helpers"
- 52d1962 test(evm): Gzip the Eris replay snapshot and decode it once per test binary
- f4992c4 docs(evm): Document the Eris escrow and gauge constants and vote helpers
- 3059c71 Merge remote-tracking branch 'origin/main' into UD/eris-evm-governance
- dd8f483 test(bft): Fix five flaky consensus and mempool tests (#2858)
- fd94404 test(bft): Document the subscription error channel in TestByzantinePrevoteEquivocation (#2855)
- ec00152 test(bft): Document why the mempool reactor test stops its switches (#2856)
- 4c5f4d8 test(bft): Stop p2p switches in TestBroadcastTxForPeerStopsWhenReactorStops (#2856)
- f2cc637 test(bft): Fix TestStateLockNoPOL flake (#2856)
- 15d2dea test(bft): Fix TestMempoolProgressAfterCreateEmptyBlocksInterval flake (#2856)
- 8925503 test(bft): Fix TestMempoolTxConcurrentWithCommit flake (#2856)
- d49a4e8 test(bft): Fix TestByzantinePrevoteEquivocation flake (#2855)
- b5f6990 chore(deps): Combine open dependabot bumps (#2851)
- 759ac19 test(bft/state): Set an early block time from the last block time in TestValidateBlockTime
- d0327e1 chore(deps): bump github.com/cockroachdb/errors from 1.12.0 to 1.14.0
- 2d6c022 chore(deps): bump github.com/coinbase/rosetta-sdk-go from 0.7.9 to 0.12.0
- 3096b00 chore(deps): bump github.com/hashicorp/go-getter from 1.7.9 to 1.8.10
- 7ec8025 chore(deps): bump cosmossdk.io/log from 1.3.1 to 1.6.1
- b63e2f2 chore(deps): bump github.com/prometheus/client_golang from 1.23.2 to 1.24.1
- 6da34ec build(deps): bump github.com/klauspost/compress from 1.18.4 to 1.18.7
- e3ff1d2 build(deps): bump github.com/opencontainers/runc from 1.1.12 to 1.3.6
- a77ef88 build(deps): bump github.com/go-git/go-git/v5 from 5.13.0 to 5.19.2
- e3fdf22 build(deps): bump github.com/go-git/go-billy/v5 from 5.6.0 to 5.9.0
- 5edea21 build(deps): bump actions/labeler from 5 to 7
- 52b1539 build(deps): bump docker/login-action from 4.6.0 to 4.7.0
- fc27acf build(deps): bump actions/setup-python from 6 to 7
- 72b214f Merge remote-tracking branch 'origin/main' into ud/deps
- 4da60ec build(wasm): Pin published WasmVM v1.13.2 libraries (#2847)
- 55a20c7 build(deps): bump actions/setup-python from 6 to 7
- dc4a151 build(deps): bump docker/login-action from 4.6.0 to 4.7.0
- e241eea build(deps): bump actions/labeler from 5 to 7
- b316e9e fix(bft/e2e): Ignore Compose warnings on stderr when finding the upgraded container
- d84d03c fix(bft/e2e): Find the upgraded container when perturbing after an upgrade
- 477d109 chore(just): Rename the default setup recipe to a private list recipe
- 8e52cf8 Merge remote-tracking branch 'origin/main' into ud/2831-bft-multival
- 3468463 ci(chaosnet): Run just chaos determinism-all nightly and on PRs that change it
- eddd22f test(chaosnet): Add determinism-all to run the self-test before the real check
- fddf798 refactor(chaosnet): Rename the determinism canary to determinism-selftest and nibiru_fault_injection
- 2618092 fix: Backport WasmVM cleanup and bound feegrant and Wasm validation (#2826)
- 9c70053 test(optimizer): Expect static validation to reject bulk memory
- 583807c Merge remote-tracking branch 'origin/main' into ud/upstream-backports
- 71aecdd test(chaosnet): Check app hash agreement with just chaos determinism
- 37b9552 feat(chaosnet): Add a multival profile with 4 validators on one chain
- f2cabd9 build(scripts): Accept extra Go build tags in build-nibiru.sh
- 49d3858 test(evm): Add a build-tagged nondeterminism canary to EndBlock
- ff0af38 build(deps): bump github.com/go-git/go-billy/v5 from 5.6.0 to 5.9.0
- ee93b23 build(deps): bump github.com/go-git/go-git/v5 from 5.13.0 to 5.19.2
- 4b40b0c build(deps): bump github.com/opencontainers/runc from 1.1.12 to 1.3.6
- 3eb49f1 build(deps): bump github.com/klauspost/compress from 1.18.4 to 1.18.7
- a843785 feat(bft): Super Sai: Swap out CometBFT in-tree as Nibiru BFT for latest improvements (#2835)
- 09b263a ci(proto): Skip the moved SDK tendermint protos in the base-branch check
- 80912f0 Merge #2840 test(bft): Port fuzzers to native go fuzzing and run them nightly
- e886236 Merge #2838 ci(bft): Run Nibiru BFT unit tests with the race detector
- 3863a2e Merge #2839 ci(bft): Run e2e testnets on PRs and nightly
- 84c750c Merge #2837 test(bft): Run the e2e testnet framework in-tree
- d12da57 Merge #2836 ci(proto): Check all proto roots against the base branch and last release
- 00c9476 test(bft): Fix TestProvider assuming one block per second
- 29821ec style: Group in-tree bft imports with local imports
- 076b967 ci(lint): Exclude bft from golangci-lint
- ec75d43 ci(bft): Keep the fuzz corpus between nightly runs
- bed497a build(bft): Shorten input minimization for the secret connection fuzzer
- ddb0a67 test(bft): Skip only the known missing-params panic in the RPC fuzzer
- 1c0db50 ci(bft): Run the native fuzz targets nightly
- dc20594 build(bft): Add just bft fuzz and native OSS-Fuzz build script
- bd3a044 test(bft): Port pubsub query fuzzer to native go fuzzing
- 9eb2f14 test(bft): Port JSON-RPC server fuzzer and record a known panic
- f0b6894 test(bft): Port p2p fuzzers to native go fuzzing
- d68125a test(bft): Port mempool fuzzers to native go fuzzing
- cc9c48b ci(bft): Run e2e testnets on PRs and nightly
- 255c3ab test(bft): Pin the long.toml upgrade source to upstream v0.37.18
- 40e2207 ci(bft): Run Nibiru BFT unit tests with the race detector
- 459943a build(bft): Add test-rest to run tests outside consensus, p2p, and mempool
- 7524390 docs(bft): Document the e2e just recipes
- 643713b build(bft): Add e2e-image, e2e-runner, and e2e just recipes
- 56158c3 fix(bft): Clean up e2e testnets with the local node image
- f6f8f26 build(bft): Rewrite the e2e Dockerfile for the repo-root context
- 50811ac ci(proto): Check all proto roots against the base branch and last release
- a7b2508 test: Scan bft and lib for upstream proto imports
- 0d60fed chore(proto): Regenerate vendored SDK and ibc-go code
- f4e2105 build(proto): Generate bft, SDK, and ibc-go code from protocgen.sh
- 379bf7a refactor(proto): Use one buf workspace for all proto trees
- 61c5e7e chore(proto): Regenerate with current plugins (baseline)
- 733f7cb refactor(bft): Rename the test-only consensus binary to nibiru-bft
- 4c8a7b5 chore(bft): Remove upstream release and editor config
- 957ba13 fix(wasm): Complete static validation of uploaded contracts
- ba4feab docs: Explain backport validation and regression test rationale
- 579e362 style: Format upstream backport regression tests
- 696ecff fix(wasmvm): Free out-of-gas errors and avoid unused callback reads
- 5949c8c fix(wasm): Bound and deduplicate permission address lists
- f5e8a04 fix(feegrant): Cap expired allowance pruning per block
- ac744ac ci: Auto-label PRs with Z-* zone labels by changed paths
- 6f19932 test(bft): Stop p2p test peers from exiting the test binary
- e8e8ce2 test(bft): Fix the TestStateFullRound1 deadlock instead of skipping it
- ec4df4c ci: Run bft tests in their own job
- 555bdd9 test(bft): Fix tests broken by Go 1.27 and newer prometheus
- 8782af8 build: Stamp the build commit into the consensus startup log
- 819dc02 build(bft): Replace the upstream Makefile with a bft justfile
- 9ad96c8 refactor(bft): Keep example and e2e apps out of nibid
- 68b96fb Merge branch 'main' into ud/bft
- d1d4040 ci: Report coverage as informational and log workflow decisions (#2824)
- be538c1 docs(spec): Add protobuf state-break guide
- 6d8a189 chore(bft): Remove upstream contributor docs and Dredd config
- a5fc9f9 docs(bft): Merge changelog entries into one file per release
- c3253e3 feat(bft): Add Nibiru BFT version and set CometBFT base to 0.37.18
- b546d93 refactor(bft): Make the root module own CometBFT and switch imports
- 264bace chore(bft): Import CometBFT v0.37.18 source unchanged
- 6f61b26 chore(sai-trading): Remove lib/sai-trading and its CI job
- c7519dd ci(codecov): Report project and patch coverage as informational
- 4f30c4c ci: Merge local decision logging into ud/main
- 70edbdf Merge branch 'main' into ud/main
- f2ba040 Merge branch 'main' into ud/dev
- 700d461 fix(wasm): Wasm and node fixes, and v2.22 upgrade handler (#2822)
- 1c46e44 Merge VM CI cleanup into Wasm fixes and preserve decision logging
- 0fa6d32 ci(wasmvm): Run full platform builds daily and fast-pass unrelated changes (#2823)
- 6056eca ci(wasmvm): Schedule full platform builds and fast-pass ordinary changes
- c968011 ci(wasmvm): Test event policy for filtered and full validation
- 476ec64 ci(wasmvm): Schedule full platform builds and fast-pass ordinary changes
- 347e40d ci(wasmvm): Test event policy for filtered and full validation
- 6649190 ci(passkey-bundler): Log build decision inputs and outputs as JSONL
- 94050f9 ci(test-core): Log path filter outputs as JSONL
- 1419253 ci(rust): Log run decision inputs and outputs as JSONL
- 2678b4f ci(wasmvm): Log run decision inputs and outputs as JSONL
- 4469fff build: Add v2.22 upgrade handler
- 67b25d2 Merge branch 'main' of github.com:NibiruChain/nibiru
- 3bc7ddd fix(wasm): Fix gas accounting
- f9346ff fix(wasm): Fix grant contract help and gov instantiate-contract-2 salt
- e624d3d fix(wasm): Report invalid funds reason and fix duplicate address message
- 2f25710 fix(wasm): Fix empty channel version, null denom aliases, and gas overflow panic
- e2564e5 perf(mempool): Improve proposal tx selection
- 3bb81b7 perf(cosmos-sdk): Improve tx service pagination
- 2d659d9 build(wasm): Distribute native optimizer binaries with cargo-binstall (#2821)
- 468651f feat(wasm): Support optimizer release candidates and slash-prefixed tags
- 2135027 ci(wasm): Run optimizer distribution only on demand or version tags
- 2b6b1db build(wasm): Prepare native optimizer releases for cargo-binstall
- c039dd2 feat(wasm): Add sai-wasm-optimizer for native ARM64 builds (#2820)
- 6e96eb8 feat(wasm): Integrate optimizer recipes and architecture CI
- 35e17e4 feat(wasm): Add sai-wasm-optimizer with native ARM64 builds
- 3db16b0 test(wasm): integrate Sai Pulse vault snapshot hooks (#2805)
- f16f92a ci(gh-issues): Pin add-to-project to the upstream fix for parallel runs (#2808)
- 88e088d docs: Remove retired development grant invitations
- 7ec8c4c docs: Store chain state article images locally
- bf66d15 fix(ci): Accept compatible patch releases in upgrade handler checks
- a2014ab chore(deps): bump github.com/prometheus/client_golang
- ac8a8e5 chore(deps): bump github.com/hashicorp/go-getter from 1.7.9 to 1.8.10
- 5dddb03 chore(deps): bump github.com/coinbase/rosetta-sdk-go
- f9371b1 chore(deps): bump github.com/cockroachdb/errors from 1.12.0 to 1.14.0
- bfa275f feat(evm): Add Eris escrow and allocation voting methods
- 6f7fbd2 Merge branch 'main' into dependabot/go_modules/cosmossdk.io/log-1.6.1
- 24c6d69 chore(deps): bump cosmossdk.io/log from 1.3.1 to 1.6.1