Redesign the shell on the Xylem design system#53
Conversation
…ce and the new About dialog
There was a problem hiding this comment.
Code Review
This pull request introduces a major shell redesign featuring a new activity rail, a unified search panel, self-hosted fonts, and a code font setting. It also graduates Git commit and attribution from preview flags to standard settings, adds support for multi-line commit bodies and author avatars, and updates the local development port to 14717. The reviewer feedback focuses on optimizing string slicing in the Rust backend, ensuring Unicode-aware initials extraction, safeguarding WebCrypto access, and improving accessibility for the activity rail and custom radio buttons.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Pull request overview
This PR migrates the IDE’s shell/UI to the Xylem design system (themes, typography, activity rail, updated dialogs/popovers) while also graduating Git commit/attribution from preview flags into persisted Git settings and moving the dev server off Tauri’s shared default port.
Changes:
- Rebuilds the app chrome: activity rail navigation, unified search panel with scopes, updated tabs/status bar, and refreshed Settings/About/commit popover UI.
- Promotes
gitCommit/gitAttributionfrom preview feature flags into persisted Git settings (with migration from old overrides) and adds persisted theme + code-font preferences. - Updates dev tooling + assets: Vite/Tauri dev port to
14717, scripts updated accordingly, new wordmark-based icon assets, and README/design doc refresh.
Reviewed changes
Copilot reviewed 27 out of 94 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| vite.config.ts | Moves Vite dev server to port 14717 with rationale. |
| src/tauri.ts | Adds theme/code-font prefs + Git setting toggles to persisted snapshot; extends commit info shape with body. |
| src/tauri.test.ts | Updates dev-port expectations; adds coverage for new persisted fields + commit body validation + code font sanitization. |
| src/systemTheme.ts | Adds shared localStorage key constant for pre-paint theme bootstrap. |
| src/fonts/README.md | Documents self-hosted font rationale + licensing. |
| src/featureFlags.ts | Removes graduated Git flags from the preview flag registry. |
| src/featureFlags.test.ts | Updates tests for reduced flag set and behavior. |
| src/editorTheme.ts | Adds code-font stacks and applies them to editor theme extensions. |
| src/editorTheme.test.ts | Adds tests for code-font stack mapping and defaults. |
| src/EditorPane.tsx | Threads codeFont through editor initialization and theme extensions. |
| src/diffTheme.ts | Updates token variable names to match new design tokens. |
| src/DiffPane.tsx | Threads codeFont through diff view theme extensions. |
| src/App.tsx | Major shell redesign (rail/search/settings/about/popovers) + new persisted settings plumbing + gravatar/monogram avatars. |
| src/App.test.tsx | Updates/expands interaction tests for rail navigation, theme pinning, Git settings, code font, and commit popover behavior. |
| src-tauri/tauri.conf.json | Updates Tauri devUrl to port 14717. |
| src-tauri/src/lib.rs | Adds new persisted settings fields, sanitization, and migration from old Git preview-flag overrides. |
| src-tauri/src/git_attribution.rs | Splits commit message into summary/body and returns body to frontend. |
| scripts/validate-tauri-config.mjs | Enforces the new devUrl/port value. |
| scripts/install-macos-finder-quick-action.sh | Updates frontend URL + listener checks to port 14717. |
| scripts/bundle-budget.mjs | Adjusts CSS budget for new chrome/styling. |
| run.sh | Updates dev-port handling and adds stale-process cleanup logic. |
| README.md | Updates banner/icon and adds theme-swapped screenshots. |
| public/icon.svg | Replaces icon with new “ıde” wordmark mark. |
| index.html | Adds pre-paint theme pinning via localStorage preference. |
| docs/development.md | Updates feature-flag lifecycle example to reflect graduated Git flags. |
| design.md | Updates icon design spec and related notes. |
| assets/README.md | Updates asset pack documentation for new icon set. |
| assets/mark/mark.svg | Removes retired mark asset. |
| assets/mark/mark-mono.svg | Removes retired mono mark asset. |
| assets/app-icon/icon.svg | Updates app-icon master SVG. |
| assets/app-icon/icon-square.svg | Updates square icon variant. |
| assets/app-icon/icon-fullbleed.svg | Removes retired fullbleed variant. |
| assets/app-icon/icon-animated.svg | Adds animated caret SVG used for README/web presentation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 35308918e4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 35308918e4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Address reviewer comments: - slice the commit body past the first line instead of collect/join - guard WebCrypto lookup and cap the avatar hash cache - Unicode-aware author initials - announce the pending-change count on the Source control rail item - roving tabindex + arrow keys for the code font radiogroup - stop a leftover name filter from silently narrowing the Files tree
Address reviewer comments: - complete the optional chaining on both matchMedia reads - only mirror the theme preference to localStorage after the persisted snapshot loads - add the missing sanitizeThemePreference unit test - update stale 1420 references in the Rust CORS tests and comment
Summary
names|contentsscope chips, tabs become pills, the statusbar slims down and gains a branch pill, and the settings + About dialogs pick up their 1e / 4b restyles.gitCommitandgitAttributionout of Preview Features into a permanent Git settings category — both default on, both toggleable, saved overrides migrate before the old flag ids are pruned. Adds a persisted theme preference (system/light/dark) and a code font setting (IBM Plex Mono / system mono, editor surfaces only).Test plan
npm test— 401 passingnpx tsc --noEmit,npm run build,npm run budget,npm run theme:check,npm run tauri:checkcargo fmt --check,cargo clippy --all-targets -- -D warnings,cargo test— 232 passing