You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Owner (douglasjarquin) has decided to proceed with a full Go/Cobra port of sumctl, replacing the Python implementation as the production CLI. This is separate from and does not reopen #38/#39: those issues correctly closed a bounded, benchmark-gated prototype whose measured surface did not clear the adoption gate (see PR #90, benchmarks/issue-38/report.md). PR #90 stays open on its own merits and is not touched by this issue.
This issue authorizes what #38 explicitly said not to do by default: translate the full sumctl.py (and its lib/ modules) into Go, not just the previously measured narrow surface.
Differential testing against the frozen Python reference revision: outputs, filesystem/Git/Herdr side effects, state/brief/evidence formats, role/instance/occupant checks, locking/atomic writes, subprocess argv, cancellation/timeouts.
Reuse the existing benchmarks/issue-38/ measurements and in-repo Go module scaffolding where still applicable; do not repeat Measure actual hot-path costs before choosing any Sum rewrite #37's measurement work merely to re-justify the language choice — this issue's authorization comes from the owner, not a new benchmark gate.
Preserve worker verification → independent root verification → human review → human merge. No installation update, default binary switch, or fleet restart as part of this issue; that is Conditionally roll out the Go/Cobra helper surface with known-good rollback #39-equivalent rollout, tracked separately once parity is demonstrated.
Unported edge cases must be explicitly listed rather than silently dropped.
Decision
Owner (douglasjarquin) has decided to proceed with a full Go/Cobra port of
sumctl, replacing the Python implementation as the production CLI. This is separate from and does not reopen #38/#39: those issues correctly closed a bounded, benchmark-gated prototype whose measured surface did not clear the adoption gate (see PR #90,benchmarks/issue-38/report.md). PR #90 stays open on its own merits and is not touched by this issue.This issue authorizes what #38 explicitly said not to do by default: translate the full
sumctl.py(and itslib/modules) into Go, not just the previously measured narrow surface.Scope
sumctl(all subcommands currently inbin/sumctl/lib/sumctl.pyand itslib/modules) to Go using Cobra, per the roadmap's Roadmap: reliability first, independently usable feature tracks, and direct Remainder integration #29 Go/Cobra decision (spf13/cobra, no Viper, no second parser).--), aliases, help text, stdout/JSON shapes, exit codes, env/settings precedence.cobra.Command— small ordinary Go functions own operations, consistent with Build the Sum-owned Herdr Mesh builtin in Go with Cobra, preserving CLI and MCP contracts #41's Mesh builtin split.benchmarks/issue-38/measurements and in-repo Go module scaffolding where still applicable; do not repeat Measure actual hot-path costs before choosing any Sum rewrite #37's measurement work merely to re-justify the language choice — this issue's authorization comes from the owner, not a new benchmark gate.Out of scope
References
Roadmap: #29 (Go/Cobra implementation decision, section 3 and section 6).
Prior bounded prototype and no-go: #38, #39, PR #90.