mirror of
https://github.com/instructkr/claude-code.git
synced 2026-05-21 13:16:45 +00:00
docs(roadmap): add status version positional hang
This commit is contained in:
@@ -6617,3 +6617,5 @@ Original filing (2026-04-18): the session emitted `SessionStart hook (completed)
|
||||
530. **`skills` and `dump-manifests` unknown actions/extra args zero-byte hang, so the skill/manifest discovery surfaces are not safe typed inventories when users typo a subcommand** — dogfooded 2026-05-21 from the `#clawcode-building-in-public` 07:00 UTC nudge on `/home/bellman/Workspace/claw-code-pr2967` with branch/origin `docs/roadmap-workdir-provenance@4fc57a3` and binary `./rust/target/debug/claw` built from source SHA `25d663d`. Clean-home probes from a minimal temp workspace: `claw skills bogus`, `claw skills bogus --output-format json`, `claw skills --output-format json bogus`, `claw dump-manifests bogus`, and `claw dump-manifests bogus --output-format json` each timed out after 6s with `stdout=0`/`stderr=0`; the sweep was stopped before probing later diagnostics. #529 captured `agents`/`mcp` and noticed `skills` starting to hang; this entry isolates the skill/manifest inventory surfaces. `skills` should have a closed grammar (`list|install|help|<skill> [args]`) and `dump-manifests` should either accept only documented `--manifests-dir`/format flags or return a typed unsupported-arg error. Instead, malformed inventory calls fall through into silent runtime/prompt wait. **Required fix shape:** (a) implement explicit parser branches for `skills` and `dump-manifests` before any prompt fallback; (b) for `skills <unknown>`, decide whether unknown means “try invoke skill” or “unknown skill”, but return a bounded `kind:"unknown_skill"` / `kind:"unsupported_action"` when no such skill exists; (c) reject extra positionals for `dump-manifests` with `kind:"unsupported_argument"` and list supported flags; (d) honor JSON mode with machine-readable errors and elapsed-time guards; (e) add regressions for the five probes above plus valid `skills list`/`dump-manifests --manifests-dir <missing>` controls. **Why this matters:** skills and manifests are the self-description layer for downstream claws. A typo while inspecting capabilities should never look like MCP/plugin lifecycle deadlock or prompt startup; it should be a small typed inventory error. Source: gaebal-gajae dogfood response to Clawhip message `1506914474010087594` on 2026-05-21.
|
||||
|
||||
531. **`sandbox` and `doctor` unknown positional arguments zero-byte hang, so health/safety diagnostics lose their escape-hatch value when a user adds a typo or copied JSON placement** — dogfooded 2026-05-21 from the `#clawcode-building-in-public` 07:30 UTC nudge on `/home/bellman/Workspace/claw-code-pr2967` with branch/origin `docs/roadmap-workdir-provenance@297a9c4` and binary `./rust/target/debug/claw` built from source SHA `25d663d`. Clean-home probes from a minimal temp workspace: `claw sandbox bogus`, `claw sandbox bogus --output-format json`, `claw sandbox --output-format json bogus`, `claw doctor bogus`, and `claw doctor bogus --output-format json` each timed out after 6s with `stdout=0`/`stderr=0`; the sweep was killed before reaching `status/version` controls. These are supposed to be bounded local health/safety commands. A stray positional arg should be a deterministic `cli_parse` / `unexpected_argument` error, not a silent wait that is indistinguishable from the diagnostic itself hanging. **Required fix shape:** (a) define strict no-extra-positional grammars for `sandbox` and `doctor` before any prompt/runtime fallback; (b) reject unknown positionals/flags in text and JSON modes with bounded errors carrying `command`, `unexpected_args`, and supported flags; (c) support `--help`/`--output-format json` placements consistently, or reject unsupported placement explicitly; (d) add elapsed-time regressions for `sandbox bogus`, `sandbox bogus --output-format json`, `sandbox --output-format json bogus`, `doctor bogus`, and `doctor bogus --output-format json`; (e) audit `status`/`version` for the same positional fallthrough after this fix. **Why this matters:** `doctor` and `sandbox` are the commands operators run when startup, permissions, or isolation look broken. If a typo makes the diagnostic command itself hang with zero output, the user loses the very surface meant to explain the system state. Source: gaebal-gajae dogfood response to Clawhip message `1506922019906916403` on 2026-05-21.
|
||||
|
||||
532. **`status` and `version` unknown positional arguments zero-byte hang, so the two most basic local introspection commands are not parse-safe when a stray token is present** — dogfooded 2026-05-21 from the `#clawcode-building-in-public` 08:00 UTC nudge on `/home/bellman/Workspace/claw-code-pr2967` with branch/origin `docs/roadmap-workdir-provenance@fc591b6` and binary `./rust/target/debug/claw` built from source SHA `25d663d`. Clean-home probes from a minimal temp workspace: `claw status bogus`, `claw status bogus --output-format json`, and `claw status --output-format json bogus` each timed out after 6s with `stdout=0`/`stderr=0`; the sweep then reached `claw version bogus`, which also entered the same zero-output wait before the run was killed. This extends #531's `doctor`/`sandbox` positional hang to the most commonly scripted diagnostics. `status` and `version` should reject unexpected positionals before any runtime/prompt fallback and should never need model/config startup to explain a syntax typo. **Required fix shape:** (a) make `status` and `version` strict no-extra-positional subcommands; (b) reject malformed text and JSON placements with bounded `kind:"cli_parse"` / `kind:"unexpected_argument"`, echoing `unexpected_args` and supported flags; (c) keep valid `status --output-format json` and `version --output-format json` behavior unchanged; (d) add elapsed-time regressions for the four probes above plus `version bogus --output-format json` and `version --output-format json bogus`; (e) consolidate this with #531 into a shared parser rule for all no-positional diagnostic commands. **Why this matters:** `status` and `version` are the first commands wrappers call to decide whether claw is alive and which binary is running. A stray token from command composition should produce a tiny parse error, not a silent timeout that marks the binary as dead. Source: gaebal-gajae dogfood response to Clawhip message `1506929574771163176` on 2026-05-21.
|
||||
|
||||
Reference in New Issue
Block a user