You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
- **Deferred help** (#28): `:usage` no longer exits on `--help`. Instead
it sets `usage=(":usage::help" title pairs...)` and returns 0, so caller
setup code runs first and help text shows correct `(default: ...)`
values. New `:usage::help` registered as both bash function and Rust
builtin.
- **Intelligent suggestions**: Typo in a command name now shows "Did you
mean 'X'?" using Levenshtein distance (threshold: ≤2 edits AND ≤40% of
string length). Implemented in both bash and Rust.
- **Modifier validation**: `parse_field` now returns `Result<FieldDef,
String>` and rejects invalid modifier combos (boolean+type, duplicate
required, unknown modifier), matching bash `:args::field_attrs`
behavior.
- **Bug fix**: `parse_flag_at` errors in `:usage` were silently
swallowed (`break` instead of `return code`).
## Test plan
- [x] 148/148 pure-bash tests pass (`ARGSH_SOURCE=argsh bats
libraries/args.bats`)
- [x] 167/167 Docker builtin tests pass (includes `ARGSH_BUILTIN_TEST=1`
tests)
- [x] Rust coverage: 100.00% (1228/1228 lines)
- [x] `cargo clippy -- -D warnings` clean
- [x] `argsh lint` clean
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
0 commit comments