- remote-conversation-loading.md — implement list/load for RemoteBackend - settings-error-display.md — wire validation errors to footer - dead-code-cleanup.md — remove allow(dead_code), Letta aliases, unused imports - numeric-cast-safety.md — add saturating cast helpers
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# Task: Wire Settings Validation Errors to Footer Display
|
|
|
|
**Priority:** Low
|
|
**Effort:** 1-2 hours
|
|
**Files:** `src/ui/screens/settings/mod.rs`
|
|
|
|
## Context
|
|
|
|
Settings validation errors are currently swallowed:
|
|
|
|
```rust
|
|
// TODO: show error in footer
|
|
```
|
|
|
|
When a user enters invalid config (bad URL, empty required field, etc.), the error is lost.
|
|
|
|
## Requirements
|
|
|
|
1. **Error state** — Add an `error_message: Option<String>` field to `SettingsScreen`
|
|
2. **Timeout** — Auto-clear the error after ~5 seconds or on next valid input
|
|
3. **Display** — Show the error in the footer area with a distinct color (red/orange)
|
|
4. **Integration** — Hook into the existing validation paths that currently log or ignore errors
|
|
|
|
## Design Notes
|
|
|
|
- The footer already renders keybind hints — the error should appear above or replace them temporarily
|
|
- Use `palette.compaction` (red-ish) for error text
|
|
- Consider a `Cell<Instant>` for tracking when to auto-clear
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] Invalid settings input shows a visible error in the footer
|
|
- [ ] Error clears automatically after timeout or on next action
|
|
- [ ] Error text is readable and styled distinctly from normal UI
|
|
- [ ] No regressions in existing settings navigation
|