feat(cli): Improve help text, error handling, and add fuzzy command suggestions
CLI help improvements (cli/mod.rs): - Add descriptive help text to all global flags (-c, --robot, -J, etc.) - Add descriptions to all subcommands (Issues, Mrs, Sync, etc.) - Add --no-quiet flag for explicit quiet override - Shell completions now shows installation instructions for each shell - Optional subcommand: running bare 'lore' shows help in terminal mode, robot-docs in robot mode Structured clap error handling (main.rs): - Early robot mode detection before parsing (env + args) - JSON error output for parse failures in robot mode - Semantic error codes: UNKNOWN_COMMAND, UNKNOWN_FLAG, MISSING_REQUIRED, INVALID_VALUE, ARGUMENT_CONFLICT, etc. - Fuzzy command suggestion using Jaro-Winkler similarity (>0.7 threshold) - Help/version requests handled normally (exit 0, not error) Robot-docs enhancements (main.rs): - Document deprecated command aliases (list issues -> issues, etc.) - Document clap error codes for programmatic error handling - Include completions command in manifest - Update flag documentation to show short forms (-n, -s, -p, etc.) Dependencies: - Add strsim 0.11 for Jaro-Winkler fuzzy matching Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,10 +17,13 @@ pub use count::{
|
||||
print_count, print_count_json, print_event_count, print_event_count_json, run_count,
|
||||
run_count_events,
|
||||
};
|
||||
pub use doctor::{print_doctor_results, run_doctor};
|
||||
pub use doctor::{DoctorChecks, print_doctor_results, run_doctor};
|
||||
pub use embed::{print_embed, print_embed_json, run_embed};
|
||||
pub use generate_docs::{print_generate_docs, print_generate_docs_json, run_generate_docs};
|
||||
pub use ingest::{IngestDisplay, print_ingest_summary, print_ingest_summary_json, run_ingest};
|
||||
pub use ingest::{
|
||||
DryRunPreview, IngestDisplay, print_dry_run_preview, print_dry_run_preview_json,
|
||||
print_ingest_summary, print_ingest_summary_json, run_ingest, run_ingest_dry_run,
|
||||
};
|
||||
pub use init::{InitInputs, InitOptions, InitResult, run_init};
|
||||
pub use list::{
|
||||
ListFilters, MrListFilters, open_issue_in_browser, open_mr_in_browser, print_list_issues,
|
||||
|
||||
Reference in New Issue
Block a user