Skip to content

Plan 3: CLI + MCP server + CI + release pipeline#3

Merged
ceballosiker merged 27 commits into
developfrom
feat/plan-3-binaries
May 20, 2026
Merged

Plan 3: CLI + MCP server + CI + release pipeline#3
ceballosiker merged 27 commits into
developfrom
feat/plan-3-binaries

Conversation

@ceballosiker
Copy link
Copy Markdown
Owner

Summary

Plan 3 of the exit-node build: produces v0.1's user-facing surface — the exitnode CLI, the exitnode-mcp stdio server, GitHub Actions CI, and goreleaser packaging.

  • internal/coreStart(name), Stop(name), Destroy(name) + GetActive() accessor for the MCP layer
  • cmd/exitnode — 8 cobra subcommands (up / down / rotate / list / status / health / pfsense sync / cost) over a shared buildCore helper; --json + --version + --verbose globals
  • cmd/exitnode-mcp — stdio MCP server (modelcontextprotocol/go-sdk v1.6) with all 10 spec §11 tools wired to core
  • examples/config.toml — annotated reference config
  • examples/mcp.json — Claude Desktop / OpenClaw snippet
  • .github/workflows/ci.yml — vet + lint + race tests + linux/darwin × amd64/arm64 cross-build matrix
  • .goreleaser.yaml + release.yml — tag-triggered tar.gz archives + SHA256 + GitHub release
  • README updated with Prerequisites, Install, Configure, Using exitnode-mcp, and Troubleshooting sections
  • go.mod cleaned via go mod tidy (long-deferred since Plan 1; safe now that both binaries import everything)

Test plan

  • make test (race, all 9 packages green)
  • make test-integration (build-tagged path compiles)
  • go vet ./... and go vet -tags integration ./... clean
  • 4-platform × 2-binary cross-compile smoke
  • exitnode --help shows all 8 subcommands; exitnode --version returns the ldflag-injected string
  • manual integration smoke against real GCP (post-merge)

Next: cut developmain and a v0.1.0 tag to fire the goreleaser release workflow.

@ceballosiker ceballosiker merged commit 17764e6 into develop May 20, 2026
6 checks passed
@ceballosiker ceballosiker deleted the feat/plan-3-binaries branch May 20, 2026 21:04
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