Repository navigation
Releases: WireCatLabs/cli-base
Release list
0.51.0
0.51.0 — 24.10.2026
Added
- Comparison pages live in the site repository, and our marks are re-checked at each release (
WC-CMP-11, Comparisons). The page is written incli-docs(wirecat.dev) because a comparison changes when other tools change, not when we release; the CLI repository keeps a shortdocs/compare.mdthat links to it. The release report lists the compare page as checked. Nothing changes in code.
Changed — may break callers
-
Shared command contracts require explicit overrides before host edits.
sharedCommand,assertSharedContracts,overrideSharedContractandcustomizeSharedCommandlive in/commands; original definitions and exact accepted edits remain available for audits. Independent shell replacements must supply static, exact before/after declarations; a new Core default or a changed provider builder fails until those declarations are reviewed. Provider additions are allowed; inherited subcommands cannot disappear silently./commandsnow loads Commander at runtime. -
Cross-CLI contract drift cannot be accepted through a lint baseline. Declare intentional differences with
their exact expected values and a specific reason; a changed or stale exemption fails.audit --complete
collects actual schemas and error reasons fromcommands info --jsonand refuses missing coverage. Canonical capability manifests and validated inherited definitions distinguish explicit provider variants from drift. Global
options satisfy matching command-local controls, so their placement alone is no longer a divergence.
Fixed
-
Complete audits keep runtime availability separate from static contracts. A currently denied or available command retains the same protected grammar and output definition.
-
Command lint distinguishes list filters from computation and output controls. Ranking weights, timezone, output context and byte pagination remain controls even when an answer exposes similarly named fields; singleton targets are not list filters. Native query fields and id/time filtering remain checked.
0.35.0
Added
- Bounded batches share parsing, correlation and sequential execution.
prepareBatch,readBatchInputand
runBatchaccept explicit registered handlers, cap input/count/read reservations and retained output, and keep
a result for every input on budget refusal. Failed reads never refund their reserved ceiling; it is not a byte
consumption measurement. Hosts retain account authorization, cancellation, final rendering and resource cleanup.
projectBatchAnswersselects nested answer fields while retaining ids, errors and completeness.
0.31.1
Fixed
- Nested field selection traverses arrays and retains report coverage. Item/list envelopes, continuation, missing data and operation identifiers are handled by one shared projector; consumers no longer need to unwrap item answers.
0.20.0
Changed — may break callers
resolvePathsgives the XDG layout on macOS too —~/.config/<app>,~/.local/share/<app>and
~/.cache/<app>, or theXDG_*variables when set — instead of~/Library/Preferences,
~/Library/Application Supportand~/Library/Caches. One layout on every Unix is one set of
documentation and one place to look. Linux and Windows paths do not change, and the*_DIRoverrides
still win. It now readsHOME, theXDG_*variables,USERPROFILE,APPDATAandLOCALAPPDATA
from theenvit is given, not from the globalprocess.env, and takes an optionalplatform.
On macOS, a CLI that adopts this release finds none of its existing files until it calls
migrateLegacyMacPathsat start. A keyring service name built from the config path changes with it.
Added
migrateLegacyMacPathsmoves an older release's~/Libraryfolders to the new ones, once.
On macOS, with no*_DIRoverride set, it moves each old folder whose new one is missing or empty,
all of them or none, and returns what moved. It never merges into a folder that has files, and
across file systems it copies, checks the copy and keeps the old folder. It throws a
configuration_errornaming the processes when lsof shows a file open in a pending folder — stop a
runningserveor MCP server and run again. lsof sees only files open at that moment, so a caller
that knows its own lock files should report their holders throughholders. Call it at program start, before anything resolves a
path; with nothing to move it costs onelstatper folder.legacyMacPathsgives the old folders.
Removed
- The
env-pathsdependency. The paths it gave on Windows are kept as they were.
0.19.4
Fixed
-
Package references, documentation and fixtures use the WireCat namespace throughout.
-
The owner-migration helper covers meetings, testing, Zoom and the shared organization repositories, so their links and package names migrate with the original CLIs.
0.19.3
Fixed
- Zero command deadlines abort synchronously before a body can execute, matching the documented
immediate deadline instead of scheduling a timer that could lose to a fast command. They create
no sleep or timer; an already aborted parent retains its cancellation reason.
0.19.2
Added
- Portable command control helpers expose
fieldsOf,projectFields,createOutputBuffer
andcreateDeadlinefrom the root export. Field projection retains list and operation metadata;
a bounded UTF-8 buffer delays data until hosts finish cleanup. Deadlines use injected sleep and
cancellation, waiting for the body to settle before callers close resources. Callers must propagate
the signal, dispose the deadline and discard buffered output on failure; no provider/store lifecycle
or automatic retries are imported.
Fixed
- Windows maintenance commands support portable relative PATH entries and custom or sanitized command-processor environments while preserving separate arguments.
Security
- Release checks include source and secret analysis; critical production advisories and critical source findings block publication. Workflow findings are reported for review. PR security remains the fast secret scan.
0.19.0
Fixed
- Windows updater and MCP setup commands resolve through absolute PATH entries and use an explicit command processor, avoiding accidental execution from the current folder. POSIX resolution is unchanged.
Added
/updateexportsexecutableOnPathandexecutableEnvironmentfor consumers using the same Windows command resolution.