Skip to content

fix(web): use theme colors for thread status - #908

Merged
rynfar merged 1 commit into
pylonfrom
upstream/2026-09-27-web-theme
Sep 27, 2026
Merged

rynfar merged 1 commit into
pylonfrom
upstream/2026-09-27-web-theme

Conversation

@rynfar

@rynfar rynfar commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Thread status colors in the sidebar and notification toasts were hardcoded, so they did not follow custom theme palettes. This changes the draft, snoozed, approval, failure, wake, completion, and notification markers to the existing semantic theme tokens.

This is a bounded part of frozen upstream source 315fcca10a in #865. The source's wider appearance-token changes remain pending; this PR does not mark that source fully reconciled. Plan-ready violet and sidebar input indigo remain distinct, as they do in the upstream source.

Validation: 207 focused tests, web typecheck and build, scoped lint and formatting, and independent adversarial review. The reviewer checked token definitions and light/dark fallbacks. Before/after screenshots attached to the PR show synthetic Woke and Snoozed rows responding to a custom semantic palette in the isolated browser.

Implemented by GPT-6 Sol (low) via the Pylon Codex harness; independently reviewed by GPT-6 Sol (low).

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 27, 2026
@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 14.0 KiB +23 B (+0.2%) 15.1 KiB ✅
Codex Thread snapshot wire 7.3 KiB 7.3 KiB −3 B (−0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.7 KiB 6.8 KiB +26 B (+0.4%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB +44 B (+0.1%) 66.4 KiB ✅
Codex Live turn messages 9 10 +1 (+11.1%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB −19 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.3 KiB 7.3 KiB −6 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.7 KiB 6.7 KiB −13 B (−0.2%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 6099223 · PR result: e3565f6 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.7 KiB
  • Claude decoded thread snapshot: 116.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar

rynfar commented Sep 27, 2026

Copy link
Copy Markdown
Collaborator Author

Before/after UI evidence from two isolated Pylon worktrees with the same synthetic sidebar fixture. Both use the Grove theme. For this visual check I overrode only --warning-foreground to rose and --info-foreground to mint in the browser; the values are intentionally distinct from the default amber/blue so hardcoded colors are easy to spot. No live thread data was used.

Before (origin/pylon): Woke remains amber and Snoozed remains blue.
Thread statuses before theme token adaptation

After (this PR): Woke follows warning rose and Snoozed follows info mint.
Thread statuses after theme token adaptation

This verifies the visible token wiring for those two statuses; the remaining changed markers have focused tests, static review, and the web build.

Partial adaptation of T3 315fcca10a826d8aa1cbdffc3ef5b5eb5a1e2f9d (#13371). The remaining raw-color sites and f26ee083fe41720207fb10616359500dcecc19d3 appearance-scale migration require a coordinated product-wide theme pass.
@rynfar
rynfar force-pushed the upstream/2026-09-27-web-theme branch from 086eca8 to e3565f6 Compare September 27, 2026 21:21
@rynfar
rynfar merged commit ad9eda5 into pylon Sep 27, 2026
18 checks passed
@rynfar
rynfar deleted the upstream/2026-09-27-web-theme branch September 27, 2026 21:31
rynfar added a commit that referenced this pull request Sep 30, 2026
Ports the remaining chat, settings, pull request and Usage hunks of upstream
315fcca10a826d8aa1cbdffc3ef5b5eb5a1e2f9d (#13371). The thread-status subset
landed earlier in #908. Raw palette classes become semantic theme tokens so
status tones follow custom themes; the macOS permission and Computer Use marks
move into Icons.tsx. The upstream shadcn/no-raw-colors lint rule is not ported
because Pylon does not carry the @shadcn/lint plugin.
rynfar added a commit that referenced this pull request Sep 30, 2026
Ports the remaining chat, settings, pull request and Usage hunks of upstream
315fcca10a826d8aa1cbdffc3ef5b5eb5a1e2f9d (#13371). The thread-status subset
landed earlier in #908. Raw palette classes become semantic theme tokens so
status tones follow custom themes; the macOS permission and Computer Use marks
move into Icons.tsx. The upstream shadcn/no-raw-colors lint rule is not ported
because Pylon does not carry the @shadcn/lint plugin.
rynfar added a commit that referenced this pull request Sep 30, 2026
* fix(web): web colors come from theme tokens

Ports the remaining chat, settings, pull request and Usage hunks of upstream
315fcca10a826d8aa1cbdffc3ef5b5eb5a1e2f9d (#13371). The thread-status subset
landed earlier in #908. Raw palette classes become semantic theme tokens so
status tones follow custom themes; the macOS permission and Computer Use marks
move into Icons.tsx. The upstream shadcn/no-raw-colors lint rule is not ported
because Pylon does not carry the @shadcn/lint plugin.

* fix(web): appearance classes use theme tokens and scale values

Ports upstream f26ee083fe41720207fb10616359500dcecc19d3 (#13397). Adds the
text-2xs/text-3xs sizes, the drawer easing, the composer shadow and seam tokens
and the workspace gutter variables, registers the new sizes with tailwind-merge,
and replaces arbitrary appearance values with those tokens and Tailwind's
scales. Upstream hunks were applied to Pylon's own versions of each file; the
same exact-equivalent substitutions were applied to Pylon-only components.
Three keyframes give way to starting-style transitions. The upstream
shadcn/no-arbitrary-values lint rule is not ported because Pylon does not carry
the @shadcn/lint plugin.

* fix(web): restore compact provider instance badges

Ports upstream ed809f7ad274ebccdfbf029ccfd7ff2582fd486a (#13700). Adds the
text-4xs (8px) and text-5xs (7px) sizes and registers them with tailwind-merge,
so provider instance badges keep the size they had before the scale migration
snapped them to 10px. The pull request author-initial avatar, 8px in Pylon,
also uses text-4xs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant