Conversation
420e1e2 to
3f03585
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
📝 WalkthroughWalkthroughUpdates CHANGELOG structure and entries. In the app, removes wiring for CosmWasm and several Warden modules, and adds an UpgradeKeeper handler for v0.7.0 that runs ModuleManager migrations. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant App
participant UpgradeKeeper as UpgradeKeeper
participant ModuleManager as ModuleManager
participant Modules as App Modules
Note over App,UpgradeKeeper: App init
App->>UpgradeKeeper: SetUpgradeHandler("v0.7.0", handler)
Note over App: CosmWasm and select Warden modules not wired
Note over UpgradeKeeper,ModuleManager: At on-chain plan v0.7.0
UpgradeKeeper->>App: Invoke handler(ctx, plan, fromVM)
App->>ModuleManager: RunMigrations(ctx, configurator, fromVM)
ModuleManager->>Modules: Migrate modules per version map
Modules-->>ModuleManager: Migration results
ModuleManager-->>App: Return new version map
App-->>UpgradeKeeper: Handler completed
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45–75 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (3)
CHANGELOG.md (2)
45-48: Unreleased sections added — consider completeness.Empty headings are fine as scaffolding, but please add at least one entry or drop them until content is ready. Also consider adding an "Improvements" stanza to mirror the stanza list at the top.
54-54: Pin and describe the EVM bump more precisely.Replace "latest commit" with the short SHA and add a one-line motivation.
- Bump cosmos/evm to [latest commit](https://github.com/cosmos/evm/commit/bb6162e10da6ed984856922cbecdd1eaf10e2f38) (pre-v0.5.0). + Bump cosmos/evm to [bb6162e](https://github.com/cosmos/evm/commit/bb6162e10da6ed984856922cbecdd1eaf10e2f38) (pre‑v0.5.0) – adds appside mempool e2e tests and related fixes.Verified commit bb6162e10da6ed984856922cbecdd1eaf10e2f38 (2025-09-18).
warden/app/app.go (1)
880-883: Upgrade handler OK; prefer consolidating and using a named constant.To avoid drift, define a single source of truth for the plan name and register this handler alongside others (RegisterUpgradeHandlers).
Apply this diff to the handler line only; add the const separately:
-app.UpgradeKeeper.SetUpgradeHandler("v0.7.0", func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { +app.UpgradeKeeper.SetUpgradeHandler(UpgradeNameV070, func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM) })And add near other consts:
const UpgradeNameV070 = "v0.7.0"
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
CHANGELOG.md(1 hunks)warden/app/app.go(6 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.md
⚙️ CodeRabbit configuration file
**/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
Files:
CHANGELOG.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: lint
- GitHub Check: Analyze (go)
🔇 Additional comments (1)
warden/app/app.go (1)
4-4: Import of context is correct for the upgrade handler.
|
|
||
| ### Bug Fixes | ||
|
|
||
| ## [v0.7.0](https://github.com/warden-protocol/wardenprotocol/releases/tag/v0.7.0) - 2025-09-22 |
There was a problem hiding this comment.
❓ Verification inconclusive
Release metadata — verify tag and date.
Ensure the tag v0.7.0 exists and the date (2025-09-22) matches the GitHub release.
Run:
🏁 Script executed:
#!/bin/bash
# Verify release tag and published date
gh release view v0.7.0 --json tagName,publishedAt,url | jqLength of output: 88
🏁 Script executed:
#!/bin/bash
set -euo pipefail
REPO="warden-protocol/wardenprotocol"
TAG="v0.7.0"
if command -v gh >/dev/null 2>&1; then
gh release view "$TAG" --repo "$REPO" --json tagName,publishedAt,url | jq .
exit 0
fi
# Fallback to GitHub API
HTTP_STATUS=$(curl -sS -o /tmp/release.json -w "%{http_code}" "https://api.github.com/repos/$REPO/releases/tags/$TAG" || true)
if [[ "$HTTP_STATUS" != "200" ]]; then
echo "GitHub API returned HTTP $HTTP_STATUS"
cat /tmp/release.json
exit 2
fi
jq '{tag_name: .tag_name, published_at: .published_at, html_url: .html_url, name: .name, draft: .draft, prerelease: .prerelease}' /tmp/release.jsonLength of output: 17
Release tag v0.7.0 missing — create GitHub release or update CHANGELOG.md.
gh/curl check for warden-protocol/wardenprotocol returned "release not found" for tag v0.7.0; CHANGELOG.md (line 49) claims the release dated 2025-09-22. Either push/tag v0.7.0 and create the GitHub release with that published date, or correct/remove the CHANGELOG entry to the actual tag/date.
Location: CHANGELOG.md:49
🤖 Prompt for AI Agents
In CHANGELOG.md around line 49, the entry for "v0.7.0 - 2025-09-22" references a
GitHub release tag that doesn't exist; either create and push the v0.7.0 tag and
publish the GitHub release with that date, or edit CHANGELOG.md to remove or
correct the v0.7.0 entry to reflect an existing tag/date (update the version
header and link or delete the block) and commit the change so the changelog
matches the repository's actual releases.
|
|
||
| ## [v0.7.0](https://github.com/warden-protocol/wardenprotocol/releases/tag/v0.7.0) - 2025-09-22 | ||
|
|
||
| ### Consensus Breaking Changes |
There was a problem hiding this comment.
Add “Upgrade Notes” for operators (plan name, height, actions).
This is a consensus-breaking upgrade; operators need explicit steps (plan name v0.7.0, upgrade height, store removals, flags, known risks).
Apply this diff to add a minimal “Upgrade Notes” block; fill in height before merge:
### Consensus Breaking Changes
+#### Upgrade Notes
+- Plan name: `v0.7.0`
+- Upgrade height: <fill-before-merge>
+- Stores removed: CosmWasm (`wasm`), x/act (`act`), x/async (`async`), x/sched (`sched`), x/warden (`warden`).
+- Node operators: stop at height, replace binary, restart; no manual state changes required beyond upgrade handler.
+- Testnet only: yes (as of this release).📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ### Consensus Breaking Changes | |
| ### Consensus Breaking Changes | |
| #### Upgrade Notes | |
| - Plan name: `v0.7.0` | |
| - Upgrade height: <fill-before-merge> | |
| - Stores removed: CosmWasm (`wasm`), x/act (`act`), x/async (`async`), x/sched (`sched`), x/warden (`warden`). | |
| - Node operators: stop at height, replace binary, restart; no manual state changes required beyond upgrade handler. | |
| - Testnet only: yes (as of this release). |
🤖 Prompt for AI Agents
In CHANGELOG.md around line 51, there is a missing "Upgrade Notes" section for
this consensus-breaking change; add a minimal Upgrade Notes block under
"Consensus Breaking Changes" that lists the upgrade plan name (plan name:
v0.7.0), a placeholder for the upgrade height to be filled before merge, and
concise operator actions (e.g., required store removals/migrations, flags to set
or unset, and any known risks or caveats). Ensure the block is short, uses plain
bullet-like lines or sentences, and clearly instructs operators what to change
and where to fill the height value before merging.
| // wasmtypes.StoreKey, | ||
| // Warden Protocol store keys | ||
| acttypes.StoreKey, asynctypes.StoreKey, schedtypes.StoreKey, wardentypes.StoreKey, | ||
| // acttypes.StoreKey, asynctypes.StoreKey, schedtypes.StoreKey, wardentypes.StoreKey, | ||
| ) |
There was a problem hiding this comment.
Removing store keys without a store upgrade will brick upgrades.
You commented out the stores for wasm/warden modules but did not schedule a store deletion via SetStoreLoader. Existing chains with those stores will fail to load at upgrade height.
Add a store loader for v0.7.0 before LoadLatestVersion:
// After app.RegisterUpgradeHandlers(), before loadLatest block
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
panic(fmt.Errorf("failed to read upgrade info: %w", err))
}
if upgradeInfo.Name == "v0.7.0" && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
storeUpgrades := storetypes.StoreUpgrades{
Deleted: []string{
"wasm", // CosmWasm
"act", // x/act
"async", // x/async
"sched", // x/sched
"warden", // x/warden
},
}
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}This matches the changelog’s “Disable … and CosmWasm” note and ensures smooth migration.
🤖 Prompt for AI Agents
In warden/app/app.go around lines 277-280, you commented out store keys for
wasm/warden (and related modules) but did not add a corresponding store upgrade
loader, which will brick existing chains at upgrade time; add a SetStoreLoader
before LoadLatestVersion that reads UpgradeInfo from disk, checks for upgrade
name "v0.7.0" and non-skip height, and registers a storeUpgrades.Deleted list
containing the store names ("wasm", "act", "async", "sched", "warden") via
upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades) so the
stores are removed safely during the v0.7.0 upgrade.
| // wasmtypes.ModuleName, | ||
|
|
||
| // Warden modules | ||
| acttypes.ModuleName, wardentypes.ModuleName, asynctypes.ModuleName, schedtypes.ModuleName, | ||
| // acttypes.ModuleName, wardentypes.ModuleName, asynctypes.ModuleName, schedtypes.ModuleName, | ||
| ) |
There was a problem hiding this comment.
🧩 Analysis chain
Module removals — sanity check for dangling references.
Since these modules are no longer wired, ensure there are no remaining imports, keeper usages, or genesis expectations referencing act/async/sched/warden/wasm.
Run:
Also applies to: 717-721, 761-765
🏁 Script executed:
#!/bin/bash
# Scan for lingering references to removed modules
rg -nP -C2 '\b(x/(act|async|sched|warden)|wasmtypes|ModuleName\s*\,\s*.*(act|async|sched|warden|wasm))\b' --type=go
# Check genesis/export paths referencing these modules
rg -nP -C3 '(InitGenesis|ExportGenesis).*?(act|async|sched|warden|wasm)' --type=goLength of output: 95776
Module removals — fix dangling references
Multiple live references to wasm / x/act / x/async / x/sched / x/warden remain and must be removed, guarded, or the modules re‑wired.
- Key hotspots: warden/app/app.go (commented wasmtypes.ModuleName at ~701/717/761), warden/app/wasm-interop/custom_msg.go & custom_query.go, cmd/wardend/config/wardend_config.go (wasm module account mapping), precompiles/* (precompiles/act, precompiles/async, precompiles/sched, precompiles/warden), warden/x/warden/{types,keeper,module} (expected_keepers.go, keeper.go, genesis.go), warden/app/oracle.go & vemanager/vemanager.go (x/async handlers/vote extensions), warden/app/ante/{ante.go,sched_handler.go} (x/sched ante handling), plus many tests under tests/ and testutil/ that still import/skip these modules.
Action: either restore wiring (store keys, module accounts, migrations, genesis registration, keepers) or remove/feature‑gate every usage above (imports, keeper calls, precompiles, wasm interop, ante hooks, vemanager, cmd config, genesis/migrations, tests).
🤖 Prompt for AI Agents
In warden/app/app.go around lines 701-705, there are dangling references to wasm
and other removed modules (wasm, x/act, x/async, x/sched, x/warden); you must
either fully restore their wiring or remove/feature‑gate every usage. Fix by
removing these module names and any imports/usages from the module list and app
wiring (store keys, module accounts, migrations, genesis registration, keeper
wiring), OR wrap all references behind a clear feature flag/build tag and guard
keeper calls; then update related files mentioned in the review
(warden/app/wasm-interop/*.go, cmd/wardend/config/wardend_config.go to remove
wasm module account mapping, precompiles/* to eliminate precompile
registrations, warden/x/warden/{types,keeper,module} to remove expected_keepers
and genesis/migrations or implement keepers, warden/app/oracle.go &
vemanager/vemanager.go to remove async vote extensions, warden/app/ante/* to
remove sched ante handling) and adjust tests/testutil to stop importing/skipping
these modules; after changes, run go build/test and remove any leftover
references or unused imports reported by the compiler.
This PR updates the changelog and registers a new upgrade called
v0.7.0needed for upgrading our testnet.