cloverleaf-larry/lib
Bryan Johnson fe2f67a1aa v0.8.13: $HCIROOT login-shell fix + both-mode detection + list_sites/sites + per-delta jq-fork slowness fix
Root-cause fix for the live-session friction where "how many sites are on
qa?" stalled on repeated `export $HCIROOT` nags despite a working `qa` SSH
alias:

1. $HCIROOT login-shell fix: ssh-helper.sh `exec` now wraps remote commands in
   `bash -lc` so the Cloverleaf login profile sources and $HCIROOT/$HCISITE/PATH
   populate as for an interactive operator login. Escape hatch: NOLOGIN prefix
   or LARRY_SSH_NO_LOGIN=1. pull-smat find/sample use the same wrapper.
2. Both-mode detection: startup surfaces a MODE= line (LOCAL / REMOTE / UNKNOWN)
   and leads with what it found instead of asking for paths.
3. First-class list_sites tool + /sites [alias]: enumerates sites in both modes
   (hcisitelist fast-path, NetConfig-walk fallback) via new ssh-helper discover.
4. System-prompt de-nagging: agents/larry.md + env-diff/regression prompts no
   longer tell Larry to ask Bryan to export $HCIROOT for a reachable host.
5. Streaming slowness (dominant residual): new pure-bash _json_str_decode
   un-escapes the common escape-free delta with zero forks, halving per-turn
   jq forks on top of v0.8.12. Round-trip verified.
6. pull-smat path capture hardened (Vera Minor #1): resolved path now emitted
   behind a SMATDB_PATH: sentinel and selected by pattern not position, so a
   login-shell MOTD/banner on stdout can't be mistaken for the path; falls back
   to prior tail -1 when no sentinel present. Selection logic unit-verified.

Vera gate: PASS-WITH-NOTES (v0.8.13). bash -n clean on larry.sh + ssh-helper.sh;
MANIFEST regenerated (48 entries) and --check clean.

Co-Authored-By: Clover (Claude Opus 4.7) <noreply@anthropic.com>
2026-05-28 07:40:53 -07:00
..
csv-to-table.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
cygwin-safe.sh v0.8.3: tab-completion trailing-space no longer breaks command dispatch 2026-05-27 20:11:19 -07:00
each-site.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
each.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
fetch-safe.sh v0.8.11: API-key default rail (OAuth-impersonation off, secure per-client /set-api-key) + manifest-hashing auto-update speedup 2026-05-27 22:40:18 -07:00
headers-sync.sh v0.8.6: work-box → Mac headers.log sync (tsk-2026-05-27-023) 2026-05-27 21:01:54 -07:00
hl7-desanitize.sh v0.3.3: PHI sanitize/desanitize + {{phi:...}} prompt preprocessing 2026-05-26 10:29:20 -07:00
hl7-diff.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
hl7-field.sh v0.3.4: field-name aliases, dot/dash syntax, ops (=, !=, ~, !~), new formats 2026-05-26 10:35:46 -07:00
hl7-sanitize.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
hl7-schema.sh v0.7.0: HL7-aware tab completion + REPL mouse mode 2026-05-27 16:15:11 -07:00
journal.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
len2nl.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00
lessons.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-create-thread.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-diff-interface.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-document.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-engine.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-find.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-inbound.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-insert-protocol.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-make-jump.sh v0.3.0: initial release of Larry-Anywhere 2026-05-26 09:46:20 -07:00
nc-msgs.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-parse.sh v0.4.0: chain walk, OR/NOT filter groups, numeric/range ops, smat history 2026-05-26 10:58:16 -07:00
nc-regression.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-smat-diff.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-status.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-table.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
nc-tclgen.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
nc-xlate.sh v0.4.2: operational layer — engine ctrl, tables CRUD, xlate viz, smat-diff, create-thread, tclgen 2026-05-26 11:11:30 -07:00
oauth.sh v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep 2026-05-27 19:17:48 -07:00
phi-client.sh v0.8.2: Presidio sidecar for free-text NER (tier-5) — closes V1 2026-05-27 20:00:23 -07:00
phi-presidio-sidecar.py v0.8.2: Presidio sidecar for free-text NER (tier-5) — closes V1 2026-05-27 20:00:23 -07:00
phi-sidecar.sh v0.8.2: Presidio sidecar for free-text NER (tier-5) — closes V1 2026-05-27 20:00:23 -07:00
ssh-helper.sh v0.8.13: $HCIROOT login-shell fix + both-mode detection + list_sites/sites + per-delta jq-fork slowness fix 2026-05-28 07:40:53 -07:00
table-to-csv.sh v0.4.1: each / each-site / len2nl / csv-to-table / table-to-csv 2026-05-26 11:05:19 -07:00