feat(channels): add shareable deep links for channels and threads#3157
feat(channels): add shareable deep links for channels and threads#3157k11kirky wants to merge 1 commit into
Conversation
"Copy link" on a channel (sidebar dropdown + context menu) and on a thread (channel task header) copies an https link that resolves to a Cloud interstitial firing the new posthog-code://channel/<channelId>[/tasks/<taskId>] scheme, mirroring the canvas share-link pattern end to end (ChannelLinkService, deepLink router endpoints, useChannelDeepLink). Generated-By: PostHog Code Task-Id: b60d15a7-ac68-4869-bb42-55e66943823a
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
React Doctor found no issues in the changed files. 🎉 Reviewed by React Doctor for commit |
|
Problem
Channels (project-bluebird) had no way to be shared. Canvases already have a "Copy link" that deep-links into the desktop app via a Cloud interstitial, but there was no equivalent for a channel itself, or for a thread inside one.
Changes
…dropdown and right-click context menu share the same action list).<instance>/code/channel/<channelId>[/tasks/<taskId>]) that resolves to a web interstitial firing the newposthog-code://channel/...scheme, mirroring the canvas share-link pattern — so links work whether or not the recipient has the app. Companion interstitial PR: feat(code): add channel share link interstitial for posthog code posthog#68479.canvas: aChannelLinkServiceregisters thechannelscheme handler (queues links that arrive before the renderer is ready), exposed viadeepLink.onOpenChannel/getPendingChannelLink, consumed byuseChannelDeepLinkwhich navigates to the channel home or the thread view.Channel actionwithaction_type: "copy_link"(thread copies carrytask_id) on copy, newDeep link channelevent on open. Affordances only render inside the Channels space, which is gated by theproject-bluebirdflag at the route.docs/DEEP-LINKS.md.How did you test this?
ChannelLinkService(11 tests: path parsing incl. URL-encoded segments and malformed-path rejection, pending-link queue/drain, window focus/restore).links/suite (87 tests) and the UIcanvas/deep-links/task-detailsuites (119 tests) — all pass.pnpm typecheckand Biome clean.Automatic notifications
Created with PostHog Code