Skip to content

fix(shared): find versioned JetBrains macOS app bundles - #16246

Merged
Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
Sypher760-gif:fix/macos-versioned-jetbrains-bundles
Oct 6, 2026
Merged

Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
Sypher760-gif:fix/macos-versioned-jetbrains-bundles

Conversation

@Sypher760-gif

Copy link
Copy Markdown
Contributor

Problem

On macOS, resolveEditorCommand only tries exact <name>.app paths. A JetBrains Toolbox bundle carries its version in the name, for example IntelliJ IDEA 2026.1.4.app, so the editor is reported as not installed. The Windows branch already lists the install directories and accepts name or name plus a suffix, so macOS differs (#15933).

Change

The darwin branch of resolveEditorCommand in packages/shared/src/editor.ts now lists ~/Applications and /Applications and also accepts <name> <version>.app. A bundle matches only when the text between <name> and .app is made of digits and dots (isVersionedBundle). A plain prefix match would let Visual Studio Code resolve to Visual Studio Code - Insiders.app; the version check prevents that, and a test covers it. Exact <name>.app bundles are tried first and the other launch paths are unchanged. The darwin lookup is shared by every editor that has install names, so the versioned match applies to those too; the digits-and-dots rule is what keeps VS Code and Insiders apart.

Disclosed limits:

  • Names with a non-numeric suffix, such as WebStorm EAP.app, no longer match on macOS.
  • If several versioned bundles exist, the first in directory order is used, with no version sorting.
  • The Windows branch keeps its plain prefix match.
  • The issue's second half, a Toolbox script that is not named idea (idea1), is not addressed.

Scope and approval

Part of #15933, which is triaged. This covers the versioned-bundle half and leaves the Toolbox script half open, so please do not auto-close the issue from this PR. The change is limited to the macOS discovery branch for editors that already resolve there.

Verification

Windows x64, on main @ 9e5229b4 with a frozen-lockfile install. The macOS branch runs with a mocked platform and filesystem. It was not run on a real Mac.

  • New tests in externalLauncher.test.ts cover discovery and launch for WebStorm and IDEA from versioned bundles, and the Insiders case (vscode not resolved, vscode-insiders resolved and launched). On unmodified main source the two versioned-bundle tests fail with expected [] to include 'webstorm' and ... 'idea'. With the fix, 20 passed and 26 skipped (46) in that file.
  • tsc --noEmit on packages/shared and on apps/server: exit 0, 0 errors each. Lint and format check on both files: clean.

AI disclosure

Built by a free model through the OpenCode CLI: Space Bunny (free). Reviewed by Claude Sonnet 5.5 through the Claude Code CLI (read and run only, no edits). The first version matched Visual Studio Code to the Insiders bundle; the reviewer caught it and the same model corrected it in a second round. Rebased onto current main, re-verified and published by Claude Sonnet 5.5 through the Hermes harness inside T3 Code, with Sayf Fadil's approval to open this PR. No maintainer has reviewed it. Not exercised in a live T3 Code app.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 5, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 76bbd12

Macroscope's review found this PR approvable — This is a narrowly scoped macOS editor-discovery fix that recognizes versioned JetBrains bundles while preserving exact bundle behavior and avoiding stable/Insiders name collisions. The production change is small, non-sensitive, and covered by focused regression tests.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 99c5f116-f5b6-467d-811e-6499fbc3237e
📥 Commits

Reviewing files that changed from the base of the PR and between 25d5c7c and 76bbd12.

📒 Files selected for processing (2)
  • apps/server/src/process/externalLauncher.test.ts
  • packages/shared/src/editor.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

macOS editor discovery now finds exact and versioned app bundles. Tests cover versioned WebStorm and IntelliJ IDEA launches, bundle-name matching, and VS Code Insiders selection.

Changes

macOS Editor Discovery

Layer / File(s) Summary
Bundle discovery and launch validation
packages/shared/src/editor.ts, apps/server/src/process/externalLauncher.test.ts
Discovery matches exact .app names and versioned bundles with digit-and-dot versions. Tests verify launch arguments, reject similarly prefixed bundle names, and distinguish VS Code Insiders from stable VS Code.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: ishaanko

Merge Risk: ⚪ Minimal · up to 76bbd

No merge-blocking issue is identified for the macOS editor discovery change; it is ready for normal merge checks.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: finding versioned JetBrains app bundles on macOS.
Description check ✅ Passed The description covers the problem, change, scope and approval context, verification results, and limitations. It follows the required template and gives specific test and tooling results.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
🧰 Additional context used
📚 Code guidelines (1)
docs/internals/effect-services.md — auto-discovered

Comment @coderabbitai help to get the list of available commands.

@Yash-Singh1
Yash-Singh1 merged commit e6abc01 into pingdotgg:main Oct 6, 2026
30 checks passed
sandscooling pushed a commit to sandscooling/t3code that referenced this pull request Oct 6, 2026
Scheduled sync of 11 upstream commits (to 9bd1d80). Orchestrator.ts
conflicted additively: the fork's background-work hold and upstream
pingdotgg#15442's settleInterruptedRun both land after settleBackgroundWork.
Carries upstream's open pingdotgg#16436 (three testLayer calls renamed to
layerTest), since pingdotgg#16246 broke main's externalLauncher test compile;
drop nothing when it lands, the change is identical.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 6, 2026
## What's Changed
* refactor(server,relay): webhook capabilities live in services, not handlers by @juliusmarminge in pingdotgg/t3code#16232
* fix(server): a T3 Connect preferences save finishes even if the client disconnects by @juliusmarminge in pingdotgg/t3code#16266
* refactor(server): import service modules as namespaces, not aliased layers by @juliusmarminge in pingdotgg/t3code#16267
* feat(server): log how long PR watches stay quiet before they end by @t3dotgg in pingdotgg/t3code#16262
* feat(server,web): choose where new worktrees are created by @juliusmarminge in pingdotgg/t3code#16231
* perf(server): idle status polls and PR sweeps start fewer git processes by @t3dotgg in pingdotgg/t3code#16272
* perf(server): PR watches spend ~90% fewer GitHub points by checking a 1-point fingerprint first by @t3dotgg in pingdotgg/t3code#16270
* fix(pull-requests): PR detail reads no longer drain the GitHub quota by @t3dotgg in pingdotgg/t3code#16280
* refactor: layer variables are named layer or layerXyz by @juliusmarminge in pingdotgg/t3code#16282
* refactor(server): T3 Connect link capabilities live in a CloudLink service by @juliusmarminge in pingdotgg/t3code#16265
* fix(web): sidebar drag and drop no longer snaps back by @t3dotgg in pingdotgg/t3code#16291
* fix(web): inline HTML renders no longer trap the thread's scroll by @t3dotgg in pingdotgg/t3code#16283
* refactor(server): one module per service instead of Services/ and Layers/ folders by @juliusmarminge in pingdotgg/t3code#16295
* chore(review): configure CodeRabbit in TypeScript by @esthor in pingdotgg/t3code#16281
* docs: put the Effect and web UI review rules in the docs by @esthor in pingdotgg/t3code#16286
* chore(lint): require a reason on every lint and type-checker suppression by @esthor in pingdotgg/t3code#16294
* refactor(relay): import HookInboxObject once, as a namespace by @juliusmarminge in pingdotgg/t3code#16307
* fix(web): a rejected desktop-local credential is not retried every poll by @juliusmarminge in pingdotgg/t3code#16273
* feat(desktop): the renderer's bootstrap token rotates every 12 hours by @juliusmarminge in pingdotgg/t3code#16275
* fix(web): recover from a closed IndexedDB connection by @juliusmarminge in pingdotgg/t3code#16311
* fix(relay): stop forcing manual relay deploys by default by @juliusmarminge in pingdotgg/t3code#13563
* feat(relay): measure the managed tunnel backlog by @juliusmarminge in pingdotgg/t3code#13564
* feat(relay): clean up tunnels of hosts that never registered recovery by @juliusmarminge in pingdotgg/t3code#13565
* perf(relay): delete expired tunnels four at a time within a time budget by @juliusmarminge in pingdotgg/t3code#13566
* feat(connect): tell users when an idle tunnel was removed by @juliusmarminge in pingdotgg/t3code#13567
* docs(relay): add the legacy tunnel cleanup rollout runbook by @juliusmarminge in pingdotgg/t3code#13568
* chore(review): point CodeRabbit at the web UI conventions by @esthor in pingdotgg/t3code#16324
* chore(review): turn off CodeRabbit's docstring coverage check by @esthor in pingdotgg/t3code#16328
* refactor(server): CloudLink keeps only the link lifecycle; pure checks live beside it by @juliusmarminge in pingdotgg/t3code#16340
* refactor(server): CloudLink fails with its own errors; the connect routes map them to HTTP by @juliusmarminge in pingdotgg/t3code#16341
* refactor(server): replay guards stay in CloudLink by @juliusmarminge in pingdotgg/t3code#16349
* fix(server): forks no longer merge into their upstream repo's project group by @t3dotgg in pingdotgg/t3code#16353
* fix(server): stop the startup project sync from delaying the app window by @Mnigos in pingdotgg/t3code#14912
* fix(web): avoid blocking image preparation conversions by @Bil0000 in pingdotgg/t3code#13342
* fix(server): return partial workspace index on timeout by @Michel-Liao in pingdotgg/t3code#11500
* fix(server): probe project favicon candidates concurrently by @ishaanko in pingdotgg/t3code#12543
* fix(observability): a failing trace disk no longer stalls the server by @t3dotgg in pingdotgg/t3code#13758
* fix(server): status polling no longer locks the git index by @ahalekelly in pingdotgg/t3code#14718
* perf(shared): scan PATH once per command before spawning, not on every spawn by @SkiTee3000 in pingdotgg/t3code#12600
* fix(server): main's startup auto-pull test compiles again by @t3dotgg in pingdotgg/t3code#16357
* fix(server): project favicons stop being rescanned every minute by @t3dotgg in pingdotgg/t3code#16206
* fix(server): Claude limits load again for users with large transcript histories by @t3dotgg in pingdotgg/t3code#16358
* fix(server): caches and ids are written atomically by @juliusmarminge in pingdotgg/t3code#16242
* fix(server): one-shot initializers no longer race by @juliusmarminge in pingdotgg/t3code#16260
* fix(server): the PR cache sweep only removes real entry files by @juliusmarminge in pingdotgg/t3code#16285
* chore: keep one copy each of undici 8 and ws 8 by @juliusmarminge in pingdotgg/t3code#16211
* fix(shared): DrainableWorker keeps running after a failed item by @juliusmarminge in pingdotgg/t3code#16223
* fix(server): metrics count interrupted work on the monotonic clock by @juliusmarminge in pingdotgg/t3code#16207
* refactor(web): import connection storage as a namespace in its test by @juliusmarminge in pingdotgg/t3code#16315
* fix(contracts): trimmed IDs round-trip by @juliusmarminge in pingdotgg/t3code#16300
* fix(server): main's settings, keybindings and session tests compile again by @juliusmarminge in pingdotgg/t3code#16363
* chore(lint): catch known tags with Effect.catchTags by @esthor in pingdotgg/t3code#16361
* fix(observability): T3 Connect tracing stops at the relay boundary by @juliusmarminge in pingdotgg/t3code#16314
* fix(relay): error and deadline responses carry CORS headers by @juliusmarminge in pingdotgg/t3code#16253
* fix(web): bring back the live shimmer on work log rows by @juliusmarminge in pingdotgg/t3code#16372
* refactor: Effect code gets UUIDs and SHA-256 from Effect's Crypto by @esthor in pingdotgg/t3code#16377
* fix(relay): export traces through one tracer, one request span each by @juliusmarminge in pingdotgg/t3code#16382
* fix(server): Pi thread titles use linked PR context by @juliusmarminge in pingdotgg/t3code#16210
* fix(desktop): retry transient bearer bootstrap and degrade on session fetch failure by @jamesvillarrubia in pingdotgg/t3code#12919
* fix(server): avoid scanning completed history for pending secrets by @Yash-Singh1 in pingdotgg/t3code#16409
* fix(orchestration-v2): let Stop recover stalled runs by @Yash-Singh1 in pingdotgg/t3code#15442
* fix(release): resolve version-qualified catalog overrides by @Yash-Singh1 in pingdotgg/t3code#16411
* fix(web): type in front of bold that starts a composer line by @saphid in pingdotgg/t3code#13217
* fix(desktop): prevent browser screenshot filename collisions by @saphid in pingdotgg/t3code#14784
* fix(server): end clone options before the repository URL by @saphid in pingdotgg/t3code#14781
* fix(web): queued messages no longer split the composer notice stack by @tristanmanchester in pingdotgg/t3code#16400
* fix(server): reject invalid explicit Bitbucket repositories by @aravhawk in pingdotgg/t3code#15876
* fix: restore desktop and server typechecks on main by @Yash-Singh1 in pingdotgg/t3code#16415
* fix(shared): find versioned JetBrains macOS app bundles by @Sypher760-gif in pingdotgg/t3code#16246
* fix(server): OpenCode 2 threads get T3 Code's MCP tools by @nkoynov in pingdotgg/t3code#16142
* feat(preview): run the browser on the environment server by @maria-rcks in pingdotgg/t3code#15328
* fix: restore service references breaking ci by @maria-rcks in pingdotgg/t3code#16495
* fix(mcp): mark declared tool failures as errors by @maria-rcks in pingdotgg/t3code#15617
* fix(release): unblock nightly browser tests and cli builds by @maria-rcks in pingdotgg/t3code#16515

## New Contributors
* @esthor made their first contribution in pingdotgg/t3code#16281
* @ahalekelly made their first contribution in pingdotgg/t3code#14718
* @SkiTee3000 made their first contribution in pingdotgg/t3code#12600
* @jamesvillarrubia made their first contribution in pingdotgg/t3code#12919
* @Sypher760-gif made their first contribution in pingdotgg/t3code#16246
* @nkoynov made their first contribution in pingdotgg/t3code#16142

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261005.2702...v0.0.46-nightly.20261006.2735

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261006.2735
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 6, 2026
## What's Changed
* refactor(server,relay): webhook capabilities live in services, not handlers by @juliusmarminge in pingdotgg/t3code#16232
* fix(server): a T3 Connect preferences save finishes even if the client disconnects by @juliusmarminge in pingdotgg/t3code#16266
* refactor(server): import service modules as namespaces, not aliased layers by @juliusmarminge in pingdotgg/t3code#16267
* feat(server): log how long PR watches stay quiet before they end by @t3dotgg in pingdotgg/t3code#16262
* feat(server,web): choose where new worktrees are created by @juliusmarminge in pingdotgg/t3code#16231
* perf(server): idle status polls and PR sweeps start fewer git processes by @t3dotgg in pingdotgg/t3code#16272
* perf(server): PR watches spend ~90% fewer GitHub points by checking a 1-point fingerprint first by @t3dotgg in pingdotgg/t3code#16270
* fix(pull-requests): PR detail reads no longer drain the GitHub quota by @t3dotgg in pingdotgg/t3code#16280
* refactor: layer variables are named layer or layerXyz by @juliusmarminge in pingdotgg/t3code#16282
* refactor(server): T3 Connect link capabilities live in a CloudLink service by @juliusmarminge in pingdotgg/t3code#16265
* fix(web): sidebar drag and drop no longer snaps back by @t3dotgg in pingdotgg/t3code#16291
* fix(web): inline HTML renders no longer trap the thread's scroll by @t3dotgg in pingdotgg/t3code#16283
* refactor(server): one module per service instead of Services/ and Layers/ folders by @juliusmarminge in pingdotgg/t3code#16295
* chore(review): configure CodeRabbit in TypeScript by @esthor in pingdotgg/t3code#16281
* docs: put the Effect and web UI review rules in the docs by @esthor in pingdotgg/t3code#16286
* chore(lint): require a reason on every lint and type-checker suppression by @esthor in pingdotgg/t3code#16294
* refactor(relay): import HookInboxObject once, as a namespace by @juliusmarminge in pingdotgg/t3code#16307
* fix(web): a rejected desktop-local credential is not retried every poll by @juliusmarminge in pingdotgg/t3code#16273
* feat(desktop): the renderer's bootstrap token rotates every 12 hours by @juliusmarminge in pingdotgg/t3code#16275
* fix(web): recover from a closed IndexedDB connection by @juliusmarminge in pingdotgg/t3code#16311
* fix(relay): stop forcing manual relay deploys by default by @juliusmarminge in pingdotgg/t3code#13563
* feat(relay): measure the managed tunnel backlog by @juliusmarminge in pingdotgg/t3code#13564
* feat(relay): clean up tunnels of hosts that never registered recovery by @juliusmarminge in pingdotgg/t3code#13565
* perf(relay): delete expired tunnels four at a time within a time budget by @juliusmarminge in pingdotgg/t3code#13566
* feat(connect): tell users when an idle tunnel was removed by @juliusmarminge in pingdotgg/t3code#13567
* docs(relay): add the legacy tunnel cleanup rollout runbook by @juliusmarminge in pingdotgg/t3code#13568
* chore(review): point CodeRabbit at the web UI conventions by @esthor in pingdotgg/t3code#16324
* chore(review): turn off CodeRabbit's docstring coverage check by @esthor in pingdotgg/t3code#16328
* refactor(server): CloudLink keeps only the link lifecycle; pure checks live beside it by @juliusmarminge in pingdotgg/t3code#16340
* refactor(server): CloudLink fails with its own errors; the connect routes map them to HTTP by @juliusmarminge in pingdotgg/t3code#16341
* refactor(server): replay guards stay in CloudLink by @juliusmarminge in pingdotgg/t3code#16349
* fix(server): forks no longer merge into their upstream repo's project group by @t3dotgg in pingdotgg/t3code#16353
* fix(server): stop the startup project sync from delaying the app window by @Mnigos in pingdotgg/t3code#14912
* fix(web): avoid blocking image preparation conversions by @Bil0000 in pingdotgg/t3code#13342
* fix(server): return partial workspace index on timeout by @Michel-Liao in pingdotgg/t3code#11500
* fix(server): probe project favicon candidates concurrently by @ishaanko in pingdotgg/t3code#12543
* fix(observability): a failing trace disk no longer stalls the server by @t3dotgg in pingdotgg/t3code#13758
* fix(server): status polling no longer locks the git index by @ahalekelly in pingdotgg/t3code#14718
* perf(shared): scan PATH once per command before spawning, not on every spawn by @SkiTee3000 in pingdotgg/t3code#12600
* fix(server): main's startup auto-pull test compiles again by @t3dotgg in pingdotgg/t3code#16357
* fix(server): project favicons stop being rescanned every minute by @t3dotgg in pingdotgg/t3code#16206
* fix(server): Claude limits load again for users with large transcript histories by @t3dotgg in pingdotgg/t3code#16358
* fix(server): caches and ids are written atomically by @juliusmarminge in pingdotgg/t3code#16242
* fix(server): one-shot initializers no longer race by @juliusmarminge in pingdotgg/t3code#16260
* fix(server): the PR cache sweep only removes real entry files by @juliusmarminge in pingdotgg/t3code#16285
* chore: keep one copy each of undici 8 and ws 8 by @juliusmarminge in pingdotgg/t3code#16211
* fix(shared): DrainableWorker keeps running after a failed item by @juliusmarminge in pingdotgg/t3code#16223
* fix(server): metrics count interrupted work on the monotonic clock by @juliusmarminge in pingdotgg/t3code#16207
* refactor(web): import connection storage as a namespace in its test by @juliusmarminge in pingdotgg/t3code#16315
* fix(contracts): trimmed IDs round-trip by @juliusmarminge in pingdotgg/t3code#16300
* fix(server): main's settings, keybindings and session tests compile again by @juliusmarminge in pingdotgg/t3code#16363
* chore(lint): catch known tags with Effect.catchTags by @esthor in pingdotgg/t3code#16361
* fix(observability): T3 Connect tracing stops at the relay boundary by @juliusmarminge in pingdotgg/t3code#16314
* fix(relay): error and deadline responses carry CORS headers by @juliusmarminge in pingdotgg/t3code#16253
* fix(web): bring back the live shimmer on work log rows by @juliusmarminge in pingdotgg/t3code#16372
* refactor: Effect code gets UUIDs and SHA-256 from Effect's Crypto by @esthor in pingdotgg/t3code#16377
* fix(relay): export traces through one tracer, one request span each by @juliusmarminge in pingdotgg/t3code#16382
* fix(server): Pi thread titles use linked PR context by @juliusmarminge in pingdotgg/t3code#16210
* fix(desktop): retry transient bearer bootstrap and degrade on session fetch failure by @jamesvillarrubia in pingdotgg/t3code#12919
* fix(server): avoid scanning completed history for pending secrets by @Yash-Singh1 in pingdotgg/t3code#16409
* fix(orchestration-v2): let Stop recover stalled runs by @Yash-Singh1 in pingdotgg/t3code#15442
* fix(release): resolve version-qualified catalog overrides by @Yash-Singh1 in pingdotgg/t3code#16411
* fix(web): type in front of bold that starts a composer line by @saphid in pingdotgg/t3code#13217
* fix(desktop): prevent browser screenshot filename collisions by @saphid in pingdotgg/t3code#14784
* fix(server): end clone options before the repository URL by @saphid in pingdotgg/t3code#14781
* fix(web): queued messages no longer split the composer notice stack by @tristanmanchester in pingdotgg/t3code#16400
* fix(server): reject invalid explicit Bitbucket repositories by @aravhawk in pingdotgg/t3code#15876
* fix: restore desktop and server typechecks on main by @Yash-Singh1 in pingdotgg/t3code#16415
* fix(shared): find versioned JetBrains macOS app bundles by @Sypher760-gif in pingdotgg/t3code#16246
* fix(server): OpenCode 2 threads get T3 Code's MCP tools by @nkoynov in pingdotgg/t3code#16142
* feat(preview): run the browser on the environment server by @maria-rcks in pingdotgg/t3code#15328
* fix: restore service references breaking ci by @maria-rcks in pingdotgg/t3code#16495
* fix(mcp): mark declared tool failures as errors by @maria-rcks in pingdotgg/t3code#15617
* fix(release): unblock nightly browser tests and cli builds by @maria-rcks in pingdotgg/t3code#16515

## New Contributors
* @esthor made their first contribution in pingdotgg/t3code#16281
* @ahalekelly made their first contribution in pingdotgg/t3code#14718
* @SkiTee3000 made their first contribution in pingdotgg/t3code#12600
* @jamesvillarrubia made their first contribution in pingdotgg/t3code#12919
* @Sypher760-gif made their first contribution in pingdotgg/t3code#16246
* @nkoynov made their first contribution in pingdotgg/t3code#16142

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261005.2702...v0.0.46-nightly.20261006.2735

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261006.2735
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants