mirror of
https://github.com/instructkr/claw-code.git
synced 2026-06-04 13:37:09 +08:00
fix(#785): type dump-manifests missing dir errors
Automation needs dump-manifests argument failures to classify without scraping prose, so the --manifests-dir missing-value paths now share the missing_flag_value contract and usage hint. Constraint: Scope limited to ROADMAP #785 and existing rusty-claude-cli JSON error contracts. Rejected: Broader dump-manifests parser cleanup | outside the requested ROADMAP #785 packaging scope. Confidence: high Scope-risk: narrow Directive: Keep future dump-manifests argument errors typed and hint-bearing for JSON callers. Tested: cargo test -p rusty-claude-cli --test output_format_contract -- dump_manifests_missing_dir_has_typed_kind_and_hint_785 --nocapture; cargo test -p rusty-claude-cli classify_error_kind_returns_correct_discriminants -- --nocapture; cargo fmt --all -- --check Not-tested: full workspace test suite
This commit is contained in:
@@ -7735,3 +7735,6 @@ Original filing (2026-04-18): the session emitted `SessionStart hook (completed)
|
||||
783. **`claw --output-format json init` success envelope was missing `hint` field; idempotent re-init was not structurally detectable** — dogfooded 2026-05-27 on `32c9276f`. The init JSON envelope had no `hint` field (absent, not null), and no field to distinguish a fresh init from a re-init without checking `created.len() == 0`. Orchestrators had to inspect `created` array length to detect idempotent behavior. Fix: (1) added `hint` field to init JSON envelope — fresh path points at `CLAUDE.md + doctor`; idempotent path says "already initialised, run doctor"; (2) added `already_initialized: bool` field — `true` when `created` and `updated` are both empty (all artifacts skipped). Both test cases (fresh + re-init) covered by `init_json_envelope_has_hint_and_already_initialized_783`. 42 CLI contract tests pass. [SCOPE: claw-code] Source: Jobdori init-envelope probe on `32c9276f`, 2026-05-27.
|
||||
|
||||
784. **`claw export` had two opaque arg-error paths returning `error_kind:"unknown"` + `hint:null`** — dogfooded 2026-05-27 on `81fe0ccb` (pinpoint by Gaebal-gajae). `claw export --output` (missing flag value) emitted plain `"missing value for --output"` with no typed prefix; `claw export a.md b.md` (extra positional) emitted plain `"unexpected export argument: second.md"`. Both classified as `unknown+null`. Fix: (1) `--output` missing-value error now uses `missing_flag_value:` prefix + `\n` usage hint; (2) extra positional now uses `unexpected_extra_args:` prefix + `\n` usage hint; (3) classifier `unexpected_extra_args` arm extended to match both `starts_with("unexpected extra arguments")` (prose form, #766) and `starts_with("unexpected_extra_args:")` (typed prefix form, #784). Integration test `export_arg_errors_have_typed_kind_and_hint_784` covers both paths. 43 CLI contract tests pass. [SCOPE: claw-code] Source: Gaebal-gajae pinpoint + Jobdori implementation on `81fe0ccb`, 2026-05-27.
|
||||
|
||||
|
||||
785. **`claw dump-manifests --manifests-dir` missing-value errors were untyped/no-hint** — dogfooded 2026-05-27 on `e628b4bb`. `claw dump-manifests --manifests-dir --output-format json` and `claw dump-manifests --manifests-dir= --output-format json` emitted plain `--manifests-dir requires a path`; both classified as `error_kind:"unknown"` with `hint:null`. Manifest dumping is an automation/bootstrap surface, so callers need a stable `missing_flag_value` instead of regexing prose. Fix: changed both missing path branches to `missing_flag_value:` + newline usage hint. Regression guard: `dump_manifests_missing_dir_has_typed_kind_and_hint_785`. [SCOPE: claw-code] Source: gaebal-gajae manifest-bootstrap dogfood probe on `e628b4bb`, 2026-05-27.
|
||||
Reference in New Issue
Block a user