feat(web): add maria's sidebar header artwork toggle - #4652
Conversation
Add a client-persisted Beta setting for showing or hiding the Dev and Nightly sidebar header artwork. Keep the option hidden on environments without stage artwork while leaving it available after opt-out so users can turn the artwork back on. Preserve the existing enabled-by-default behavior for current users and keep the sidebar toggle styling in sync when the artwork is disabled.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Approved Adds a user preference toggle for environment identification display (artwork vs pill badge vs hidden). Self-contained UI setting following existing patterns, well-tested, no runtime behavior changes beyond presentation. You can customize Macroscope's approvability policy. Learn more. |
Dismissing prior approval to re-evaluate fb66267
Dismissing prior approval to re-evaluate f2c0896
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f2c0896. Configure here.
## What's Changed * Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717 * Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718 * Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692 * Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704 * feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652 * feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715 * fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721 **Full Changelog**: pingdotgg/t3code@v0.0.30-nightly.20260728.930...v0.0.30-nightly.20260728.931 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.30-nightly.20260728.931
* fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(web): 33 web UI fixes (pingdotgg#4700) * Make mobile Thread List v2 the default (pingdotgg#4717) * Fix mobile showcase workflow without Clerk (pingdotgg#4718) * Fix relay credential lookup for unlinked environments (pingdotgg#4692) Co-authored-by: codex <codex@users.noreply.github.com> * Settle merged PR threads immediately (pingdotgg#4704) * feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652) * feat(web): add appearance settings category (pingdotgg#4715) * fix(desktop): allow updater-controlled relaunch (pingdotgg#4721) * fix(web): prevent diff panel scroll jumping (pingdotgg#4724) * Link inline code file paths in chat markdown (pingdotgg#4726) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730) Co-authored-by: Claude <noreply@anthropic.com> * fix(nix): refresh pnpm dependency hash --------- Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Max Katz <me@maxkatz.me> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: jan <hi@4bs3nt.com>
* Add OTA update checks to mobile settings (pingdotgg#4686) * fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(web): 33 web UI fixes (pingdotgg#4700) * Make mobile Thread List v2 the default (pingdotgg#4717) * Fix mobile showcase workflow without Clerk (pingdotgg#4718) * Fix relay credential lookup for unlinked environments (pingdotgg#4692) Co-authored-by: codex <codex@users.noreply.github.com> * Settle merged PR threads immediately (pingdotgg#4704) * feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652) * feat(web): add appearance settings category (pingdotgg#4715) * fix(desktop): allow updater-controlled relaunch (pingdotgg#4721) * fix(web): prevent diff panel scroll jumping (pingdotgg#4724) * Link inline code file paths in chat markdown (pingdotgg#4726) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730) Co-authored-by: Claude <noreply@anthropic.com> * perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Max Katz <me@maxkatz.me> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: jan <hi@4bs3nt.com>
## What's Changed * Add OTA update checks to mobile settings by @juliusmarminge in pingdotgg/t3code#4686 * fix(mobile): threads load snapped to bottom on iOS by @t3dotgg in pingdotgg/t3code#4689 * feat: default sidebar v2 on for nightly and dev builds by @t3dotgg in pingdotgg/t3code#4491 * fix(web): 33 web UI fixes by @maxktz in pingdotgg/t3code#4700 * Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717 * Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718 * Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692 * Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704 * feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652 * feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715 * fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721 * fix(web): prevent diff panel scroll jumping by @0x4bs3nt in pingdotgg/t3code#4724 * Link inline code file paths in chat markdown by @juliusmarminge in pingdotgg/t3code#4726 * Fix Android showcase capture and rebuild v2 queued rows by @juliusmarminge in pingdotgg/t3code#4730 * perf(server): negotiate permessage-deflate on the websocket by @t3dotgg in pingdotgg/t3code#4705 * docs: overhaul agent guidance by @t3dotgg in pingdotgg/t3code#4782 * Prevent sidebar row labels from truncating by @juliusmarminge in pingdotgg/t3code#4789 * perf(server): gzip large thread snapshots by @t3dotgg in pingdotgg/t3code#4788 * fix(web): stashed prompts now survive switching providers by @t3dotgg in pingdotgg/t3code#4787 * Fix Git ref refresh resource storms by @juliusmarminge in pingdotgg/t3code#4727 * perf(server): trim stale context-window rows and drop dead replay RPC by @t3dotgg in pingdotgg/t3code#4791 * fix(web): defer command palette filesystem navigation by @juliusmarminge in pingdotgg/t3code#2109 * fix(release): skip scripts during Vercel installs by @t3dotgg in pingdotgg/t3code#4796 * refactor(client): share filesystem browse navigation by @juliusmarminge in pingdotgg/t3code#4797 * fix(mobile): defer filesystem navigation by @juliusmarminge in pingdotgg/t3code#4799 * refactor(server): use native HTTP compression streams by @juliusmarminge in pingdotgg/t3code#4798 * Remove Connect waitlist and add GA announcement tooling by @juliusmarminge in pingdotgg/t3code#4691 **Full Changelog**: pingdotgg/t3code@v0.0.29...v0.0.30 ## What's Changed * Add OTA update checks to mobile settings by @juliusmarminge in pingdotgg/t3code#4686 * fix(mobile): threads load snapped to bottom on iOS by @t3dotgg in pingdotgg/t3code#4689 * feat: default sidebar v2 on for nightly and dev builds by @t3dotgg in pingdotgg/t3code#4491 * fix(web): 33 web UI fixes by @maxktz in pingdotgg/t3code#4700 * Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717 * Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718 * Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692 * Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704 * feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652 * feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715 * fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721 * fix(web): prevent diff panel scroll jumping by @0x4bs3nt in pingdotgg/t3code#4724 * Link inline code file paths in chat markdown by @juliusmarminge in pingdotgg/t3code#4726 * Fix Android showcase capture and rebuild v2 queued rows by @juliusmarminge in pingdotgg/t3code#4730 * perf(server): negotiate permessage-deflate on the websocket by @t3dotgg in pingdotgg/t3code#4705 * docs: overhaul agent guidance by @t3dotgg in pingdotgg/t3code#4782 * Prevent sidebar row labels from truncating by @juliusmarminge in pingdotgg/t3code#4789 * perf(server): gzip large thread snapshots by @t3dotgg in pingdotgg/t3code#4788 * fix(web): stashed prompts now survive switching providers by @t3dotgg in pingdotgg/t3code#4787 * Fix Git ref refresh resource storms by @juliusmarminge in pingdotgg/t3code#4727 * perf(server): trim stale context-window rows and drop dead replay RPC by @t3dotgg in pingdotgg/t3code#4791 * fix(web): defer command palette filesystem navigation by @juliusmarminge in pingdotgg/t3code#2109 * fix(release): skip scripts during Vercel installs by @t3dotgg in pingdotgg/t3code#4796 * refactor(client): share filesystem browse navigation by @juliusmarminge in pingdotgg/t3code#4797 * fix(mobile): defer filesystem navigation by @juliusmarminge in pingdotgg/t3code#4799 * refactor(server): use native HTTP compression streams by @juliusmarminge in pingdotgg/t3code#4798 * Remove Connect waitlist and add GA announcement tooling by @juliusmarminge in pingdotgg/t3code#4691 **Full Changelog**: pingdotgg/t3code@v0.0.29...v0.0.30 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.30

What Changed
Adds a setting to hide the Dev / Nightly sidebar header artwork + chat button customization.
Setting is only visible on Dev / Nightly env.
The artwork remains enabled by default.
Why
Lets users opt out of the decorative header artwork.
Also sometimes it's important to see how app will look in prod.
UI Changes
Cap.2026-07-28.at.11.32.18.mp4
Checklist
Note
Low Risk
UI and client-local preferences only; default behavior stays artwork with no auth or server data changes.
Overview
Adds a persisted client setting
environmentIdentificationMode(artwork|pill|none, defaultartwork) so Dev/Nightly users can choose how the build is labeled in the UI.General settings exposes the control only when the environment is Dev or Nightly. Sidebar header shows decorative backdrop art, a Dev/Nightly badge, or nothing, depending on the mode. Composer send and floating sidebar toggle stage styling follow the same rule: channel artwork appears only when mode is
artwork.Until client settings hydrate, the resolved mode is
noneso a saved pill or none choice does not briefly flash the default artwork.Reviewed by Cursor Bugbot for commit 5874328. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add environment identification mode setting to control sidebar header artwork, pill, or none
environmentIdentificationModesetting ("artwork"|"pill"|"none", defaulting to"artwork") toClientSettingsSchemain settings.ts.useEnvironmentIdentificationModehook in useSettings.ts that suppresses pre-hydration rendering to avoid transient flicker.artworkmode, a labeled badge (Dev/Nightly) inpillmode, and nothing innonemode."artwork"mode, matching prior behavior, but the sidebar artwork is now suppressed until client settings are hydrated.Macroscope summarized 5874328.