Files
commandkit/docs/releases/v0.1.0.md

3.3 KiB

CommandKit v0.1.0

Summary

CommandKit's initial release provides a Go library for consistent CLI inspection, command syntax, and shared command infrastructure. Applications register their own domain commands alongside CommandKit's standard inspection families. This release is a source-only Go module.

Features

  • An instance-owned command registry with composable groups, typed flag and operand bindings, and explicit presence tracking for empty, false, and zero values. Each invocation has fresh parsing state.
  • A root public commandkit facade with Cobra-backed routing and parsing behind an internal adapter. Applications supply context and streams and retain their startup, acquisition, domain behavior, and process-exit decisions.
  • Metadata-driven help and version reporting. Version output defaults to the application identity and can explicitly select the embedded CommandKit identity.
  • Configuration scope discovery, validation, native effective YAML display, source inventory, and path explanation through application-supplied providers and ConfigKit adapters. Aggregate effective display emits a YAML document per selected scope with scope labels.
  • Independent registration of PromptKit engine configuration inspection and optional named prompt/profile inspection, with text and YAML definition reports.
  • Invocation outcomes that preserve application domain classifications and supported error identity, with diagnostic and report-delivery failure reporting.
  • Reused command and scope metadata, indexed command lookup, invocation-local backend sessions, requested-format report rendering, and fewer YAML framing allocations.

See the CLI reference for command contracts and the consumer guide for integration and maintained examples. Semantic configuration comparison and PromptKit catalog listing remain deferred.

Requirements and adoption

Go 1.26.0 or newer is required. During development, the declared minimum increased from Go 1.25.5 to 1.26.0 with the adoption of ReleaseKit v0.3.0. ReleaseKit is a maintainer tool dependency in the root module graph, so its Go requirement also applies to library consumers; production packages do not import ReleaseKit. Consumers using Go 1.25 must upgrade their toolchain before adopting v0.1.0. The selected maintainer release toolchain is Go 1.26.8, distinct from the consumer minimum.

Select the released module version with:

go get gitea.maximumdirect.net/eric/CommandKit@v0.1.0

Applications migrating from their own CLI implementations should align standard command paths and syntax with CommandKit, then update operator documentation and subprocess callers for those intentional changes. Application-specific commands remain application-owned. Compatibility for subsequent releases follows the release policy.

COPYRIGHT | LICENSE | ATTRIBUTION