mirror of
https://github.com/ultraworkers/claw-code.git
synced 2026-04-24 05:00:25 +08:00
## Problem #77 Phase 1 added machine-readable error `kind` discriminants to JSON error payloads. Text-mode (stderr) errors still emit prose-only output with no structured classification. Observability tools (log aggregators, CI error parsers) parsing stderr can't distinguish error classes without regex-scraping the prose. ## Fix Added `[error-kind: <class>]` prefix line to all text-mode error output. The prefix appears before the error prose, making it immediately parseable by line-based log tools without any substring matching. **Examples:** ## Impact - Stderr observers (log aggregators, CI systems) can now parse error class from the first line without regex or substring scraping - Same classifier function used for JSON (#77 P1) and text modes - Text-mode output remains human-readable (error prose unchanged) - Prefix format follows syslog/structured-logging conventions ## Tests All 179 rusty-claude-cli tests pass. Verified on 3 different error classes. Closes ROADMAP #156.
This commit is contained in:
parent
14c5ef1808
commit
f1e4ad7574
@ -223,14 +223,21 @@ fn main() {
|
||||
"hint": hint,
|
||||
})
|
||||
);
|
||||
} else if message.contains("`claw --help`") {
|
||||
eprintln!("error: {message}");
|
||||
} else {
|
||||
eprintln!(
|
||||
"error: {message}
|
||||
// #156: Add machine-readable error kind to text output so stderr observers
|
||||
// don't need to regex-scrape the prose.
|
||||
let kind = classify_error_kind(&message);
|
||||
if message.contains("`claw --help`") {
|
||||
eprintln!("[error-kind: {kind}]
|
||||
error: {message}");
|
||||
} else {
|
||||
eprintln!(
|
||||
"[error-kind: {kind}]
|
||||
error: {message}
|
||||
|
||||
Run `claw --help` for usage."
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user