- Stop now takes the store lock like other mutating commands\n- Wrap enter/exec/stop errors with env input and resolved id context\n- Enter/exec now return a clearer error when the env is already running or not built
- Guard WAL recovery and stale .running cleanup behind a try-acquired store lock\n- Persist rollback ResetState via MetadataStore to recompute checksums\n- Track a killable host PID for namespace enter/stop and treat SIGTERM/SIGKILL as clean exit\n- Derive OCI status PID via runtime state output\n- Make sandbox chroot script quoting robust for exec/enter
Piping CLI output into tools like head may close stdout early.
Rust then panics when printing.
Install a panic hook that exits successfully on EPIPE instead of
emitting a panic backtrace.
The snapshots command printed a snapshot layer internal ID that restore
cannot use.
Compute and display the stored layer manifest hash so it can be
copy/pasted into restore. JSON output now includes restore_hash.
Add an integration test covering commit -> snapshots -> restore.
Refactor build and rebuild command handlers to pass BuildOptions instead
of multiple boolean flags, satisfying clippy's excessive-bools and
too-many-arguments lints.
Apply rustfmt output in CLI and core engine code.
Add CLI integration coverage for:
- 'pin --check' on pinned and unpinned base.image
- 'build --offline' failing fast when system packages are requested
Add a new 'pin' subcommand to rewrite base.image to an explicit URL.
Extend build and rebuild with --locked, --offline, and --require-pinned-image,
and wire flags into the core engine build options.
Add 'karapace new' to generate a manifest from templates or prompts.
Add 'karapace tui' to launch the terminal UI.
Improve env-id resolution errors in non-JSON output with suggestions.
Add dialoguer and toml as CLI dependencies.
- Add KARAPACE_SKIP_PREREQS=1 env var check to skip runtime prerequisite
checks (user namespaces, fuse-overlayfs) when testing with mock backend
- Set KARAPACE_SKIP_PREREQS=1 in CLI integration test helper
- Add bash to opensuse/tumbleweed container deps (required by
dtolnay/rust-toolchain action)
- 23 commands, each in its own module under commands/
- Thin main.rs dispatcher with clap subcommand routing
- Progress spinners (indicatif) and colored state output (console)
- Environment resolution by env_id, short_id, name, or prefix
- Structured JSON output (--json) on all query commands
- --verbose/-v for debug, --trace for trace-level logging
- KARAPACE_LOG env var for fine-grained log control
- Exit codes: 0 success, 1 failure, 2 manifest error, 3 store error
- Prerequisite check before runtime operations
- Shell completions (bash/zsh/fish/elvish/powershell) and man page generation