Reconcile module docs and release materials

This commit is contained in:
2026-10-11 02:06:06 +00:00
parent 18e81a5579
commit d2b5b0f3a8
45 changed files with 2380 additions and 362 deletions

View File

@@ -40,8 +40,11 @@ type preparedSuite[I, S any] struct {
}
// Command eagerly captures a configuration suite as a root-only config family.
// Its declaration can be reused in multiple applications; suite factories and
// providers run only during the corresponding invocation path.
// It copies suite slices, retains callback references, and returns a reusable
// declaration; installation does not invoke factories or providers. During an
// inspection, it creates separate input for each selected scope, validates
// those inputs before acquisition, and creates shared state once for that
// invocation.
func Command[I, S any](suite Suite[I, S]) commandkit.Command {
prepared := captureSuite(suite)
if len(prepared.scopes) == 0 {
@@ -61,8 +64,9 @@ func Command[I, S any](suite Suite[I, S]) commandkit.Command {
return declaration
}
// AppCommand builds the state-free convenience suite for application
// configuration. The application consumer supplies only its ConfigKit loader.
// AppCommand builds the state-free, input-free convenience suite for application
// configuration. The application consumer supplies only its ConfigKit loader,
// which runs only for a selected operation after input preflight.
func AppCommand[T any](load func(context.Context, Selection) (*configkit.Result[T], error)) commandkit.Command {
var adapterLoad func(context.Context, Selection, struct{}, struct{}) (*configkit.Result[T], error)
if load != nil {