• v0.4.1 2756f5f1dd

    style(tui): apply Australis theme to TUI chrome + widgets (v0.4.1)

    vh released this 2026-05-24 13:49:36 -07:00 | 261 commits to main since this release

    Retheme the Textual TUI under the Australis Dark colorscheme
    (github.com/lkraven/australis) — Aurora blue/cyan/green primary,
    Ice neutrals (#222531 bg, #a9bcc3 fg, #cce7ec highlight), Sea
    darks for chrome separators, Dawn accents reserved for terminal-
    event labels (red/yellow). 16-color cool-tone palette with medium
    contrast.

    Mechanism: Textual Theme API. AUSTRALIS_THEME defined at module
    scope mapped to semantic tokens (primary/secondary/accent/success/
    warning/error/foreground/background/surface/panel) plus a Sea
    variables block (au-dark-30..60, au-bright-70/80/white, plus
    Aurora bright variants). Both RatatoskrApp and AgentPickerApp
    register the theme in __init__ and set self.theme = "australis".

    Per-widget styling via DEFAULT_CSS theme variables (no hex
    sprinkled in CSS):

    • #identity → $au-bright-blue (Aurora bright-blue).
    • #pane-name → $au-bright-cyan (current-pane indicator).
    • #hint → $au-dark-60 (subtle Ctrl-C state line).
    • #prompt border → $panel unfocused / $primary focused
      (focus highlight in Aurora blue).
    • #left-column gets a border-right: solid $panel separator.
    • #thinking-current color → $au-dark-60 (matches demoted style).
    • #transcript + #tools-log background → $background.
    • Agent picker's highlighted ListItem → $primary bg +
      $au-bright-white fg.

    Rich Text styling (where Textual's theme system doesn't apply):

    • _dim() helper for demoted telemetry now uses explicit
      #86929d (Sea dark-60) instead of the terminal-dim filter
      "dim". Renders consistently across emulators and stays
      anchored to the brand palette.
    • User-prompt echo (❯ <content> in transcript) wrapped in
      RichText styled with #42dcd1 (Aurora bright-cyan) — calls
      out the operator's voice in the primary palette.

    CLI mode (--send) is unaffected by design — raw stdout has no
    theme concept. The retheme is TUI-only.

    236/236 tests GREEN; ruff clean. Live smoke against personal
    Worldtree: app.theme == "australis", all widget colors resolve
    to expected Australis hex values (identity → #a4c4ff,
    pane-name → #42dcd1, hint → #86929d).

    One existing test adjusted: test_worker_phase_demoted previously
    asserted style == "dim"; now asserts non-empty style (the demoted
    style is now an explicit Australis hex, not the terminal "dim"
    sentinel). Behavior-equivalent — the demotion intent is preserved.

    Patch bump (v0.4.0 → v0.4.1) per SemVer etiquette: cosmetic
    refinement of just-shipped surface, no public-API change.

    Downloads