Skip to content

[T3 Code] Open threads by ID on supported desktops - #33158

Merged
raycastbot merged 4 commits into
raycast:mainfrom
ikazoy:fix/t3-code-thread-deep-links
Nov 11, 2026
Merged

raycastbot merged 4 commits into
raycast:mainfrom
ikazoy:fix/t3-code-thread-deep-links

Conversation

@ikazoy

@ikazoy ikazoy commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Description

Selecting Open in T3 Code can leave the command palette showing no results even when the selected thread exists. The extension types <title> <project> <branch>, but recent T3 Code searches branches without their t3/ or t3code/ prefix. For example, sync sample data sample-project t3/run-sync fails to match the thread; the title alone or the query without t3/ matches. Non-ASCII titles can also be corrupted by the AppleScript keystroke path.

This change opens the exact thread with t3code://threads/<environmentId>/<threadId> on supported desktops. It reads the selected desktop app's bundle version rather than assuming a custom server's version describes the local app. Stable 0.1.0+ and known supported Nightly builds use the link; older/unknown desktop versions, unavailable bundle metadata, or missing environment IDs keep the existing palette path. ID segments are encoded separately. All three commands use the shared focusThread implementation.

Reproduction and version evidence

  1. Run T3 Code 0.1.7 with a valid extension token. Set App Name to the installed app name if needed (T3 Code (Beta) in the test environment).
  2. Use an existing thread with an ASCII title, a project, and a t3/ branch, such as title sync sample data, project sample-project, branch t3/run-sync.
  3. Select it in Search T3 Threads and press Enter.
  4. Before this change, T3 opens the palette with the combined query and reports no matching threads. After this change, it navigates directly to the selected thread.

The synthetic example was also checked against T3's actual search functions: v0.1.2 matches it; v0.1.3 introduced the prefix-stripping search behavior (T3 #24343); v0.1.7 does not match it. A branch without the reserved prefix still matches. These older-version checks are source-level execution, not tests of installed older desktop apps.

Thread deep links were added in T3 #18454, before stable v0.1.0. The known Nightly boundary is 0.0.46-nightly.20261012.3010.

Validation

  • Local regression checks, retained outside the submitted extension: 6 passing groups covering stable/Nightly boundaries, unsupported versions, missing IDs, and URL encoding/path normalization.
  • npm run build: passes.
  • npm run lint: passes, including manifest, assets, metadata, ESLint and formatting checks.
  • Tested the distribution build in Raycast: both Japanese and ASCII thread titles with t3/ branches opened the correct existing thread.
  • Manual environment: T3 Code desktop/server 0.1.7, orchestration protocol 2; Raycast 2.11.1.0; macOS 26.7.2 on arm64.

Older desktop apps and Nightly apps were not installed for manual testing. Their fallback/selection behavior is covered by the compatibility tests. No new dependency is needed.

Screencast

No new commands or UI; existing thread navigation is corrected. Manual distribution-build checks are described above.

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: t3-code Issues related to the t3-code extension platform: macOS labels Nov 5, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Thank you for your first contribution! 🎉

🔔 @Skilux you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="fix/t3-code-thread-deep-links"
FORK_URL="https://github.com/ikazoy/extensions.git"
EXTENSION_NAME="t3-code"
REPO_NAME="extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

@greptile-apps

greptile-apps Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] No blocking issue remains from this follow-up review.

Summary

The PR opens threads by environment and thread ID on supported T3 Code desktops.

  • Supported T3 Code desktops open selected threads by their IDs.
  • The extension listing credits yoshiki_ozaki as a contributor.

No new actionable issues were found.

Reviews (4) · Last reviewed commit: "Update CHANGELOG.md" · Reviewed by Greptile

Comment thread extensions/t3-code/README.md Resolved

@0xdhrv 0xdhrv left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @ikazoy 👋

Thanks for your contribution 🔥 The deep-link path is a nice fix: version-gated t3code://threads/<environmentId>/<threadId> on supported desktops, with the command-palette fallback kept for older installs, and the README now describes that clearly. Thanks also for dropping the npm test paragraph after Greptile's note.

Here's everything I found in this pass:

Blocking

  • Please remove tests/thread-links.test.ts from the extension folder and keep it in your own repo. Store installs only need the extension itself plus README.md, CHANGELOG.md, media/ and metadata/.
  • Please also drop the test script from package.json. There are no extra test devDependencies to remove.

As mentioned in our docs here ↗

Pre-existing on main, not from this PR, no action needed: the README still has a Development section (npm install / npm run dev).

When the blocking items are done, request another review 😊

Feel free to reach me here or on Slack if anything is unclear.

@0xdhrv
0xdhrv marked this pull request as draft November 11, 2026 00:24
@0xdhrv 0xdhrv self-assigned this Nov 11, 2026
@ikazoy
ikazoy marked this pull request as ready for review November 11, 2026 00:44
@ikazoy

ikazoy commented Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review! Removed tests/thread-links.test.ts and the test script in bbed9a8, and kept the regression checks locally. Build and lint pass, and the three compiled command bundles are unchanged.

One small documentation suggestion for future contributors: a short note in the contribution guide about where test files and test scripts should live could be helpful. The test file was absent from the distribution output I checked, so distinguishing the source-submission layout from the packaged files would make the expectation easier to follow.

This is ready for another review. Thanks!

@0xdhrv 0xdhrv left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, approved 🔥

@raycastbot
raycastbot merged commit 930866e into raycast:main Nov 11, 2026
2 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Published to the Raycast Store:
https://raycast.com/skilux/t3-code

@raycastbot

Copy link
Copy Markdown
Collaborator

🎉 🎉 🎉

Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@ikazoy).

Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension fix / improvement Label for PRs with extension's fix improvements extension: t3-code Issues related to the t3-code extension platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants