feat(cli): add kebab reset command with TTY confirm gate
Mutually-exclusive scope flags (--all / --data-only / --vector-only / --config-only via clap ArgGroup) plus --yes for non-interactive use. Aborts with exit 2 when stdin is non-interactive and --yes is missing — silent destruction is forbidden. Self-contained 20-line confirm prompt (no new dep; std::io::IsTerminal). Integration tests exercise the bin in a fresh subprocess against tempdir-rooted XDG env to keep the assertions independent of the host config: - --data-only --yes wipes data + cache + state, preserves config. - non-TTY without --yes exits 2 with the documented hint. - --json emits reset_report.v1 schema with snake_case scope. - conflicting --all + --data-only rejected by clap before any wipe. Plan deviation (task 4): the data-only test used to write a stub config.toml containing only `schema_version = 1`, but Config parsing requires every section. Switched to a marker file in the cfg dir + the documented Config::load(None)→defaults fallback. p9-fb-06 task 4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,3 +30,6 @@ kebab-tui = { path = "../kebab-tui" }
|
||||
anyhow = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = { workspace = true }
|
||||
|
||||
Reference in New Issue
Block a user