feat(cli): remove the CLI plugin extension mechanism

Merged
MI
1d ago
+7-1257

Description

Removes the CLI plugin extension mechanism (the chainloop config plugin subcommands and everything behind them).

Why: this extension mechanism never went past the alpha/preview stage and is not used in practice, while it carried real costs — loading plugins spawns a subprocess and an RPC handshake per installed plugin on every CLI invocation, plus a maintenance burden. Since nothing depends on it, removing outright beats deprecating.

What changed

  • Deleted app/cli/pkg/plugins/ (manager, client, interface, shared RPC plumbing on hashicorp/go-plugin)
  • Deleted app/cli/cmd/plugins.go (the config plugin list/describe/install commands and dynamic command registration) and app/cli/pkg/action/plugin_actions.go
  • Unwired root.go: plugin loading on startup, the pluginLessCommands skip-list, and cleanupPlugins() on shutdown
  • Cleaned app/cli/documentation/generate.go: dropped the isPluginCommand filter, no longer needed
  • Regenerated app/cli/documentation/cli-reference.md (the config plugin section is gone)
  • go.mod: hashicorp/go-hclog moves to indirect; hashicorp/go-plugin stays a direct dependency (still used by the control-plane plugin system, which is a separate mechanism and is untouched by this PR)

Test plan

  • go build ./app/cli/...
  • go test ./app/cli/... — all pass
  • CLI reference docs regenerated via go run ./generate.go