|
|
9dd5821436
|
v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep
- Fix bash arithmetic crash on MobaXterm/Cygwin: $(date +%s) was
returning CR-tainted values landing in $(( )) operands
- Mouse mode off by default; opt in via LARRY_MOUSE=1 or /mouse on
- Comprehensive CR-safety sweep across lib/*.sh and larry.sh — every
command-substitution result, file read, and user input that feeds
an arithmetic context, case dispatcher, or path/header is now
CR-stripped at the source
New shared helper lib/cygwin-safe.sh defines three primitives:
coerce_int VAL [DEFAULT] — for arithmetic / integer-test operands
strip_cr VAL — for case patterns, regex tests, paths, headers
read_clean VAR [PROMPT] — read -r wrapper that strips CR pre-assign
Hardened call sites (14 files, 60+ patch points):
- larry.sh: status-line date/tput, 3 y/N approvals, auth menu, API key
- lib/oauth.sh: cmd_login + cmd_refresh date+%s captures
- lib/nc-engine.sh: 5 y/N action prompts + find|wc arithmetic
- lib/nc-msgs.sh: parse_time_ms (4 date sites) + meta-TSV time + MSG_COUNT
- lib/nc-regression.sh: tr|wc count + hl7-diff ?-fallback arithmetic
- lib/nc-smat-diff.sh: A_COUNT/B_COUNT/DIFFS_TOTAL
- lib/nc-insert-protocol.sh: every awk-emitted line number → head/tail math
- lib/journal.sh: _next_seq wc -l arithmetic
- lib/lessons.sh: _next_id/_count + 2 y/N prompts
- lib/hl7-sanitize.sh: cmd_count + clear-table y/N
- lib/ssh-helper.sh: 4 local+remote wc -c integer compares
- lib/nc-find.sh, lib/nc-table.sh, lib/nc-document.sh, larry-rollback.sh
Reproduces the exact error Bryan hit:
bash: ...: arithmetic syntax error: invalid arithmetic operator (error token is "")
lib/cygwin-safe.sh added to MANIFEST so it auto-syncs on next launch.
Co-Authored-By: Clover (Claude Opus 4.7) <noreply@anthropic.com>
|
2026-05-27 19:17:48 -07:00 |
|
|
|
e08f030df5
|
v0.3.0: initial release of Larry-Anywhere
Portable AI agent for Cloverleaf integration work. Pure bash + curl + jq.
Zero dependency on v1 wrapper scripts or v2 cloverleaf-tools.pyz.
27 native Anthropic tools:
NetConfig parsing (read)
nc_list_protocols, nc_list_processes, nc_protocol_block,
nc_protocol_field, nc_protocol_nested, nc_protocol_summary,
nc_destinations, nc_sources, nc_xlate_refs, nc_tclproc_refs
NetConfig modification (journal-backed writes with rollback)
nc_insert_protocol, nc_add_route, larry_rollback_list
Workflows
nc_find_inbound, nc_make_jump (3-thread jump pattern), nc_find
(tbn/tbp/tbh/tbpr/where replacements), nc_document, nc_diff_interface,
nc_regression
Messages
hl7_field, nc_msgs (smat is SQLite!), hl7_diff (with --ignore MSH.7)
File system
read_file, list_dir, grep_files, glob_files, write_file, bash_exec
Validated against a 22-site real Cloverleaf test install. Five worked
examples end-to-end: jump-thread generation, smat MRN search, system
documentation, interface+connected diff, HL7-aware regression diff.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 09:46:20 -07:00 |
|