Skip to content

Fixes from the v0.5.1 end-to-end pass on primium-1 - #17

Merged
abhijitkrm merged 1 commit into
mainfrom
fix/e2e-v0.5.1
Oct 10, 2026
Merged

abhijitkrm merged 1 commit into
mainfrom
fix/e2e-v0.5.1

Conversation

@abhijitkrm

Copy link
Copy Markdown
Owner

An end-to-end pass on the live primium-1 testnet, run entirely through cometcli: 4 validators over SSH on cosmos/evm v0.6.1, with the archive host unreachable.

What was tested live

Test Result
SSH to every host, fleet status, known questions ✓ (archive unreachable, reported locally)
network check against the spec ✓ 0 fail. All 4 validators run 400ms consensus timeouts where the spec says 200ms, and the chain params moved by governance: spec drift, left for the operator
Downtime: stop val4 → jailed → /incident ✓ The playbook restarted it, synced in 15s, waited out the 10-min jail and stopped at the unjail for a person. Unjail approved, val4 healthy. No model call. But it was diagnosed as a mempool mismatch (fixed below).
Direct commands: logs, config no-op, approved restart of val3 ✓ No model call
Governance: proposal #7, 4 votes, passed ✓

Fixes

  • Mempool misdiagnosis on v0.6. On CometBFT 0.38, flood is correct; a stopped node was flagged anyway, and the playbook ran a (no-op) set-config. The rule is now a pure, table-tested function.
  • Questions that name a node. "is val2 healthy" and "does val4 match the spec" are answered locally for that node (they went to the model before).
  • Unreachable nodes are a local answer, not a model call.
  • Courtesy words around commands. "restart val3 please" is a command again.
  • Docker node version. Read from the container and its image (it was blank).
  • network check. Reads chain params through the first node that answers.
  • Proposal questions. "show proposal 7" / "did proposal 7 pass" give one proposal and its tally locally (chain.gov id=). Question patterns can now carry arguments.

🤖 Generated with Claude Code

https://claude.ai/code/session_01F45MzyHimtHknrZrgxmbYQ

Found by running cometcli against the live 4-validator testnet:

- a stopped v0.6.1 validator was diagnosed as a mempool mismatch (flood
  is right on CometBFT 0.38); the rule is now a tested function and only
  flags flood where the version needs 'app' or the logs say so
- questions that name a node ('is val2 healthy', 'what version is val3
  running', 'does val4 match the spec') are classified with the name read
  as 'node' and answered for that node locally
- a node that doesn't answer is a local answer ('archive-rpc isn't
  reachable'), not a model call
- 'restart val3 please' / 'please restart val3 now, thanks' are commands
- the version of a docker node comes from its container (and image), not
  the host, where there is no evmd
- network check reads chain params through the first node that answers
- 'show proposal 7' / 'did proposal 7 pass': one proposal with its tally,
  locally; question patterns can carry arguments, and a question that
  doesn't say which goes to the model

Live: downtime incident on val4 (stop, jailed, playbook restart + sync +
jail wait, unjail approved), direct commands (logs, config no-op,
approved restart), governance (proposal #7, 4 votes, passed) — all
without the model apart from the misdiagnosis above.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F45MzyHimtHknrZrgxmbYQ
@abhijitkrm
abhijitkrm merged commit c0a378f into main Oct 10, 2026
2 checks passed
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