Skip to content

feat(ui): next-prompt ghost text + fix VS Code Remote-SSH tab-title s… - #177

Merged
chauncygu merged 1 commit into
mainfrom
v3.5.86
Jul 31, 2026
Merged

feat(ui): next-prompt ghost text + fix VS Code Remote-SSH tab-title s…#177
chauncygu merged 1 commit into
mainfrom
v3.5.86

Conversation

@chauncygu

Copy link
Copy Markdown
Contributor

…etup (v3.5.86)

Ghost text: after each foreground turn the auxiliary model drafts the line the user is most likely to type next; it renders dim at the prompt and Tab (or the right arrow) accepts it in full. Drafting runs on a background daemon thread, is silent on any failure, is one-shot per prompt, and is superseded rather than overwritten when a newer turn starts. New config key input_suggest (default true); CHEETAH_SUGGEST=0 disables it for one run.

The prediction is applied synchronously at pre_run and on every text change because prompt_toolkit only consults the auto-suggester on text insert — an empty prompt is never asked, and a fast Tab can beat the async pass.

Tab-title setup: the first-run helper only ever considered a local editor install, so a Remote-SSH / WSL / devcontainer session wrote (and fabricated) ~/.config/Code/User/settings.json on the server — a file the editor never reads — then marked itself done and never retried. It now locates the editor server install and writes the remote Machine settings the window actually reads, requires an existing User directory before touching the local path, prints paste-ready instructions when neither is reachable, and scopes its marker per target so legacy markers self-heal with one retry.

Tests: 48 new cases (tests/test_input_suggest.py incl. end-to-end over a real prompt_toolkit session; tests/test_vscode_setup.py — the module had none). Full suite: 2629 passed, 5 skipped.

…etup (v3.5.86)

Ghost text: after each foreground turn the auxiliary model drafts the line
the user is most likely to type next; it renders dim at the prompt and Tab
(or the right arrow) accepts it in full. Drafting runs on a background
daemon thread, is silent on any failure, is one-shot per prompt, and is
superseded rather than overwritten when a newer turn starts. New config key
input_suggest (default true); CHEETAH_SUGGEST=0 disables it for one run.

The prediction is applied synchronously at pre_run and on every text change
because prompt_toolkit only consults the auto-suggester on text insert — an
empty prompt is never asked, and a fast Tab can beat the async pass.

Tab-title setup: the first-run helper only ever considered a local editor
install, so a Remote-SSH / WSL / devcontainer session wrote (and fabricated)
~/.config/Code/User/settings.json on the server — a file the editor never
reads — then marked itself done and never retried. It now locates the editor
server install and writes the remote Machine settings the window actually
reads, requires an existing User directory before touching the local path,
prints paste-ready instructions when neither is reachable, and scopes its
marker per target so legacy markers self-heal with one retry.

Tests: 48 new cases (tests/test_input_suggest.py incl. end-to-end over a real
prompt_toolkit session; tests/test_vscode_setup.py — the module had none).
Full suite: 2629 passed, 5 skipped.
@chauncygu
chauncygu merged commit efeae95 into main Jul 31, 2026
6 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