YeonGyu-Kim
70d64be033
fix: unknown single-word subcommand emits command_not_found instead of missing_credentials ( #825 )
...
When looks_like_subcommand_typo fires on a single word with no close
fuzzy matches, the fallthrough reached CliAction::Prompt → provider
startup → misleading missing_credentials error.
Fix: always return Err with command_not_found: prefix from the typo
guard (with or without suggestions). Added command_not_found classifier
arm in classify_error_kind. Unified existing unknown_subcommand kind
under command_not_found in #825 .
Three new regression tests in output_format_contract.rs:
- unknown_subcommand_json_emits_command_not_found
- unknown_subcommand_text_emits_command_not_found_on_stderr
- unknown_subcommand_typo_with_suggestions_json_emits_command_not_found
Updated pre-existing unit test assertion (starts_with → contains) and
classifier unit test (unknown_subcommand → command_not_found).
572 tests pass, 1 pre-existing worker_boot failure unrelated.
2026-05-29 14:37:29 +09:00
YeonGyu-Kim
f0e6671538
docs: record #824 - global settings-load deprecation leaks to stderr in JSON mode
2026-05-29 13:34:29 +09:00
YeonGyu-Kim
e50c46c1ed
docs: extend #821 - config/providers also leak deprecation warning in JSON mode
2026-05-29 12:01:09 +09:00
YeonGyu-Kim
3dbb35c3aa
docs: record prompt missing-text JSON stderr routing gap ( #823 )
2026-05-29 11:31:28 +09:00
YeonGyu-Kim
3a76c4f4fd
docs: record unknown subcommand falls through to provider startup ( #822 )
2026-05-29 11:01:13 +09:00
YeonGyu-Kim
69b59079c5
docs: record status/sandbox/system-prompt JSON stderr deprecation leak ( #821 )
2026-05-29 10:31:13 +09:00
YeonGyu-Kim
42aff269d1
docs: record interactive_only error class JSON stderr routing gap ( #820 )
2026-05-29 10:01:01 +09:00
YeonGyu-Kim
efe59c22e4
docs: record export session-not-found JSON stderr routing gap ( #819 )
2026-05-29 09:33:25 +09:00
YeonGyu-Kim
37a9a543d6
docs: record AGENTS.md and .claude/CLAUDE.md instruction cascade gap ( #818 )
2026-05-29 08:09:51 +09:00
Bellman
69b8b367c1
docs: record plugins trailing dash json routing ( #3193 )
2026-05-28 21:35:25 +09:00
Bellman
ed3a616e62
docs: record global json warning leak ( #3191 )
2026-05-28 18:36:30 +09:00
Bellman
c3e7b6af60
docs: record config json warning duplication ( #3189 )
2026-05-28 17:05:57 +09:00
Bellman
3af2d9f986
docs: verify trailing json inventory gap resolved ( #3188 )
2026-05-28 16:36:11 +09:00
Bellman
09ff1caf42
docs: record trailing json inventory timeout ( #3187 )
2026-05-28 16:05:50 +09:00
Bellman
0e6d48d9dc
docs: record argv-safe dogfood probe gap ( #3186 )
2026-05-28 15:34:04 +09:00
Bellman
73d8d6e638
Keep doctor help machine-discoverable locally ( #3184 )
...
Doctor help was already on the local help path in current source, but the exact #702 dogfood surface lacked a focused guard and the JSON help envelope was still too prose-oriented for wrappers. Strengthen the JSON contract while preserving text help.\n\nConstraint: Preserve unrelated dirty rust/Cargo.lock from prior #701 work.\nRejected: Starting runtime/provider/session to inspect doctor semantics | help must be local and credential-free.\nConfidence: high\nScope-risk: narrow\nDirective: Keep doctor help routed through parse_local_help_action and print_help_topic; do not call run_doctor for --help.\nTested: cargo test --manifest-path rust/Cargo.toml -p rusty-claude-cli --test output_format_contract doctor_help -- --nocapture; cargo test --manifest-path rust/Cargo.toml -p rusty-claude-cli --test output_format_contract help -- --nocapture; cargo fmt --manifest-path rust/Cargo.toml --all -- --check; cargo check --manifest-path rust/Cargo.toml -p rusty-claude-cli; timeout 5s cargo run -q --bin claw -- --output-format json doctor --help; timeout 5s cargo run -q --bin claw -- doctor --help.\nNot-tested: full workspace test suite.
2026-05-28 13:31:39 +09:00
Bellman
c4770e6571
docs(roadmap): add #811 json error envelope nontty hangs ( #3171 )
2026-05-28 05:35:57 +09:00
Bellman
b0e94c996b
docs(roadmap): add #810 json stdout warning contamination ( #3169 )
2026-05-28 05:05:17 +09:00
Bellman
85d63b071c
docs(roadmap): add #809 help mcp plugin json hangs ( #3168 )
2026-05-28 04:30:30 +09:00
Bellman
db81598525
docs(roadmap): add #808 control-plane json hangs ( #3166 )
2026-05-28 03:32:15 +09:00
Bellman
86f45a11ef
docs(roadmap): add #807 model json hang ( #3163 )
2026-05-28 01:33:01 +09:00
YeonGyu-Kim
87b7e74770
fix( #806 ): plugins show <not-found> in text mode returned empty success instead of error
2026-05-27 22:34:10 +09:00
YeonGyu-Kim
efd34c151a
fix( #805 ): skills show <not-found> in text mode silently returned empty success instead of error
2026-05-27 21:05:41 +09:00
YeonGyu-Kim
2c3c0f60e7
fix( #804 ): agents/skills show <name> <extra> in text mode returned wrong error instead of unexpected_extra_args
2026-05-27 20:05:39 +09:00
YeonGyu-Kim
bad1b97f8e
fix( #803 ): agents/skills/plugins list --flag in text mode silently returned empty success
2026-05-27 19:38:31 +09:00
YeonGyu-Kim
fcebf64468
fix( #802 ): four resume-mode and broad-cwd error envelopes now include hint field
2026-05-27 19:04:15 +09:00
YeonGyu-Kim
53953a8157
fix( #801 ): diff non-git-dir error envelope now includes error_kind, hint, and message fields
2026-05-27 18:34:58 +09:00
YeonGyu-Kim
1201dc60ef
docs(roadmap): add deferred entries #798-#800 (plugins extra-arg, empty-prompt, classifier coverage)
2026-05-27 18:21:35 +09:00
Bellman
23d7761e50
docs(roadmap): add #786 installed binary provenance gap ( #3126 )
2026-05-27 18:21:02 +09:00
YeonGyu-Kim
9976585f87
fix( #796 ): agents/skills show <name> <extra> returned wrong not-found instead of unexpected_extra_args
2026-05-27 14:07:04 +09:00
YeonGyu-Kim
18b4cee5fd
fix( #795 ): skill_not_found and unsupported_skills_action now return non-null hints via fallback table
2026-05-27 13:34:09 +09:00
YeonGyu-Kim
491f179a03
fix( #794 ): plugins install not-found path returns typed plugin_source_not_found instead of unknown+null
2026-05-27 13:08:14 +09:00
YeonGyu-Kim
57a57ef771
fix( #793 ): plugins list --flag silent success + uninstall not-found hint:null
2026-05-27 12:34:35 +09:00
YeonGyu-Kim
abfa2e4cf7
fix( #792 ): agents/skills list --flag silently returned empty success; now returns unknown_option error
2026-05-27 11:39:44 +09:00
YeonGyu-Kim
93a159dca5
fix( #791 ): config extra-arg errors now return non-null hint via \n-delimited usage string
2026-05-27 11:04:50 +09:00
YeonGyu-Kim
9968a27e92
fix( #790 ): system-prompt unknown-option errors now return typed unknown_option kind + non-null hint
2026-05-27 10:36:12 +09:00
YeonGyu-Kim
e4c3c1aa80
fix( #789 ): agents show and plugins show not-found now exit 1; parity with skills ( #788 ) and mcp ( #68 )
2026-05-27 10:07:51 +09:00
YeonGyu-Kim
abdbf61acf
fix( #788 ): skills show not-found emitted duplicate JSON error envelope; use exit(1) instead of Err propagation
2026-05-27 09:36:11 +09:00
YeonGyu-Kim
113145a42a
fix( #787 ): --resume with directory path returns session_path_is_directory kind + hint; wire fallback_hint_for_error_kind into both resume error emission sites
2026-05-27 09:06:28 +09:00
YeonGyu-Kim
22b423b651
fix( #786 ): dump-manifests --manifests-dir missing-value errors now return typed missing_flag_value kind + non-null hint
2026-05-27 08:39:11 +09:00
YeonGyu-Kim
87f4334728
fix( #785 ): add unknown_subcommand classifier arm for unknown subcommand: prose prefix
2026-05-27 08:36:41 +09:00
YeonGyu-Kim
e628b4bb68
fix( #784 ): export --output missing-value and extra-positional errors now return typed error_kind + non-null hint
2026-05-27 08:07:32 +09:00
YeonGyu-Kim
81fe0ccbb7
fix( #783 ): init JSON envelope now includes hint and already_initialized fields for orchestrator parity
2026-05-27 08:04:15 +09:00
YeonGyu-Kim
32c9276fdb
fix( #782 ): acp unsupported invocation now returns non-null hint with newline-delimited remediation text
2026-05-27 07:37:26 +09:00
YeonGyu-Kim
16c1117af6
fix( #781 ): sub-classify api_auth_error/api_rate_limit_error from api_http_error; add fallback_hint_for_error_kind for hint-less API errors
2026-05-27 07:34:57 +09:00
YeonGyu-Kim
d9844cfe8d
fix( #780 ): classifier arm ordering bug — legacy_session_no_workspace_binding and no_managed_sessions shadowed by generic session_load_failed arm
2026-05-27 05:34:49 +09:00
YeonGyu-Kim
364e7909f4
fix( #779 ): resumed /skills invocation returns interactive_only error_kind + non-null hint
2026-05-27 05:09:07 +09:00
YeonGyu-Kim
fded4f6b11
fix( #778 ): doctor check JSON objects now include hint field with stable remediation text for warn/fail checks
2026-05-27 05:07:02 +09:00
YeonGyu-Kim
e02030364d
fix( #777 ): resumed /plugins mutations return interactive_only error_kind + non-null hint instead of unknown+null
2026-05-27 04:44:06 +09:00
YeonGyu-Kim
2684737d9e
fix( #776 ): resume command errors now return typed error_kind + non-null hint (invalid_history_count, session action errors)
2026-05-27 04:39:43 +09:00