diff --git a/persistent-memory.md b/persistent-memory.md index b52df56..2db1016 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -32,9 +32,9 @@ separate dev team rather than an in-tree Worldtree tool. ## Current state / in-flight -_As of 2026-05-24 (post-v0.6.3 Australis restored, $background → black):_ +_As of 2026-05-24 (post-v0.6.4 picker Aurora-blue highlight):_ -**Status: v0.6.3 shipped.** Nine core issues complete (`sse_client` +**Status: v0.6.4 shipped.** Nine core issues complete (`sse_client` #1, `sessions` #2, `cli` #3, `tui` #4, `--end-user-id` #5, TUI startup error visibility #6, presenter contract semantics amendment #12, startup agent picker #8, §5 layout reshape + Tools pane #13) @@ -51,8 +51,9 @@ Static in the footer (static "Tools" v1; dynamic when more tabs land). CLI mode (--send) unaffected by design — INV-018. Last commits on `main`: -- v0.6.3 style(tui): restore Australis palette, only $background → pure black -- `d845b20` style(tui): neutralize Australis dark palette — bg no longer blue-tinted (v0.6.2, reverted) +- v0.6.4 style(tui): picker highlighted item → Aurora blue (brand selection treatment) +- `ac690c1` style(tui): restore Australis palette, only $background → pure black (v0.6.3) +- `d845b20` style(tui): neutralize Australis dark palette (v0.6.2, reverted) - `8463eb2` style(tui): kill remaining blue + thinking-current into pane (v0.6.1) - `cfee89a` refactor(tui): streaming + turn headers + Thinking pane (v0.6.0) - `7106af5` style(tui): UI polish pass — terminal label colors, placeholders (v0.5.1) diff --git a/pyproject.toml b/pyproject.toml index eb97527..8de5235 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "ratatoskr" -version = "0.6.3" +version = "0.6.4" description = "Worldtree Conversation API debug TUI — multi-pane observability dashboard" readme = "README.md" requires-python = ">=3.12" diff --git a/src/ratatoskr/tui.py b/src/ratatoskr/tui.py index 8b99c62..7e80837 100644 --- a/src/ratatoskr/tui.py +++ b/src/ratatoskr/tui.py @@ -425,22 +425,34 @@ class AgentPickerApp(App[str | None]): background: $background; } /* Multi-line agent items. Each ListItem is auto-height so the full - description wraps below the agent_id/name line — no truncation. */ + description wraps below the agent_id/name line — no truncation. + v0.6.4: lock bg to $background so Textual's auto background-tint on + focus doesn't bleed through unwanted color into the non-highlighted + items. */ #agent-list > ListItem { height: auto; padding: 1 1; background: $background; } - /* v0.6.1: override Textual's default ListView:focus highlight, which - defaults to $primary (Aurora blue) and made the picker unreadable. - Both selectors needed — focused state has higher specificity in - Textual's defaults. */ - ListView > ListItem.--highlight, - ListView:focus > ListItem.--highlight { - background: $au-dark-30; + /* v0.6.4: highlighted item gets Aurora blue background (Textual's + default $block-cursor-background = $primary). Override only the + text-color descendants so id-line/desc stay readable on blue. The + background itself comes from Textual's default ListItem.-highlight + rule — we removed our previous overriding selectors. + + Textual's class is `-highlight` (single dash). Use plain descendant + combinator to bypass internal DOM wrappers. */ + #agent-list:focus ListItem.-highlight { + background: $primary; } - /* Children of highlighted items keep their colors — the dark-30 bg - provides enough contrast for bright-blue id + dark-60 desc text. */ + #agent-list:focus ListItem.-highlight .agent-id-line { + color: $au-bright-white; + text-style: bold; + } + #agent-list:focus ListItem.-highlight .agent-desc { + color: $au-bright-80; + } + /* Default (unhighlighted) item text styling. */ .agent-id-line { color: $au-bright-blue; text-style: bold; diff --git a/uv.lock b/uv.lock index 85a4816..a6e9a45 100644 --- a/uv.lock +++ b/uv.lock @@ -968,7 +968,7 @@ wheels = [ [[package]] name = "ratatoskr" -version = "0.6.3" +version = "0.6.4" source = { editable = "." } dependencies = [ { name = "httpx" },