Skip to content

Add animated gradients and improve Windows desktop UI - #2154

Merged
richiemcilroy merged 3 commits into
mainfrom
codex/studio-gradients-windows-fixes
Aug 27, 2026
Merged

Add animated gradients and improve Windows desktop UI#2154
richiemcilroy merged 3 commits into
mainfrom
codex/studio-gradients-windows-fixes

Conversation

@richiemcilroy

@richiemcilroy richiemcilroy commented Aug 27, 2026

Copy link
Copy Markdown
Member

Adds Animated Gradient backgrounds to both Studio editors, with 12 presets, editable color stops, motion and appearance controls, randomization, saved gradients, and remembered settings. The shared GPU renderer uses deterministic timeline animation and a bounded intermediate surface.

Improves GPUI on Windows with a native tray, window controls and dragging, app icons, shadow handling, and no console window in packaged builds. Export progress now waits until a destination file has been chosen.

Validation: desktop TypeScript and scoped Biome checks, 42 focused GPUI tests, 6 project tests, 6 persistence tests, and GPUI compilation pass. The new shader passes standalone validation; GPU regression tests and playback/export renderer timings are still running after a local compiler stall. Windows metadata checks passed, but a native Windows build and UI smoke test remain unverified.

The committed apps/desktop/src/utils/tauri.ts was generated by the existing typescript_bindings_tests::export_typescript_bindings test in apps/desktop/src-tauri/src/lib.rs, using the Specta builder with the two new Rust commands and exported library type. Re-running that generator reproduces the published file byte-for-byte; no binding additions were hand-written.

Greptile Summary

This PR adds configurable animated-gradient backgrounds across both desktop editors and shared rendering infrastructure, alongside Windows GPUI shell improvements and a revised export-file selection flow.

  • Adds animated-gradient presets, editing controls, persistence, randomization, and GPU rendering.
  • Adds native Windows tray, caption, icon, shadow, and window-dragging behavior.
  • Keeps the generated desktop TypeScript bindings synchronized with their Rust Specta command and type sources.

Confidence Score: 5/5

The PR appears safe to merge because the previously reported generated-binding issue is resolved and no blocking failure remains.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/desktop/src-tauri/src/lib.rs Registers the two animated-gradient commands and exported library type in the shared Specta builder used for command dispatch and TypeScript generation.
apps/desktop/src/utils/tauri.ts Updates the committed generated bindings with commands and types corresponding to the changed Rust Specta source.
crates/project/src/animated_gradient.rs Defines the shared animated-gradient configuration, catalog, controls, presets, and persistence-facing types.
crates/rendering/src/layers/animated_gradient.rs Implements the shared GPU-backed animated-gradient rendering layer.
apps/desktop-gpui/src/editor_sidebar/animated_gradient.rs Adds GPUI controls and state management for selecting and editing animated gradients.
apps/desktop/src/routes/editor/AnimatedGradientEditor.tsx Adds the desktop editor interface for animated-gradient presets, stops, motion, and appearance.
apps/desktop-gpui/src/editor_export.rs Introduces a file-selection phase so export progress begins only after a destination has been chosen.
apps/desktop-gpui/patches/zed-windows.patch Extends the Windows GPUI backend to support custom frames, corrected bounds, dragging, and DPI-aware non-client insets.

Reviews (2): Last reviewed commit: "fix: keep gradient stop drags in one und..." | Re-trigger Greptile

@superagent-security

Copy link
Copy Markdown

Manage your Superagent protection

Superagent has paused scans for this repository because this unlinked GitHub App installation has used all three included PR scans.

You have 0 of 3 included PR scans remaining.

Create a free account to continue protection, manage scan settings, review security history, and control which repositories are protected.

Comment on lines 6 to +11

export const commands = {
async animatedGradientCatalog() : Promise<AnimatedGradientCatalog> {
return await TAURI_INVOKE("animated_gradient_catalog");
},
async randomAnimatedGradient() : Promise<AnimatedGradientConfig> {

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.

P2 Generated binding edited

This directly edits a generated tauri.ts binding, so regeneration can overwrite the added commands and types or leave the committed output out of sync with its Rust source. Update the Specta source and commit output produced by the supported generation workflow instead.

Context Used: AGENTS.md (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src/utils/tauri.ts
Line: 6-11

Comment:
**Generated binding edited**

This directly edits a generated `tauri.ts` binding, so regeneration can overwrite the added commands and types or leave the committed output out of sync with its Rust source. Update the Specta source and commit output produced by the supported generation workflow instead.

**Context Used:** AGENTS.md ([source](https://github.com/capsoftware/cap/blob/main/AGENTS.md))

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@socket-security

socket-security Bot commented Aug 27, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​tray-icon@​0.21.310010093100100
Addedcargo/​tauri-winres@​0.3.698100100100100

View full report

@richiemcilroy

Copy link
Copy Markdown
Member Author

hey @greptileai, please re-review the PR

@richiemcilroy
richiemcilroy merged commit 55b355e into main Aug 27, 2026
27 checks passed
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