mirror of
https://github.com/instructkr/claude-code.git
synced 2026-05-21 21:26:45 +00:00
docs(roadmap): add skills manifest fallthrough hang
This commit is contained in:
@@ -6613,3 +6613,5 @@ Original filing (2026-04-18): the session emitted `SessionStart hook (completed)
|
||||
528. **`config` unknown sections and extra arguments fall into zero-byte hangs, including JSON-mode invocations, instead of returning bounded config-section parse errors** — dogfooded 2026-05-21 from the `#clawcode-building-in-public` 06:00 UTC nudge on `/home/bellman/Workspace/claw-code-pr2967` with branch/origin `docs/roadmap-workdir-provenance@63f4865` and binary `./rust/target/debug/claw` built from source SHA `25d663d`. Clean-home probes from a minimal temp workspace: `claw config bogus`, `claw config bogus --output-format json`, `claw config --output-format json bogus`, `claw config env extra`, `claw config env --definitely-unknown`, `claw config env --output-format json --definitely-unknown`, and `claw config env --output-format json extra` all timed out after 6s with `stdout=0`/`stderr=0`. This extends #526/#527: unsupported runtime flags on `config env` hang, known sections `model/hooks/plugins` produce bounded-but-wrong `kind:"unknown"`, and now arbitrary unknown config sections or plain extra args also hang. The config parser is not enforcing the advertised section grammar (`env|hooks|model|plugins`) before prompt/runtime fallback. **Required fix shape:** (a) parse `config` with an explicit section enum and reject unknown sections (`bogus`) before runtime startup; (b) reject any extra positional/flag arguments after a valid section unless explicitly supported; (c) in JSON mode, return a typed envelope such as `kind:"unknown_config_section"` or `kind:"unsupported_config_argument"` with `section`, `unexpected_args`, and `supported_sections`; (d) keep text mode bounded with the same information and exit nonzero; (e) add elapsed-time regressions for unknown section before/after `--output-format json`, valid section plus extra positional, valid section plus unknown flag, and bare `config` success. **Why this matters:** config inspection is a primary startup/debug surface. A typo like `config enb` or an extra copied flag should produce an immediate parse diagnostic, not an opaque no-output timeout that makes users think config loading or provider startup is dead. Source: gaebal-gajae dogfood response to Clawhip message `1506899371755569274` on 2026-05-21.
|
||||
|
||||
529. **Unknown `agents`/`mcp` subcommands and malformed JSON placements zero-byte hang instead of returning bounded unsupported-action errors, so lifecycle inventory surfaces share the config parser fallthrough class** — dogfooded 2026-05-21 from the `#clawcode-building-in-public` 06:30 UTC nudge on `/home/bellman/Workspace/claw-code-pr2967` with branch/origin `docs/roadmap-workdir-provenance@66e3c8c` and binary `./rust/target/debug/claw` built from source SHA `25d663d`. Clean-home probes from a minimal temp workspace: `claw agents bogus`, `claw agents bogus --output-format json`, `claw agents --output-format json bogus`, `claw mcp bogus`, and `claw mcp bogus --output-format json` each timed out after 6s with `stdout=0`/`stderr=0`; the broader sweep was killed after `skills bogus` also entered the same no-output wait. These commands are advertised lifecycle/introspection surfaces (`agents`, `mcp`, `skills`) and should have small, closed subcommand grammars (`list|show|help`, etc.). Instead, unknown subcommands and misplaced JSON selectors fall through into the same silent runtime path recently found for `config` (#526-#528). **Required fix shape:** (a) define explicit subcommand enums for `agents`, `mcp`, and `skills` before prompt/runtime fallback; (b) reject unknown actions with typed bounded errors (`kind:"unsupported_action"` / `kind:"unknown_subcommand"`) including `command`, `action`, and supported actions; (c) support or deterministically reject `--output-format json` in both prefix and suffix positions without hanging; (d) add elapsed-time regressions for `agents bogus`, `agents bogus --output-format json`, `agents --output-format json bogus`, `mcp bogus`, `mcp bogus --output-format json`, and equivalent `skills` forms; (e) audit every top-level introspection command for the same fallthrough. **Why this matters:** MCP/plugin/agent lifecycle debugging depends on these inventory commands being safe escape hatches. If a typo in an introspection command looks like a dead runtime, operators cannot tell whether the lifecycle subsystem is broken or the CLI parser silently routed to prompt startup. Source: gaebal-gajae dogfood response to Clawhip message `1506906920089550859` on 2026-05-21.
|
||||
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user