Skip to content

Releases: jedwards1230/labctl

Release 0.7.0

26 Jun 21:19
7cbc7c5

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.7.0

Or download a static binary for your platform below.


What's Changed

  • refactor!: move service commands under a svc namespace by @jedwards1230 in #14

Full Changelog: v0.6.0...v0.7.0

Release 0.6.0

26 Jun 20:47
9b5c3f1

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.6.0

Or download a static binary for your platform below.


labctl v0.6.0

This release introduces MCP tool annotations, read-only/service filtering for MCP, a new labctl init command for manifest scaffolding, and a self-update command — alongside contributor documentation and build metadata improvements.


Features

labctl init — Manifest Scaffolding

A new init command bootstraps a starter manifest file in the current directory, making it easier to get started with labctl without writing configuration from scratch.

labctl init

MCP Tool Annotations & Filtering

MCP tool exposure now supports annotations and two new filter modes:

  • Read-only filter — restrict MCP tools to read-only operations, preventing any state-mutating calls through the MCP interface.
  • Service filter — limit which services are exposed as MCP tools, giving finer control over what gets surfaced.

Configure these options in your manifest or via CLI flags (see labctl mcp --help for details).

labctl self-update

A new self-update command fetches and installs the latest release of labctl directly, removing the need to manually download new versions.

labctl self-update

Honest Build-Info Version Reporting

labctl version / build-info output now reports accurate version metadata, replacing placeholder values that appeared in previous builds.


Improvements

  • Added CONTRIBUTING.md with guidelines for contributors, covering development setup, branching conventions, and PR expectations.

Commits

  • Merge pull request #13 from jedwards1230/feat/mcp-controls-and-manifest-init (9b5c3f1)
  • Merge pull request #12 from jedwards1230/docs/add-contributing (f86a51f)

Full Changelog: v0.5.0...v0.6.0

Release 0.5.0

26 Jun 13:39
8c1ee3f

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.5.0

Or download a static binary for your platform below.


labctl v0.5.0

This release adds a self-update command for keeping labctl current without manual downloads, and delivers a broad hardening pass covering secret scrubbing, exit-code correctness, spec caching, and a security vulnerability fix.

Features

Self-Update Command

labctl can now update itself in place:

labctl self-update

Fetches the latest release and replaces the current binary. Build info (labctl version) now reports honest version metadata derived from the actual build rather than a placeholder.

Bug Fixes

  • Secret scrubbing: Sensitive values are no longer leaked in logs or error output.
  • Exit-code parity: Commands now return non-zero exit codes consistently on failure, making labctl more reliable in scripts and CI pipelines.
  • Spec cache: API spec lookups are now cached correctly, reducing redundant network calls and fixing stale-spec edge cases.
  • CVE bump: Updated a dependency with a known CVE.

Improvements

  • Expanded test coverage across the hardening batch to back the above fixes.
  • labctl version output now reflects true build-time version information.

Commits

  • Merge pull request #11 from jedwards1230/feat/self-update (8c1ee3f)
  • Merge pull request #10 from jedwards1230/feat/hardening-batch (5500604)

Full Changelog: v0.4.0...v0.5.0

Release 0.4.1

26 Jun 13:10
5500604

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.4.1

Or download a static binary for your platform below.


What's Changed

  • fix: review-round hardening batch (secret scrubbing, exit-code parity, spec cache, CVE bump, tests) by @jedwards1230 in #10

Full Changelog: v0.4.0...v0.4.1

Release 0.4.0

26 Jun 11:45
fb285fb

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.4.0

Or download a static binary for your platform below.


labctl v0.4.0

This release focuses on reliability, correctness, and security hardening — introducing a secrets-provider interface, fixing several behavioral bugs, and significantly expanding test and CI coverage.

Features

Scheme-Dispatched Secrets Provider Interface

A new secret subsystem introduces a pluggable, scheme-dispatched interface for resolving secrets at runtime. The first provider targets 1Password, allowing manifest values to reference secrets via a URI scheme (e.g., op://vault/item/field) rather than embedding credentials in plain text. Additional providers can be registered following the same interface contract.

Breaking Changes

None in this release.

Bug Fixes

  • Sensitive value redaction — secret material is now masked in log output and error messages, preventing accidental credential leakage.
  • Dry-run mode — dry-run no longer executes side-effecting operations; behavior is now consistent across all command paths.
  • Exit codes — error conditions that previously exited with code 0 now return non-zero exit codes, making labctl safer to use in scripts and CI pipelines.
  • Context propagationcontext.Context is now threaded correctly through async and batched operations, enabling proper cancellation and timeout handling.
  • Lint violations — a batch of static-analysis findings (shadowed variables, unchecked errors, improper error wrapping) have been resolved.

Improvements

  • Expanded test coverage — new tests cover dispatch logic, paginated responses, JSON-RPC over WebSocket, and example manifests.
  • golangci-lint in CI — linting is now enforced on every pull request via GitHub Actions, preventing regression of the correctness fixes above.

Commits

  • Merge pull request #9 from jedwards1230/feat/test-ci-hardening (fb285fb)
  • Merge pull request #8 from jedwards1230/feat/correctness-batch (29caed2)

Full Changelog: v0.3.0...v0.4.0

Release 0.3.0

26 Jun 02:24
a5967e4

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.3.0

Or download a static binary for your platform below.


What's Changed

  • feat(secret): scheme-dispatched secrets-provider interface with 1Password provider by @jedwards1230 in #7

Full Changelog: v0.2.0...v0.3.0

Release 0.2.0

25 Jun 21:42
a5f2e74

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.2.0

Or download a static binary for your platform below.


labctl v0.2.0

This release delivers a major expansion of labctl's capabilities, introducing JSON-RPC over WebSocket transport, OAuth2 authentication, OpenAPI-based service inference, composed pipelines, and a built-in MCP server — rounding out the core Phase 2 and Phase 3 feature set.


Features

JSON-RPC over WebSocket (jsonrpc-ws)

labctl now supports JSON-RPC 2.0 communication over WebSocket connections, enabling real-time, bidirectional interaction with homelab services that expose a WebSocket endpoint.

OAuth2 Authentication

Auth strategies now include OAuth2 support. Configure OAuth2 credentials in your service manifest to have labctl handle token acquisition and refresh automatically when calling protected APIs.

OpenAPI Inference

labctl can now inspect an OpenAPI specification and infer available operations, reducing the need for hand-written manifest entries for services that publish a spec. Point labctl at an OpenAPI document and it will derive callable commands automatically.

Composed Pipelines

Multiple service calls can now be chained into a composed pipeline, allowing the output of one step to feed into the next. Define pipeline stages in your manifest to orchestrate multi-step homelab workflows from a single command.

MCP Server

labctl now ships with an embedded MCP (Model Context Protocol) server, exposing registered service operations as MCP tools. This enables AI assistant integrations to invoke labctl-managed homelab services directly.


Improvements

Expanded Auth Test Coverage

Authentication strategies and CLI exit-code contracts are now covered by a dedicated test suite, improving reliability and making regressions easier to catch.

CI: actions/setup-go bumped to v6 (Node 24)

The CI pipeline now uses actions/setup-go@v6, aligning with the Node 24 runner baseline and ensuring consistent Go toolchain setup in automated builds.

Commits

  • Merge pull request #5 from jedwards1230/feat/phase-2-3 (a5f2e74)
  • Merge pull request #4 from jedwards1230/test/cli-auth-coverage (ca5c24f)
  • Merge pull request #3 from jedwards1230/ci/setup-go-v6 (c40ad97)

Full Changelog: v0.1.0...v0.2.0

Release 0.1.1

25 Jun 11:59
ca5c24f

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.1.1

Or download a static binary for your platform below.


This release focuses on test coverage and CI/CD improvements with no user-facing changes.

Improvements

  • Enhanced test coverage for authentication strategies and CLI exit-code contract to improve reliability
  • Updated CI/CD pipeline to use actions/setup-go v6 with Node 24 support for faster and more reliable builds

Commits

  • Merge pull request #4 from jedwards1230/test/cli-auth-coverage (ca5c24f)
  • Merge pull request #3 from jedwards1230/ci/setup-go-v6 (c40ad97)

Full Changelog: v0.1.0...v0.1.1

Release 0.1.0

25 Jun 03:14
443c3c0

Choose a tag to compare

Install

go install github.com/jedwards1230/labctl@0.1.0

Or download a static binary for your platform below.


labctl v0.1.0

Initial release of labctl, a manifest-driven CLI for homelab service APIs, introducing optional OpenTelemetry tracing support and automated CI tooling.

Features

Optional OpenTelemetry Tracing

labctl now supports optional distributed tracing via OpenTelemetry. When enabled, traces are emitted for CLI operations, making it easier to observe and debug interactions with homelab service APIs. Tracing is opt-in and can be configured without affecting normal CLI usage.

Improvements

AI-Powered PR Review Workflow

A GitHub Actions workflow has been added to automatically run AI-assisted code review on pull requests, helping maintain code quality as the project grows.

Commits

  • Merge pull request #1 from jedwards1230/feat/otel (443c3c0)
  • Merge branch 'main' into feat/otel (b4cb810)
  • Merge pull request #2 from jedwards1230/feat/pr-review (ca8341b)

Full Changelog: 2c7c366...v0.1.0