feat(demo): ghost pick-list plus full-feature tour#547
Merged
Conversation
Two demo upgrades: - ghost: feature the numbered pick-list (1:/2:/3:) the demo was missing. The list was off (Ghost.list_count = 0 default); set it to 3 and seed four commands sharing a prefix so the inline ghost (newest match) shows AND the list of the others (newest-first) renders below — then pick entry 2 (Ctrl+2). - tour: rebuild as the FULL feature set in one take (per request) — status-bar footer + click-to-open (mouse_links) + history ghost + pick-list + guardrail + security_guard + inline #: AI. mouse_links runs FIRST (fresh capture ring → the click coords are predictable) before the OSC 133 setup the AI beat needs; beats are separated by `clear`. All deterministic (llm fixture, in-proc Tier-1, EDITOR=echo). Each beat frame-verified; OSC 7 stripped. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Revert the incidental re-record churn of the other scenarios' casts + gifs (this PR only changes ghost + tour). - Remove the duplicate underscore-named gifs (atty-mouse_links.gif / atty-security_guard.gif) — the committed gifs + docs embeds use hyphens. - gen-demo-gifs.sh: hyphenate the feature name (`mouse_links` dir → `atty-mouse-links.gif`) so `make demo-gifs` writes the names the docs embed, not underscore duplicates. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the demo tour and ghost showcase recordings so the README/GIFs consistently demonstrate the full set of interactive features (mouse click-to-open, history ghost + numbered pick-list, guardrails, and deterministic inline AI) with stable terminal geometry and updated goldens.
Changes:
- Expand the tour scenario to cover the full feature walkthrough in one take (mouse_links first, then OSC 133 setup, then ghost/guardrails/LLM).
- Enable/adjust demo config knobs to make the tour + ghost pick-list deterministic and visible (mouse enabled, ghost list_count=3, in-proc security_guard, fixture LLM response).
- Regenerate golden casts/env files to match the updated scenarios and terminal sizes.
Reviewed changes
Copilot reviewed 7 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/demo/tour/scenario.e2e | Reworks the tour flow to include click-to-open, ghost pick-list selection, guardrail, security_guard, and inline AI in one recording. |
| tests/demo/tour/golden/env.toml | Updates tour terminal rows to match the new tour geometry. |
| tests/demo/tour/config.zig | Enables mouse + ghost pick-list and updates deterministic LLM/security_guard demo configuration. |
| tests/demo/statusbar/golden/cast.json | Refreshes the recorded cast for the statusbar demo. |
| tests/demo/security_guard/golden/cast.json | Refreshes the recorded cast for the security_guard demo. |
| tests/demo/mouse_links/golden/cast.json | Refreshes the recorded cast for the mouse_links demo. |
| tests/demo/llm/golden/cast.json | Refreshes the recorded cast for the LLM demo reflecting the updated fixture response. |
| tests/demo/guardrail/golden/cast.json | Refreshes the recorded cast for the guardrail demo. |
| tests/demo/ghost/scenario.e2e | Updates the ghost demo to explicitly show the numbered pick-list and select an entry via Ctrl+2. |
| tests/demo/ghost/golden/env.toml | Updates ghost demo terminal size (cols/rows) to fit the richer output. |
| tests/demo/ghost/golden/cast.json | Refreshes the recorded cast to match the new ghost pick-list behavior. |
| tests/demo/ghost/config.zig | Enables ghost pick-list (list_count=3) for the ghost demo build configuration. |
Files not reviewed (1)
- tests/demo/ghost/golden/cast.json: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The regenerated atty-ghost.gif now demonstrates the numbered pick-list (Ctrl+2) rather than a Right-arrow accept; update the captions on the history + atuin module pages to match (subagent review). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses two points of feedback on the demo GIFs.
1. Ghost pick-list (
1:/2:/3:)The ghost demo was missing the numbered pick-list because
Ghost.list_countdefaults to 0 (off). Fixed:list_count = 3+ seed four commands sharing a prefix (echo deploy to staging/preview/canary/production). Now the demo shows the inline dim ghost (newest match =production) and the list of the others below —1: canary · 2: preview · 3: staging— then picks entry 2 withCtrl+2.2. Full-feature tour
Per request, the README hero tour is now all 7 features in one take, footer visible throughout:
src/main.zig:42→$EDITOR +42 …rm -rf …gatecurl … \| shin-proc Tier-1 banner#:AI — natural language →uname -sm→ doneImplementation notes:
clearseparates beats; the OSC 133 setup the AI beat needs comes after the mouse beat.fixture_responses, security_guard in-proc Tier-1 (daemon_socket_path=""),EDITOR=echo.Not in CI —
tests/demoruns only viazig build demo/make demo-gifs.🤖 Generated with Claude Code