Skip to content

feat(web): customize chat timeline backgrounds - #10412

Open
maria-rcks wants to merge 24 commits into
pingdotgg:mainfrom
maria-rcks:t3code/customize-timeline-background
Open

feat(web): customize chat timeline backgrounds#10412
maria-rcks wants to merge 24 commits into
pingdotgg:mainfrom
maria-rcks:t3code/customize-timeline-background

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

adds wallpaper image URLs, local files, clipboard paste, opacity, blur, preview, and removal in appearance through a compact Wallpaper row below Motion with a customize menu. the menu reuses the chat's message, working timer, and tool-call renderers, and unmounts on close to stop animations and cancel unfinished imports. agent text and tool labels receive theme-colored shadows over wallpaper. blur preserves the image size and crop, avoiding horizontal drift and zoom. wallpaper stays in the chat column; user and agent messages scroll beneath the short progressive header blur, with new messages anchored below its 24px tail.

verified with web typecheck, scoped lint, passing CI, and browser checks of slider persistence, image paste, removal/reapply, close cancellation, and desktop/narrow light/dark layouts. previous timeline verification covered first-message positioning and scrolling with 149 existing tests; native OS file dialogs remain unverified, and generalized pre-decode dimension limits remain a shared image-pipeline follow-up.

before: expanded background settings

compact row before description

after: compact background settings with description

customize menu with existing preview and image controls

time-sampled browser capture of opening the customize menu

before: agent text clips at the header edge

after: agent text progressively blurs beneath the header

time-sampled browser capture of agent text scrolling beneath the header

appearance before background settings

user message before glass treatment

user message with glass and its original tint

Ocean light message preserves its tint at 40 percent glass opacity

before: blur shifts and enlarges the wallpaper

after: blur preserves the wallpaper crop

time-sampled browser capture switching between zero and maximum blur

before: chat preview without text shadows or glass toggle

before: background menu with glass toggle

after: background menu with text shadows and no glass toggle

new-thread composer glass now samples the wallpaper while idle: its mobile view-transition name is scoped to the transition lifetime. verified at desktop and narrow widths, including runtime transition-name activation and cleanup, web typecheck, scoped lint, and all 5 existing draft transition tests.

before: sharp wallpaper through the new-thread composer

after: glass blurs wallpaper through the new-thread composer

after: wallpaper setting below motion with its description

model: gpt-6; harness: codex.

Note

Add timeline wallpaper settings to chat view with opacity and blur controls

  • Adds wallpaper image (max 1.5M chars), opacity (0–100), and blur (0–30) fields to ClientSettings with validation schemas in settings.ts; decoding defaults are empty image, opacity 20, blur 0
  • Adds a wallpaper editor in Appearance settings that accepts HTTP(S) URLs or local image files, compresses local files, probes loads with a timeout, and persists results to client settings; includes thumbnail preview, opacity/blur sliders, and image removal
  • Renders the wallpaper behind the timeline in ChatView.tsx via ChatTimelineBackground.tsx and a layered top-bar blur via ChatTopbarBlur.tsx; MessagesTimeline now reserves measured header height for anchor metrics, overflow checks, and minimap scrolling
  • Converts user message bubbles to glass surfaces using the message surface color with text-shadow removal; the surface-glass CSS utility now accepts an optional base color variable, falling back to the normal background variable
  • Risk: UserMessageBubble replaces the previous message-colored background wrapper with a glass surface — the removed background-class assertion in MessagesTimeline.test.tsx is the only in-tree test update. The top fade mask is disabled while a wallpaper is active, changing scroll appearance for timelines with a wallpaper set.

Macroscope summarized 3ca4946.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 6, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR introduces a sizable wallpaper workflow with local/remote image persistence and changes chat timeline rendering, layering, message surfaces, and scroll anchoring. It also establishes new wallpaper product defaults, so the scope and default-setting impact merit human review.

You can add or adjust custom eligibility rules. Learn more.

@cursor

cursor Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Sep 7, 2026
Comment thread apps/web/src/components/chat/ChatTimelineBackground.tsx
Comment thread apps/web/src/components/settings/TimelineBackgroundSettings.tsx
Comment thread apps/web/src/components/settings/SettingsPanels.tsx
Comment thread apps/web/src/components/chat/ChatTopbarBlur.tsx
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All clear

Posted via Macroscope — Effect Service Conventions

@macroscopeapp

macroscopeapp Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

All clear

Posted via Macroscope — Effect Service Conventions

@macroscopeapp

This comment has been minimized.

1 similar comment
@macroscopeapp

This comment has been minimized.

Comment thread apps/web/src/index.css Outdated
@macroscopeapp

macroscopeapp Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

All clear

Posted via Macroscope — Effect Service Conventions

Comment thread apps/web/src/components/settings/TimelineBackgroundSettings.tsx
@macroscopeapp

This comment has been minimized.

@cursor

cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@macroscopeapp

This comment has been minimized.

1 similar comment
@macroscopeapp

macroscopeapp Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

All clear

Posted via Macroscope — Effect Service Conventions

@cursor

cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). 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