Compare commits

..

1 Commits

Author SHA1 Message Date
vh ac690c11d5 style(tui): restore Australis, $background → pure black (v0.6.3)
Reverts v0.6.2's over-correction. The operator clarified: the
complaint was specifically about the APP BACKGROUND going from
black to a shade of blue, not about the cumulative cast across
all Australis dark surfaces. v0.6.2 globally neutralized Ice + Sea
darks → too far.

## v0.6.3 = v0.6.1 palette + $background override only

Restored verbatim from v0.6.1:

  $foreground       #a9bcc3 (Ice white)
  $surface          #373b46 (Sea bright-black, chrome bg)
  $panel            #414751 (Sea dark 30, borders)
  $au-dark-30..60   Australis Sea palette
  $au-bright-70/80  Australis Sea brights
  $au-bright-white  #cce7ec (Ice highlight)
  Aurora accents    bright-blue/cyan/green — verbatim
  Dawn accents      red/yellow — verbatim
  _AU_DEMOTED       #86929d (Sea dark 60)
  _AU_DEMOTED_FAINT #6e7882 (Sea dark 50)

ONE deviation from Australis spec:

  $background  #222531 (Ice black) → #000000 (pure black)

Rationale: Ice black is RGB(34, 37, 49) — blue +44% over red. At
App-wide scale (the dominant fill across the entire screen) the
cumulative cast reads as "the app is blue" even though no single
rect is in the conventional-blue range. Other dark surfaces are
smaller chrome bands where the cool lean reads as character not
background; only $background gets the override.

## What stayed Australis

Every cosmetic element where the operator hasn't pushed back:
identity widget (Aurora bright-blue), pane-name (Aurora bright-cyan),
[done]/[error]/[cancelled] labels (Aurora green / Dawn red/yellow),
focus borders (Aurora blue / accent cyan), demoted telemetry text
(Sea dark-60), placeholder lines (Sea dark-50), Header/Footer chrome
(Sea bright-black bg + Ice white-blue fg), separators (Sea dark-30).

Brand fidelity preserved; only the dominant background surface
neutralized.

## Tests + smoke

241/241 GREEN; ruff clean. Live screenshot export:
- $background = #000000 (230 fill rects — dominant surface)
- $surface = #373b46 (29 fill rects — Australis Sea bright-black)
- Sea panels + dark-50 still present in chrome
- Aurora #6388D8 still primary

Patch bump (v0.6.2 → v0.6.3) — cosmetic refinement; no public-API
change.
2026-05-24 18:20:57 -07:00
4 changed files with 45 additions and 44 deletions
+4 -3
View File
@@ -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.2 neutral-dark palette):_
_As of 2026-05-24 (post-v0.6.3 Australis restored, $background → black):_
**Status: v0.6.2 shipped.** Nine core issues complete (`sse_client`
**Status: v0.6.3 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,7 +51,8 @@ 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.2 style(tui): neutralize Australis dark palette — bg no longer blue-tinted
- 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)
- `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)
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "ratatoskr"
version = "0.6.2"
version = "0.6.3"
description = "Worldtree Conversation API debug TUI — multi-pane observability dashboard"
readme = "README.md"
requires-python = ">=3.12"
+39 -39
View File
@@ -61,31 +61,33 @@ from ratatoskr.sse_client import (
stream_turn,
)
# ---- Australis-derived theme (https://github.com/lkraven/australis) ----------
# ---- Australis theme (https://github.com/lkraven/australis) ------------------
#
# v0.6.2 deliberate deviation from spec: the Australis Dark theme's design
# principle "all colors are cooler than neutral" bakes a blue cast into
# every dark surface (Ice black #222531 = RGB 34/37/49 — blue dominant).
# Operators reported the whole-app chrome reading as blue. Ratatoskr keeps
# the Australis ACCENTS (Aurora blue/cyan/green, Dawn red/yellow) — those
# are the brand signature — but **neutralizes the Ice/Sea dark palette to
# true grays** so the chrome reads as neutral dark, not blue-leaning.
# The Australis Dark color theme, inspired by the Southern Lights. 16 cool-tone
# terminal colors with medium contrast. Preference order: blue > cyan > green
# for primary surfaces; Dawn accents (red/yellow/magenta) used sparingly for
# terminal-event labels (error/cancelled).
#
# **v0.6.3 single deviation from spec**: `$background` is `#000000` (pure
# black), NOT Australis Ice black `#222531`. The Ice black is RGB(34,37,49)
# — blue dominant — and at App-wide scale the cumulative cast reads as
# "the whole app is blue" to operators (even though no single surface is
# "blue" in the strict-color sense). Pure black for the App background
# kills that perception. EVERY OTHER Australis value — Aurora accents,
# Sea darks for chrome (surface/panel), Ice white foreground, Dawn
# accents — stays verbatim per spec.
#
# Mapping to Textual's Theme semantic tokens:
# primary = Aurora blue (#6388D8) — focus rings, active selection (KEEP).
# secondary = Aurora cyan (#00b1a8) — secondary highlights (KEEP).
# accent = Aurora bright cyan (#42dcd1) — bright accents (KEEP).
# success = Aurora green (#16B866) — [done] label (KEEP).
# warning = Dawn yellow (#e1c631) — [cancelled] label (KEEP).
# error = Dawn red (#ff491a) — [error] label (KEEP).
# foreground = neutral light gray (#bdbdbd) — default text (was Ice white).
# background = neutral near-black (#1a1a1a) — App bg (was Ice black).
# surface = neutral dark gray (#2a2a2a) — chrome (was Sea bright-black).
# panel = neutral mid gray (#3a3a3a) — borders (was Sea dark-30).
#
# Dark contrast steps preserve Australis's LAB lightness levels but drop the
# blue/green tint. Variables renamed mentally but kept under $au-* slugs so
# downstream CSS doesn't change.
# primary = Aurora blue (#6388D8) — focus rings, active selection.
# secondary = Aurora cyan (#00b1a8) — secondary highlights.
# accent = Aurora bright cyan (#42dcd1) — bright accents.
# success = Aurora green (#16B866) — [done] label.
# warning = Dawn yellow (#e1c631) — [cancelled] label.
# error = Dawn red (#ff491a) — [error] label.
# foreground = Ice white (#a9bcc3) — default text.
# background = pure black (#000000) — App background (v0.6.3 deviation).
# surface = Sea bright black (#373b46) — raised chrome.
# panel = Sea dark 30 (#414751) — borders, separators.
AUSTRALIS_THEME = Theme(
name="australis",
@@ -95,22 +97,20 @@ AUSTRALIS_THEME = Theme(
success="#16B866",
warning="#e1c631",
error="#ff491a",
foreground="#bdbdbd",
background="#1a1a1a",
surface="#2a2a2a",
panel="#3a3a3a",
foreground="#a9bcc3",
background="#000000",
surface="#373b46",
panel="#414751",
dark=True,
variables={
# Neutral dark contrast palette (LAB-matched to Australis Sea spec
# but with R=G=B, no cool cast). $au-dark-N accessible via TCSS.
"au-dark-30": "#3a3a3a",
"au-dark-40": "#4f4f4f",
"au-dark-50": "#6b6b6b",
"au-dark-60": "#878787",
"au-bright-70": "#9e9e9e",
"au-bright-80": "#bdbdbd",
"au-bright-white": "#e0e0e0",
# Accents — KEEP Australis Aurora brights for brand signature.
# Sea contrast palette — usable via $au-dark-50 etc. in TCSS.
"au-dark-30": "#414751",
"au-dark-40": "#565f69",
"au-dark-50": "#6e7882",
"au-dark-60": "#86929d",
"au-bright-70": "#9daeb6",
"au-bright-80": "#b3cbcf",
"au-bright-white": "#cce7ec",
"au-bright-blue": "#a4c4ff",
"au-bright-cyan": "#42dcd1",
"au-bright-green": "#51e08a",
@@ -124,9 +124,9 @@ AUSTRALIS_THEME = Theme(
_AU_SUCCESS = "#16B866"
_AU_ERROR = "#ff491a"
_AU_WARNING = "#e1c631"
_AU_USER_ECHO = "#42dcd1" # bright cyan — operator's voice
_AU_DEMOTED = "#878787" # neutral dark-60 — demoted telemetry
_AU_DEMOTED_FAINT = "#6b6b6b" # neutral dark-50 — empty-state placeholders
_AU_USER_ECHO = "#42dcd1" # Aurora bright cyan — operator's voice
_AU_DEMOTED = "#86929d" # Sea dark 60 — demoted telemetry
_AU_DEMOTED_FAINT = "#6e7882" # Sea dark 50 — empty-state placeholders
# ---- Issue #12 presenter contract semantics amendment -------------------------
Generated
+1 -1
View File
@@ -968,7 +968,7 @@ wheels = [
[[package]]
name = "ratatoskr"
version = "0.6.2"
version = "0.6.3"
source = { editable = "." }
dependencies = [
{ name = "httpx" },