Skip to content

v1.4.1 — One theme (app + terminal) & composer polish - #26

Merged
caribeedu merged 7 commits into
mainfrom
v1.4.1
Aug 8, 2026
Merged

v1.4.1 — One theme (app + terminal) & composer polish#26
caribeedu merged 7 commits into
mainfrom
v1.4.1

Conversation

@caribeedu

@caribeedu caribeedu commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Follow-up to v1.4.0. Not for merge yet — will be tested manually first.

One theme instead of two

The separate "app theme" and "terminal theme" collapse into a single Theme. Selecting it recolors the terminals and the whole interface together. The chrome's --dw-* tokens are derived from the selected theme's palette (src/shared/themeChrome.ts): surfaces and text are mixes toward the palette's own background/foreground, so contrast holds for any theme — built-in or a user's custom .json. settings.appTheme and appThemes.ts are gone.

Theme actually recolors the chrome (the v1.4.1 bug)

Root cause: ~250 chrome colors were hardcoded hex/rgba instead of referencing tokens, so switching the theme changed almost nothing. Now tokenized:

  • Surfaces, borders, text, and buttons (accent buttons get readable --dw-on-accent ink).
  • The canvas grid — the pane background (--dw-bg) and the dot color (--dw-border-strong, passed to React Flow's <Background>).
  • Note nodes — themed --dw-note-bg / --dw-note-border / --dw-note-text (a sensible tint in light and dark).
    The :root token definitions were left literal (no self-references).

Composer polish (2/3/4 from the request)

  • The left-hand recipient indicator and its "@mention a terminal" hint are removed.
  • Each @mention is tinted in the accent color inline as you type, via a highlight overlay behind a transparent textarea (--dw-accent, theme-aware).

Tests

New themeChrome.test.ts (color mixing, token derivation, apply). Composer.test.tsx highlight test; Panel.test.tsx updated for the single Theme section. Full suite green (26 files / 130 tests), typecheck + lint clean.

🤖 Generated with Claude Code

caribeedu and others added 2 commits August 8, 2026 10:55
…line

App theme did nothing because most chrome colors were hardcoded hex/rgba
instead of referencing the --dw-* tokens. Tokenize the structural surfaces,
borders, text, note nodes and floating glass panels (menus, composer, plus
new --dw-glass / --dw-glass-border / --dw-note-bg / --dw-note-border tokens),
so switching the app theme recolors the interface.

Composer: remove the left-hand recipient indicator and its "@mention a
terminal" hint. Instead each @mention is tinted in the accent color inline,
drawn by a highlight overlay behind a transparent textarea — theme-aware.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collapse the separate app-theme and terminal-theme into a single Theme.
The chrome's --dw-* tokens are now derived from the selected theme's
palette (themeChrome.ts: surfaces/text are mixes toward the palette's own
bg/fg so contrast holds), applied alongside the terminal colors — so any
built-in or custom theme themes the app too.

Also finish tokenizing the chrome: ~250 hardcoded hex/rgba across surfaces,
borders, text, buttons, the canvas grid (Background dots + pane) and note
nodes now read the tokens, with new --dw-note-text/-success-bg/-danger-bg/
-on-accent. Removes appThemes.ts and settings.appTheme.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@caribeedu caribeedu changed the title v1.4.1 — Theme tokenization & composer polish v1.4.1 — One theme (app + terminal) & composer polish Aug 8, 2026
caribeedu and others added 5 commits August 8, 2026 11:13
The top palette's drop shadow was too heavy (0 10px 34px / 0.4) — reduce it.
Inline <code> in settings/note hints used a fixed rgba(0,0,0,0.3) background
with no color, so it was illegible on light themes (e.g. Solarized Light);
use themed surface + text tokens instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Dogwalker brand mark now tints from theme tokens (brand/leash/on-accent)
via inline SVG styles, so it recolors with the theme. Tokenize the last
hardcoded colors: the minimap node/stroke/mask colors, git-graph branch
lanes (new --dw-lane-* from the palette's ANSI hues), and ~27 accent/red/
green glows (now color-mix over the theme tokens). Dark modal scrims, the
dev HUD, and the categorical intent behind lanes are kept as deliberate
exceptions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The rendering-tier badge is a developer diagnostic; gate it behind
import.meta.env.DEV so it's tree-shaken out of packaged/release builds,
matching the DevBar and HUD (already dev-only).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@caribeedu
caribeedu merged commit 204d4eb into main Aug 8, 2026
2 checks passed
@caribeedu
caribeedu deleted the v1.4.1 branch August 8, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant