Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature (deep link handling via t3code:// URLs) with new IPC channels, lifecycle integrations, and navigation workflows. New features of this scope warrant human review. You can customize Macroscope's approvability policy. Learn more. |
|
Human-side comment: This is my clanker's finding while trying to get the codex micro bridge I'm building to open threads via the agent keys. Clanker comment for clankersI pulled The running-instance path looks good:
All CI runs successfully [sic] There is one cold-start blocker. Starting the dev bundle with a valid URL present in argv does not leave the requested thread selected: Observed evidence:
So parsing and macOS delivery work; the initial target is being lost or superseded during renderer/environment startup. The current tests mock lifecycle dispatch, window queuing, preload buffering, and route mapping independently, so they do not cover this end-to-end ordering race. I recommend holding the initial target until the renderer/environment is ready to accept authoritative navigation (or making it the initial renderer route), then adding a cold-start integration test that boots on @danyeah I think the suggested change can be stacked on this, imo it's not a crazy big blocker |
|
Note 🤖 GPT-5.6 Sol responding on behalf of Theo We're closing this PR as we clean up the T3 Code backlog. Thank you for taking the time to put this together. This branch sends only a thread ID through desktop IPC, which is ambiguous when the same ID exists on more than one server. #8246 includes both the environment and thread IDs and handles cold-start readiness. If you believe we closed this in error, please reopen the PR and leave a comment explaining what we missed. |
Problem
External applications can launch T3 Code through its existing URL scheme, but the desktop app cannot select the referenced thread. Integrations such as hardware controllers and notification actions can only focus the app, leaving the user to find the conversation manually.
Closes #4996.
What changed
t3code://threads/<environmentId>/<threadId>destinations, usingt3code-devin development.open-url, initial process arguments, and Windows/Linux second-instance launches./$environmentId/$threadIdroute.There are no server or authentication changes and no visual UI changes.
Verification
Built with OpenAI Codex (GPT-5) in the Codex app.
Note
Medium Risk
Changes desktop startup, single-instance, and window/IPC timing paths; routing uses existing thread routes with no server or auth changes, and coverage is strong in unit tests.
Overview
Adds end-to-end handling for
t3code://threads/<environmentId>/<threadId>(andt3code-devin development) so external apps can focus T3 Code and open a specific thread.Ingress: strict URL parsing, macOS
open-urlcaptured at startup via a small buffer, initial process argv, and Windows/Linuxsecond-instancecommand lines. Valid deep-link args are stripped on relaunch so updater-driven restarts do not re-navigate.Delivery: lifecycle dispatches parsed targets to
DesktopWindow.dispatchDeepLink, which keeps only the latest target until the backend is ready, the main window exists, and the renderer main frame has finished loading, then sendsdesktop:deep-linkIPC and reveals the window. Preload validates payloads and exposesonDeepLinkondesktopBridge.Renderer:
DesktopDeepLinkHostsubscribes and **router.navigate**s to the existing/$environmentId/$threadIdroute. Contracts addDesktopDeepLinkTarget; user docs describe the external URL contract.Reviewed by Cursor Bugbot for commit b196ead. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add thread deep-link support to the desktop app
<scheme>://threads/<environmentId>/<threadId>URLs into typed targets viaparseDesktopDeepLinkin DesktopDeepLink.tsopen-urlevents early at startup via a singleton buffer so no links are lost before the Effect runtime is readyDesktopLifecycledispatches deep links from initial argv, the macOS open-url buffer, andsecond-instanceevents toDesktopWindowDesktopWindowqueues the latest deep-link target and sends it over IPC only after the main window finishes loading, then reveals the windowwindow.desktopBridge.onDeepLinkin the renderer and navigates the router to the target thread route on receiptMacroscope summarized b196ead.