Repository navigation
Conversation
The mobile app opens t3code://threads/<environmentId>/<threadId>, and agent awareness emits that shape, but the desktop app only raised its window. Thread links now ride the existing web-link path: DesktopWebLinks keeps the newest one until the renderer listens (cold start, reload), then the renderer navigates to the thread. On macOS a link that arrives with no window open opens one, the way a Dock click does. - strict parse: scheme, threads host, UUID environment, one encoded thread segment, nothing else - the index route no longer starts a draft over a thread link that already navigated away (from pingdotgg#8246) - docs/user/thread-links.md A smaller take on pingdotgg#8246, which covers the same links with its own delivery handshake. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
The mobile app opens
t3code://threads/<environmentId>/<threadId>, and agent awareness emits that shape, but thedesktop app only raises its window (pingdotgg#9745). Other tools can only link to a thread through the local
server's web address, which opens a browser tab instead of the app.
Change
Thread links ride the existing web-link path instead of a new one:
open-urlhandler recognises thread links.DesktopWebLinkskeeps the newest one until therenderer says it is listening (cold start, reload, crash), then sends it and reveals the window.
(
DesktopWindow.activate), and the link waits for it.DesktopWebLinkCoordinatornavigates to/$environmentId/$threadId.threadshost, a UUID environment id and one URI-encoded thread segment.Anything else is ignored, so the scheme can only open a thread. Sign-in links are untouched.
docs/user/thread-links.md.105 lines of app code plus tests. This is a smaller take on pingdotgg#8246, which covers the same links with its
own subscribe/acknowledge handshake. It reuses the web-link delivery the app already has, and it also opens a window
when none is open, which pingdotgg#8246 doesn't.
Not covered: Windows and Linux (links arrive as process arguments there), and the
t3code://app/...alias.Testing
DesktopWebLinks.test.ts: parsing (valid, encoded, wrong scheme or host, extra segments, query, fragment, badencoding), and holding the newest link until the renderer listens, delivered once.
DesktopClerk.test.ts: a thread link is handled and opens a window; non-thread links are left alone.🤖 Generated with Claude Code
Closes #4