[CODE-1813] Show TUI settings load failures - #14545
Merged
Merged
Conversation
Co-Authored-By: Warp <agent@warp.dev> Co-Authored-By: Oz <oz-agent@warp.dev>
harryalbert
approved these changes
Jul 30, 2026
jwp2987
pushed a commit
to jwp2987/phosphor
that referenced
this pull request
Aug 16, 2026
Ports upstream `73529d1d6` ("[CODE-1813] Show TUI settings load failures",
warpdotdev#14545) at the new pin `42effe840`.
A `settings.toml` that fails to parse, or that parses but carries values
the settings types reject, previously produced no TUI-visible signal at
all. Now both the startup failure and a failed hot-reload land in the
existing transient footer error slot, alongside the zero-state ASCII load
failure that already used it:
- `SETTINGS_PARSE_FAILED_HINT` / `SETTINGS_INVALID_VALUES_HINT`, selected
by `settings_file_error_hint`.
- `TuiTerminalSessionView::new` takes `initial_settings_file_error`, and
`TuiSessions::create_local_terminal_session_with_env` reads it from
`GlobalResourceHandlesProvider` for the *first* session only.
- The view subscribes to `WarpConfigUpdateEvent::SettingsErrors` for the
reload case.
- `GlobalResourceHandlesProvider`, `WarpConfig` and `WarpConfigUpdateEvent`
are exported through `tui_export`.
Adapted: this fork's `settings::init` had never carried the pin's
settings-failure logging block at all, so the commit's comment-only edit
to it becomes an addition of the block itself, with the new wording. That
keeps the full detail (the parse error, or the list of rejected keys) in
the log while the footer shows only the one-line summary, which is the
split the commit is built around.
`add_test_terminal_session` grows a
`_with_settings_file_error` sibling so the startup-failure test can
construct a session that already knows about the failure; the existing
helper delegates with `None`.
NOTE: nothing in this commit was compile-verified.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VNUMjBVuwvEnRSgaawUCR3
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.
Description
Surface TUI settings-file load failures in the existing transient footer error slot.
Originating thread: https://warpdev.slack.com/archives/C0BDQDW8V5E/p1785431633065469
Agent conversation: https://staging.warp.dev/conversation/d663bd68-97e2-4f66-8039-2968eb5862b8
Agent run: https://oz.staging.warp.dev/runs/019fb40d-d546-7444-8b05-0f74a027cb4d
Linked Issue
https://linear.app/warpdotdev/issue/CODE-1813/ui-for-settings-load-failures
triage-donewithspec_skipped: true.Testing
./script/format— passed.Focused
warp_tuiregression tests — 2 passed.env -u WARP_API_KEY cargo nextest run -p warp_tui— 868 passed.CARGO_BUILD_JOBS=2 cargo build -p warp_tui --bin warp-tui-oss— passed../script/presubmit— formatting, inline-test checks, Clippy, clang-format, and wgslfmt passed; the workspace test compilation then stopped because the remote sandbox exhausted its filesystem quota (No space left on device). A retry hit the same environment limit.Live PTY launch reached the terminal session startup path, but did not produce a stable footer capture before the transient hint expired; the regression tests exercise the rendered footer text and error styling directly.
I have manually tested my changes locally with
./script/runScreenshots / Videos
Not attached: this is a headless TUI surface. The added view tests render the transient footer and assert its text and error tone.
Agent Mode
CHANGELOG-BUG-FIX: Fixed Warp's terminal UI not reporting settings file load failures.
Co-Authored-By: Warp agent@warp.dev
Co-Authored-By: Oz oz-agent@warp.dev