Skip to content

config: default transient prompts on in lush mode, off in compat modes#363

Merged
berrym merged 1 commit into
masterfrom
config/display-transient-default-fix
Jun 26, 2026
Merged

config: default transient prompts on in lush mode, off in compat modes#363
berrym merged 1 commit into
masterfrom
config/display-transient-default-fix

Conversation

@berrym

@berrym berrym commented Jun 26, 2026

Copy link
Copy Markdown
Owner

display.transient_prompt had a default mismatch: the struct default was
true (Spec 25) but the CREG schema default was false, and
display_sync_to_runtime makes the registry value authoritative — so fresh
installs got transient prompts OFF regardless of the struct intent.

This resolves it through the per-mode-default mechanism the other curated
lush features (completion.chain_directories, completion.match_mode, the
history finder, autosuggestion ranking) already use:

  • lush mode: transient prompts on — after a command runs its prompt
    collapses to a compact form, so the active prompt stands out and elaborate
    prompts do not accumulate in scrollback
  • posix / bash / zsh modes: off, mirroring those shells (bash has no
    transient prompt; a vanilla zsh requires a plugin such as powerlevel10k)

Verified across all four modes: lush resolves true, posix/bash/zsh resolve
false, and a lush → bash → lush round-trip restores true. Clean under
-Werror; 156/156 tests.

Note: config set on a display key is still re-seeded by a mode switch
because the display section is not yet routed through the registry SESSION
layer (config set writes the struct directly). This is pre-existing and
section-wide (e.g. display.theme_hot_reload behaves the same) and is
resolved by the separate display→CREG migration; the common case (set
within a mode, no switch) works.

display.transient_prompt had a default mismatch: the struct default was
true (Spec 25) but the CREG schema default was false, and
display_sync_to_runtime makes the registry value authoritative -- so fresh
installs got transient prompts OFF regardless of the struct intent.

Resolve it through the per-mode-default mechanism the other curated lush
features use. Lush mode defaults transient prompts on: after a command
runs its prompt collapses to a compact form, so the active prompt stands
out and elaborate prompts do not accumulate in scrollback. posix, bash,
and zsh inherit off, mirroring those shells -- bash has no transient
prompt and a vanilla zsh requires a plugin such as powerlevel10k.

Verified across all four modes: lush resolves true, posix/bash/zsh resolve
false, and a lush -> bash -> lush round-trip restores true.
@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@berrym berrym merged commit b6e4de7 into master Jun 26, 2026
5 checks passed
@berrym berrym deleted the config/display-transient-default-fix branch June 26, 2026 05:15
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