Skip to content

feat(desktop): choose external project icons - #7823

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
Bil0000:t3code/feat/image-file-picker-project
Aug 21, 2026
Merged

feat(desktop): choose external project icons#7823
maria-rcks merged 2 commits into
pingdotgg:mainfrom
Bil0000:t3code/feat/image-file-picker-project

Conversation

@Bil0000

@Bil0000 Bil0000 commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

What changed

Project icon picker now has Open in Finder, Open in Explorer, or Open in Files. This opens the native image picker, so the image can live outside the project.

  • Keeps existing project-file search unchanged.
  • Limits native picker to local desktop projects. Remote, mixed-environment, and WSL-only project groups keep project search only.
  • Serves selected external image through a signed URL tied to that exact file.

Why

Previously, users had to copy an image into the project before they could use it as the project icon. This adds the native picker without widening general workspace file access.

Before and after

Before

Project icon picker before external file selection

After

Project icon picker with Open in Finder action

Verification

  • Code and test CI checks pass.
  • Macroscope correctness, Effect conventions, and UI consistency checks pass.
  • Focused web, desktop, and server tests pass.
  • Contracts, desktop, web, and server type checks pass.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before and after screenshots
  • No animation was added, so a video is not applicable

Note

Add native external project favicon picker to desktop app

  • Adds a new IPC endpoint pickProjectFavicon (window.ts) that opens a single-file native image picker and returns the selected path
  • Extends AssetAccess (AssetAccess.ts) to issue and resolve asset URLs for favicons stored outside the workspace, using a new project-favicon-external claim kind with exact-path matching
  • Updates ProjectFaviconResolver (ProjectFaviconResolver.ts) to accept absolute filesystem paths as favicon candidates via a filesystem scope
  • Adds a native picker footer action to ProjectFaviconPickerDialog (ProjectFaviconPickerDialog.tsx), gated by platform and path consistency via canPickExternalProjectFavicon
  • Behavioral Change: ElectronDialogPickFilesInput now requires an explicit multiple flag; existing pickFiles callers (e.g. pickThemeFiles) must pass it explicitly

Macroscope summarized 3b4b4bc.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: aad3e638-be53-4216-98e7-e95731df5920

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

@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.

Reviewed the web UI changes (ProjectFaviconPickerDialog.tsx, ProjectSettingsPanel.tsx). Two consistency findings: the palette footer "Open in " action is now duplicated verbatim (button treatment and label logic) instead of being shared with the command palette. Details inline.

Posted via Macroscope — UI Consistency

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

macroscopeapp Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new feature allowing users to pick project icons from external filesystem locations, introducing new IPC channels, asset claim types, and UI components. New features with cross-cutting behavior changes warrant human review.

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

@maria-rcks
maria-rcks merged commit 44e4a70 into pingdotgg:main Aug 21, 2026
23 of 24 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 22, 2026
## What's Changed
* feat(web): cmd+enter to create thread in background by @extoci in pingdotgg/t3code#7821
* fix(web): launcher shortcuts no longer hijack the empty composer by @Lucenx9 in pingdotgg/t3code#7794
* feat(desktop): choose external project icons by @Bil0000 in pingdotgg/t3code#7823
* perf(web): dedupe terminal mouse motion reports by @t3-code[bot] in pingdotgg/t3code#7845


**Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260821.1154...v0.0.34-nightly.20260822.1155

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260822.1155
@t3dotgg t3dotgg mentioned this pull request Aug 23, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 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.

2 participants