# CommandKit v0.5.0 CommandKit v0.5.0 fixes defects in deferred reporting and YAML value preservation, reduces repeated work in command installation and alias help, and simplifies typed input preparation and replay of captured flags. ## Changes - Acceptance of deferred messages now closes atomically when invocation finalization begins. Concurrent submissions are included in the final batch or rejected with `ErrReporterClosed`; accepted messages can no longer be silently lost between batch detachment and closure. - Finalized reporting state releases its direct references to borrowed output and diagnostic writers while retaining presentation results. Writers remain caller-owned. - `DecodeYAMLReport` follows resolved YAML scalar tags, preserving numeric-looking strings as strings. YAML report rendering preserves explicit numeric meaning for values beyond the resolver's ordinary numeric range. - Compilation of flag aliases reuses resolved chain suffixes. Alias discovery and help reuse the existing source tree, and declaration validation reuses one scratch path across siblings, formatting paths only for diagnostics. - Typed input preparation reconstructs occurrence order without general sorting; replay of captured flags merges already ordered streams. Parsing and completion share flag-consumption mechanics while retaining their distinct handling of errors and incomplete input. - The core reporting example preserves its default scenario when the optional operand is omitted. The interactive completion fixture no longer collides with the reserved `--format` flag. `FlagMeta` documentation now states the existing naming and reserved-spelling rules. ## Compatibility and upgrade The public core Go API, CLI grammar, and Go 1.26.0 consumer minimum are unchanged. The maintainer release toolchain remains Go 1.27.0. Applications using background producers should coordinate deferred submissions before the handler returns and handle `ErrReporterClosed` once finalization begins. See the [invocation reporting guide](../consumers/guide.md#invocation-reporting). Callers supplying YAML with numbers beyond the resolver's ordinary range should use explicit `!!int` or `!!float` tags when numeric meaning is intended. Untagged values resolved as strings now retain that type. See [`DecodeYAMLReport`](../../report_value.go) for the conversion contract. [COPYRIGHT](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.5.0/COPYRIGHT) | [LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.5.0/LICENSE) | [ATTRIBUTION](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.5.0/docs/oss/attribution.md)