Repository navigation
feat: copy custom domain share links from the desktop apps - #3524
Merged
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Member
Author
|
@greptileai review |
Member
Author
|
@greptileai review |
richiemcilroy
marked this pull request as ready for review
October 28, 2026 19:05
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When a team has a verified custom domain, the dashboard's Copy link button uses it, and so does the Share button in the Tauri editor. The links the desktop apps copy right after an Instant recording, a Studio upload or a screenshot share do not. Both apps build those links from their server URL, so they always come out as
cap.so/s/<id>.Fix
The server already knows which organization a video belongs to when the desktop creates it, so it now returns the right link with it.
Web
GET /api/desktop/video/createreturns a new optionalshare_urlfor both new and existing videos.getDesktopShareUrl(apps/web/lib/desktop-share-url.ts) returnshttps://<customDomain>/s/<id>only when the video's organization has a verified custom domain, the server is Cap's hosted service (NEXT_PUBLIC_IS_CAP) and it is running in production. These are the same conditions the dashboard's Copy link uses, andproxy.tsonly serves custom domains on the hosted service.organizations.Desktop (Tauri and GPUI)
create_or_get_videonow returns aCreatedVideowith the parsedshare_url.recording.rs, GPUIprepare_instant_upload.httpsURL whose path is exactly/s/<that video id>, with no port, credentials, query or fragment. Anything else falls back.Compatibility
S3UploadMetaand the persisted recording meta are unchanged.Testing
desktop-share-url.test.tscovers verified, unverified, missing domain, missing org, self-hosted, non-production and a failed lookup. Two new route tests check thatshare_urlcomes from the video's organization for both the new-video and existing-video paths; they fail without the route change. 35 tests pass across the two files.cargo check -p cap-desktop --testspasses. The new parsing tests (three per app, including malformed and hostile links) were also run against the exact functions taken from both apps.

Confidence Score: 5/5
The PR appears safe to merge; no outstanding findings remain.Summary
The desktop apps now use verified custom-domain share links returned by the server.
Reviews (3) · Last reviewed commit: "chore(desktop): drop doc comments that r..." · Reviewed by Greptile