Skip to content

Release-ready: working demo gif, fix-mode polish, piped-input lands in the model - #6

Merged
FrancoisChastel merged 2 commits into
mainfrom
feat/cli-redesign-recall
Jun 14, 2026
Merged

Release-ready: working demo gif, fix-mode polish, piped-input lands in the model#6
FrancoisChastel merged 2 commits into
mainfrom
feat/cli-redesign-recall

Conversation

@FrancoisChastel

Copy link
Copy Markdown
Owner

Summary

Final pre-release polish. Two layered changes:

1. Release-readiness docs pass (75b46a6)

  • README install is now three concrete steps (tool → model → go) with the previously missing `huggingface-cli download` and the `SHELLLM_AUTOSTART=1` no-babysit path.
  • Formula caveats / test cover the current entry points (`shellllm-recall`, `shell_context` module, the `,,` glyph) and the model-download step.
  • HOMEBREW.md user instructions match.
  • AGENTS.md describes the current five-glyph surface and adds the terminal-context ladder to the load-bearing invariants.
  • Last stale `?:` reference in `, --help` updated to `???`.
  • `pyproject.toml` + `init.py` bumped to 0.2.0.

2. Fix-mode polish, piping that actually works, real demo gif (`c674df8`)

Three real bugs caught while rendering the demo, all fixed:

Bug Fix
`,,` continued the prior `,` thread, refining the last question instead of repairing the last command `--fix` archives + resets the comma session before running
`,,` proposed commands that operated on cwd files (`python3 build.py`) instead of fixing the failed command Dedicated `_fix_system_prompt()` pins the model to REPLACEMENT commands; cwd-listing context block skipped in fix mode (the model was anchoring on filenames there)
`make 2>&1 | ? what broke` came back with "I don't see any input attached" Piped content now rides on the user message (with framing) — local 27B-class models reliably ignore system messages saying "this IS the input"

Plus:

  • Previous-command capture switched from `fc -ln -2 -2` (unreliable inside function bodies) to `$history[$HISTCMD-1]` + a `precmd` hook for exit status. Robust across `HIST_IGNORE_DUPS` / `SHARE_HISTORY`.
  • `demo.tape` rewritten with model warmup, `Wait+Screen` sync, and the new `,,` and piping beats. The rendered `demo.gif` is committed and embedded in the README hero.

Test plan

  • 257 tests pass (`pytest -q`) — new coverage for `,, ` fresh-session, `--fix` prompt contract, piped-block phrasing
  • `ruff check` and `ruff format --check` clean
  • CI green
  • Manual: `,,` on `gti status` proposes `git status` as the first item (shown in demo.gif at ~30s)
  • Manual: `python3 build.py 2>&1 | ? one line: what is broken` produces an actual diagnosis (shown in demo.gif at ~60s)
  • Before merging: brew install --build-from-source ./Formula/shellllm.rb and brew test shellllm

…0.2.0

- README install is now three explicit steps (tool → model → go) with the
  previously missing huggingface-cli download step and the AUTOSTART path.
- Formula caveats/test cover shellllm-recall, shell_context, and the new
  glyphs; HOMEBREW.md user steps match.
- AGENTS.md describes the current five-glyph surface and adds the
  terminal-context ladder to the load-bearing invariants.
- `, --help` no longer points at the removed `?:` verb.
- Version 0.1.0 → 0.2.0 in pyproject and __init__ (release.sh reads both).
The previous demo and live usage exposed three real bugs in the repair
and piping paths, all fixed here:

1. **`,,` continued the prior `,` thread.** Repair is a one-shot
   diagnosis of shell state, not a refinement of the last question.
   `--fix` now archives + resets the comma session before running,
   so the model sees only the failed command, not the prior turn.

2. **`,,` proposed commands that operated on cwd files** (`python3
   build.py`, `cat build.py`) instead of fixing the failed command.
   Two changes: (a) a dedicated `_fix_system_prompt()` that pins the
   model to REPLACEMENT commands and forbids inspection/list/explain
   outputs (no `ls -la`, no `echo $?`); (b) the cwd-listing context
   block is now skipped in fix mode — the model anchored on filenames
   in that listing and ignored the actual failed command.

3. **`make 2>&1 | ? what broke` came back with "I don't see any
   input attached".** Local 27B-class models reliably ignore system
   messages saying "this IS the input". Piped content now rides on
   the user message (with framing instructions), where it gets the
   attention it deserves. Verified end-to-end via the demo.

Also along the way:
- Previous-command capture switched from `fc -ln -2 -2` (unreliable
  inside function bodies) to zsh's `$history[$HISTCMD-1]` plus a
  `precmd` hook for exit status. Robust across HIST_IGNORE_DUPS /
  SHARE_HISTORY.
- demo.tape rewritten with model warmup, Wait+Screen sync (no fragile
  Sleep guesses), and new beats: `,,` repairs a `gti status` typo,
  `make … | ? …` pipes a real traceback in. Rendered demo.gif
  embedded in the README hero.

256 → 257 tests; ruff clean.
@FrancoisChastel
FrancoisChastel merged commit 6e69bd3 into main Jun 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant