Skip to content

refactor(nodetask): consume wire.GovTxResult; drop sei-chain from the graph#453

Merged
bdchatham merged 1 commit into
mainfrom
feat/nodetask-consume-wire
Jul 7, 2026
Merged

refactor(nodetask): consume wire.GovTxResult; drop sei-chain from the graph#453
bdchatham merged 1 commit into
mainfrom
feat/nodetask-consume-wire

Conversation

@bdchatham

Copy link
Copy Markdown
Collaborator

The controller half of the dependency-leak fix — consumes seictl v0.0.62's wire package and lands the module-graph payoff. Depends on: seictl#220.

Change

  • go.mod → seictl v0.0.62.
  • govoutputs.go decodes wire.GovTxResult directly (deletes the local govResult mirror + inclusion consts); controller.go keys on wire.Inclusion*.
  • Deletes TestGovResultMirrorMatchesWire — the mirror is gone, so wire-drift is structurally impossible (we import the exact type).
  • Removes the gogo-fork + genproto replace directives (they existed only for the sei-chain transitive graph).

Proof (the payoff)

  • go list -deps ./cmd/... : 230 sei-chain packages → 0
  • sei-chain removed from go.mod; go mod why sei-chain"main module does not need" it
  • go.sum shrinks ~3,400 lines
  • full build / vet / gov tests green; 0 new lint issues; no CRD change

No behavior change — the gov completion contract is identical; this is purely how the shared result type is sourced (the exact wire type instead of a hand-mirrored copy).

🤖 Generated with Claude Code

… graph

Bumps seictl to v0.0.62 (the wire split) and consumes the shared contract type
directly instead of mirroring it:
- govoutputs.go decodes wire.GovTxResult (deletes the local govResult mirror +
  inclusion consts); controller.go keys on wire.Inclusion*.
- deletes TestGovResultMirrorMatchesWire — the mirror is gone, so drift is
  structurally impossible (we import the exact type).

Payoff — the controller is now sei-chain-free at every level:
- go list -deps ./cmd/... : 230 sei-chain pkgs -> 0
- sei-chain removed from go.mod; `go mod why sei-chain` -> not needed
- the gogo-fork and genproto replace directives (sei-chain-only) removed as
  dead no-ops; go.sum shrinks ~3.4k lines

Depends on: seictl#220 (v0.0.62).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Gov completion paths still decode JSON and latch phases on inclusion status, so a wire/seictl mismatch could mis-handle txs; the module churn is large but behavior is meant to stay identical.

Overview
Bumps seictl to v0.0.62 and sources governance completion types from github.com/sei-protocol/seictl/sidecar/wire instead of a local mirror.

govoutputs.go unmarshals sidecar results into wire.GovTxResult and maps fields into CRD outputs; controller.go branches on wire.InclusionPending, wire.InclusionCommittedFailed, etc. for the same gov terminal semantics as before. The hand-copied struct/constants and TestGovResultMirrorMatchesWire are removed because the controller imports the canonical type.

go.mod / go.sum: the transitive sei-chain graph is eliminated (large indirect prune and a much smaller sum); replace hooks for gogo/protobuf and monolithic genproto go away with that leak. k8s pins at v0.35.0 via replace remain for controller-runtime compatibility.

No intended runtime or CRD behavior change—only where the shared gov result type comes from and how heavy the dependency tree is.

Reviewed by Cursor Bugbot for commit ae44a0e. Bugbot is set up for automated code reviews on this repo. Configure here.

@bdchatham bdchatham merged commit 8bf3ade into main Jul 7, 2026
5 checks passed
@bdchatham bdchatham deleted the feat/nodetask-consume-wire branch July 7, 2026 05:26
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