Repository navigation
fix(shared): keep Windows path separators beside ampersands - #36977
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This preserves Windows path separators beside ampersands while still decoding Markdown character references. The change is confined to destination parsing, with existing rendering and file-access safeguards unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
EvidenceAll captures: real Windows Server 2025, Chromium web client, dark theme, 1440×1000 viewport. Each commit ran its own server and fresh T3 home. Placed the green PNG at Base loses the separator before
Recordings trim initial pairing/startup and crop the same top 120 pixels to exclude the environment label during navigation; stills retain the full viewport. Seed script · Browser driver · Fixture preparation · All 25 stills and recordings · Complete evidence and fixtures Not shown:
|
**v0.1.10-nightly.20261115.4723** · 221 changes from 92 contributors - **Resume Cursor turns.** Resume a stopped Cursor turn from its latest checkpoint without sending a new message. - **Cursor compaction.** Manually compact Cursor conversations from the slash menu or context meter. - **Large pull request diffs.** Load a pull request file’s diff on demand when it is too large to show automatically. - **Faster pull request actions.** Pull request actions, title edits, and labels now update immediately across all supported hosts. - **Faster delegated tasks.** Delegated tasks start and finish faster in long threads. - **Prompt recovery.** Prompts awaiting provider acceptance are preserved if the server restarts. - **Scratch thread protection.** Agents can no longer delete the built-in No project workspace and its threads. ### Plus 205 more bug fixes and performance improvements. <details> <summary>Full changelog</summary> ## What's Changed * perf(server): text-only browser snapshots skip the PNG encode (66 ms → 20 ms median) by @Yuruzuu in pingdotgg/t3code#30305 * fix(web): diff Copy path uses Windows separators in a Windows workspace by @spoukyii in pingdotgg/t3code#30394 * fix(opencode): usage totals include what OpenCode 2 spends on compaction by @MarcoDotIO in pingdotgg/t3code#30565 * fix(web): opening a project or deleting the open thread skips delegated tasks by @spoukyii in pingdotgg/t3code#30428 * chore(web): upgrade @pierre/diffs to 1.7.0-beta.4 and drop patched find by @juliusmarminge in pingdotgg/t3code#36974 * fix(server): keep Vietnamese words readable in scratch folder names by @epistex-dev in pingdotgg/t3code#30311 * fix(client-runtime): a line of inline triple-backtick code no longer breaks media in PR descriptions by @MarcoDotIO in pingdotgg/t3code#30571 * fix(web): preserve thread identity across composer pastes by @ElliotDrel in pingdotgg/t3code#30583 * fix(opencode): pages a Code Mode script publishes now show inline by @DavidPerezA12 in pingdotgg/t3code#30492 * fix(cursor): preserve recognized transport failure diagnostics by @trevoedwards in pingdotgg/t3code#30631 * fix(client-runtime): a disconnected machine's scratch folder no longer lists as a second "No project" by @tiliakoos in pingdotgg/t3code#30597 * fix(mobile): iOS tab bar no longer covers a thread opened from the Usage tab by @juliusmarminge in pingdotgg/t3code#36975 * fix(cursor): stream Task subagent work into child threads live by @humbertogontijo in pingdotgg/t3code#30539 * fix(web): app loads in browsers without URL.canParse or URL.parse by @juliusmarminge in pingdotgg/t3code#36973 * fix(server): preserve the crash recovery budget across restarts by @maria-rcks in pingdotgg/t3code#25603 * fix(server): Claude goals no longer re-prompt while a delegated task will wake the thread by @georgenijo in pingdotgg/t3code#30646 * fix(codex): preserve terminal connection failure categories by @trevoedwards in pingdotgg/t3code#30639 * fix(client-runtime): derive MCP download names before URI suffixes by @Jo2234 in pingdotgg/t3code#30712 * fix(desktop): providers are found after a failed shell probe without relaunching by @nabettu in pingdotgg/t3code#30667 * feat(themes): theme CSS can hold 50,000 characters by @pouyarezvani in pingdotgg/t3code#36656 * fix(web): diff file Open and Reveal reach a file whose name has a backslash by @only21mil in pingdotgg/t3code#23167 * fix(release): enforce packaged Linux glibc requirements by @voltcrash in pingdotgg/t3code#30827 * fix(client-runtime): tool output no longer rounds integers beyond 2^53 by @geezoria in pingdotgg/t3code#30806 * fix(gitlab): remove reactions beyond the first award page by @Jo2234 in pingdotgg/t3code#30700 * fix(server): let Expo decide EAS Simulator access by @hirbod in pingdotgg/t3code#29490 * perf(azure-devops): opening a pull request no longer reads it twice by @amv146 in pingdotgg/t3code#29918 * fix(shared): the SQLite reader pool comes back after a failed start by @navidnadali in pingdotgg/t3code#30818 * fix(web): keep history-placed guest messages out of the footer by @Jo2234 in pingdotgg/t3code#30718 * fix(shared): keep Windows path separators beside ampersands by @tanav29 in pingdotgg/t3code#36977 * fix(cli): keep log warnings out of JSON output by @voltcrash in pingdotgg/t3code#30898 * fix(web,mobile): a late MCP app teardown no longer closes the app that replaced it by @seth-dixon in pingdotgg/t3code#30387 * fix(server): Grok usage counts turns from resumed sessions by @saphid in pingdotgg/t3code#30694 * test(desktop): wait for the published PATH after a fallback-shell retry by @juliusmarminge in pingdotgg/t3code#36991 * fix(server): checkpoint restore reverts edits inside submodules by @muhammad-auon-marham in pingdotgg/t3code#30829 * perf(server): delegated tasks start and finish without reading the whole parent thread by @t3dotgg in pingdotgg/t3code#34551 * fix(pi): resume attached sessions without reloading extensions by @juliusmarminge in pingdotgg/t3code#21512 * fix(provider-acp): a cancel no longer overtakes the prompt it cancels by @navidnadali in pingdotgg/t3code#30846 * fix(server): wake GitLab MR watches when a rebase is required by @tcrapts in pingdotgg/t3code#30312 * fix(server): drain queued native child continuations by @juliusmarminge in pingdotgg/t3code#21461 * fix(web): a send that finishes after you leave its thread no longer blanks the open thread's composer by @Isaac-b-ux in pingdotgg/t3code#30947 * fix(mobile): Android menus opened over the keyboard close when it hides by @Onkarj012 in pingdotgg/t3code#30853 * fix(client-runtime): omit machine labels from relay spans by @Mr-Neutr0n in pingdotgg/t3code#30940 * fix(server): MCP list tools clamp an oversized limit instead of failing by @MarcoDotIO in pingdotgg/t3code#30976 * perf(web): collapse all no longer remounts the diff viewer by @juliusmarminge in pingdotgg/t3code#36995 * fix(server): skip Codex page context in imported titles by @flexi767 in pingdotgg/t3code#31090 * fix(web): renaming a sidebar thread no longer shifts the row or covers it with the hover card by @shlokkhemani in pingdotgg/t3code#31009 * perf(server): resolve model aliases in one memoized traversal by @hieu-lee in pingdotgg/t3code#31197 * perf(relay): reconcile multiline env values without rescanning prefixes by @hieu-lee in pingdotgg/t3code#31196 * fix(server): terminals start a $SHELL whose path contains a space by @MarcoDotIO in pingdotgg/t3code#30969 * fix(desktop): a waiting update is no longer re-announced on every poll by @onlydole in pingdotgg/t3code#31154 * fix(acp): replace and remove identified plans across turns by @tanav29 in pingdotgg/t3code#36978 * fix(server): streamed replies keep updating after a line that starts with inline triple-backtick code by @MarcoDotIO in pingdotgg/t3code#30966 * fix(provider-cursor): advertise manual compaction by @defyrlt in pingdotgg/t3code#31203 * fix(web): preserve published theme IDs during alias lookup by @Jo2234 in pingdotgg/t3code#31318 * fix(mobile): iOS image viewer pages and dismisses after slow opens by @juliusmarminge in pingdotgg/t3code#36862 * test(server): stop Git auto-maintenance racing the shared repo template copy by @juliusmarminge in pingdotgg/t3code#37012 * fix(server): Open in and Reveal open ~/ file links from projects outside the home folder by @MarcoDotIO in pingdotgg/t3code#31246 * perf(server): Windows terminals report exit 0.9 s sooner (PowerShell 1,034 → 138 ms) by @Pyseph in pingdotgg/t3code#30880 * fix(web): up-arrow recall keeps thread and machine mentions by @carlosricojr in pingdotgg/t3code#31314 * fix(web): choosing a provider in the model picker no longer raises the phone keyboard by @vytorrennan in pingdotgg/t3code#36999 * fix(cursor): resume stopped turns with Cursor's native resume action by @Yash-Singh1 in pingdotgg/t3code#36918 * fix(web): an unreachable environment no longer hides pull requests from repositories it shares by @johns1x in pingdotgg/t3code#34088 * fix(web): honor right panel state in custom shortcuts by @cesarbahena in pingdotgg/t3code#34081 * fix(shared): decode URI paths in ghq clone folders by @Lucenx9 in pingdotgg/t3code#37004 * fix(web): overlapping image pastes keep their prompt order by @StiensWout in pingdotgg/t3code#37010 * fix(web): show failed desktop downloads in retry tooltips by @Jo2234 in pingdotgg/t3code#31324 * perf(right panel): normalize pr tab target once by @rgodha24 in pingdotgg/t3code#37002 * fix(marketing): prevent harness-grid content overflow on mobile devices. by @SimonDdungu in pingdotgg/t3code#31459 * fix(mobile): diagonal thread-row swipes open on Android instead of scrolling the list by @juliusmarminge in pingdotgg/t3code#37011 * fix(web): focus side-chat composer when selecting its tab by @joeyvandijk in pingdotgg/t3code#31360 * fix(claude): show monitor commands in background work details by @Yash-Singh1 in pingdotgg/t3code#37019 * fix(web): thread chips in the composer can no longer be dragged out as links by @NawfalAhmed in pingdotgg/t3code#31541 * fix(web): show drag preview inside sidebar search results by @Yash-Singh1 in pingdotgg/t3code#37022 * perf(desktop): the remote editor list appears in 62 ms instead of 2.5 s (17 editors, 58 PATH entries, Windows) by @Pyseph in pingdotgg/t3code#31033 * fix(codex): crashed handlers and transport workers no longer hang silently by @iXab3r in pingdotgg/t3code#31192 * fix(mobile): an answered question no longer shows its raw item JSON by @Jacksondr5 in pingdotgg/t3code#31330 * perf(server): message ordinals are read through an index, not a scan by @navidnadali in pingdotgg/t3code#30873 * perf(web): batch middle truncate fits by @rgodha24 in pingdotgg/t3code#37001 * fix(web): prevent stray highlights when selecting shell commands by @Yash-Singh1 in pingdotgg/t3code#37024 * fix(desktop): Check for Updates says when an update is available by @juliusmarminge in pingdotgg/t3code#31957 * fix(web): right panel shortcuts work while a side chat has focus by @juliusmarminge in pingdotgg/t3code#32117 * feat(github): issues and PRs from denounced authors close when opened by @maria-rcks in pingdotgg/t3code#37017 * fix(server): threads show the new branch's pull request after a branch switch by @juliusmarminge in pingdotgg/t3code#32042 * fix(server): preserve run start time when steering restarts a turn by @flamboh in pingdotgg/t3code#31640 * fix(cli): t3 project add brings back an archived project instead of refusing it by @MarcoDotIO in pingdotgg/t3code#31661 * fix(web): track switch no longer blocked when Local environment is off by @juliusmarminge in pingdotgg/t3code#32048 * fix(web): reopened composer drafts keep quote spacing and show the caret by @juliusmarminge in pingdotgg/t3code#31880 * fix(server): SSH device host probe failures say what ssh refused by @ahalekelly in pingdotgg/t3code#31695 * fix(provider-acp): Grok runs complete when a background dev server keeps running by @juliusmarminge in pingdotgg/t3code#32109 * fix(server): parallel worktree launches no longer leave all but one branch on its t3/ name by @MarcoDotIO in pingdotgg/t3code#31662 * fix(client): avoid worktree setup flash after editing first message by @aminevg in pingdotgg/t3code#31738 * fix(codex): an app-server that exits before initialize reports its exit, not EPIPE by @juliusmarminge in pingdotgg/t3code#37029 * fix(server): count only newly imported agent threads by @juliusmarminge in pingdotgg/t3code#37025 * fix(usage): a Claude hub account with an unmeasured window keeps its other limits by @MarcoDotIO in pingdotgg/t3code#31748 * fix(server): thread_not_found points agents at linked environments by @juliusmarminge in pingdotgg/t3code#31946 * perf(web): Expand all folders in the diff file tree no longer rescans every folder for each expansion by @Pyseph in pingdotgg/t3code#31465 * fix(server): a send to an idle thread with a queue now waits behind it by @juliusmarminge in pingdotgg/t3code#33857 * fix(shared): recognize SSH remotes with a single path component by @darshmahadevia in pingdotgg/t3code#31781 * fix(mobile): grouped projects show their own monogram in the picker and draft rows by @johns1x in pingdotgg/t3code#31195 * fix(shared): file mentions of __init__.py keep their name as the label by @matyasrathonyi in pingdotgg/t3code#31593 * fix(server): delegate_task model refusals name slugs to retry with by @juliusmarminge in pingdotgg/t3code#31905 * fix(server): clearing a terminal that keeps printing no longer hangs by @MarcoDotIO in pingdotgg/t3code#31752 * fix(shared): preserve Git remote headers after comments by @darshmahadevia in pingdotgg/t3code#31788 * fix(server): dictionary spellings apply next to Chinese and Japanese text by @zedong-peng in pingdotgg/t3code#31780 * fix(server): MCP tools no longer advertise non-string enums that Gemini rejects by @juliusmarminge in pingdotgg/t3code#37031 * fix(server): re-base worktree launches whose recorded base ref does not resolve by @sgoley in pingdotgg/t3code#31747 * fix(web): expand viewed checkbox click area by @Yash-Singh1 in pingdotgg/t3code#37033 * fix(web): Shift+F6 moves from a side chat back to the main chat by @muunkk in pingdotgg/t3code#31931 * fix(server): check out cloned submodules when one submodule clone fails in a new worktree by @juliusmarminge in pingdotgg/t3code#37030 * fix(server): MCP send errors say how to continue a finished thread by @juliusmarminge in pingdotgg/t3code#31908 * fix(server): open WSL-mounted Windows drives directly in File Explorer by @spoonkuh in pingdotgg/t3code#31816 * fix(server): PR watch wakes quote a bot comment's text, not its HTML by @juliusmarminge in pingdotgg/t3code#37032 * fix(web): opening a project from the command palette skips settled and snoozed threads by @spoukyii in pingdotgg/t3code#31894 * fix(web): the PDF preview says "1 / 1 page" for a one-page PDF by @spoukyii in pingdotgg/t3code#31885 * fix(server): setup script output no longer shows stray bytes of escape sequences by @spoukyii in pingdotgg/t3code#31882 * fix(web): the SQLite, archive and notebook previews say "1 row", "1 entry" and "1 cell" by @spoukyii in pingdotgg/t3code#31886 * fix(web): notebook error previews no longer show terminal color codes by @geezoria in pingdotgg/t3code#31929 * perf(server): skip non-image results in project icon searches by @voltcrash in pingdotgg/t3code#32089 * fix(server): retain scheduled dispatch refusal reasons by @macodev00 in pingdotgg/t3code#32115 * fix(codex): settle unfinished web searches when turns end by @Sidreyas in pingdotgg/t3code#32177 * fix(pi): Pi agents get T3CODE_THREAD_ID like Claude, Codex and ACP sessions by @spoukyii in pingdotgg/t3code#31870 * fix(cli): t3 connect and t3 service hints keep --base-dir by @spoukyii in pingdotgg/t3code#31906 * fix(shared): compare prerelease versions without locale or precision loss by @luke2x in pingdotgg/t3code#32169 * fix(server): NixOS container and systemd-nspawn veths are no longer advertised as LAN routes by @repparw in pingdotgg/t3code#32140 * fix(relay): slow APNs requests no longer delay other devices by @Sidreyas in pingdotgg/t3code#32183 * fix(server): proxied Codex usage limits keep their reset time by @EhsanulHaqueSiam in pingdotgg/t3code#32188 * fix(server): session cookies are Secure when the request arrived over HTTPS by @juliusmarminge in pingdotgg/t3code#37042 * fix(server): session import no longer counts unused sessions as failures by @mthsmb in pingdotgg/t3code#32122 * perf(server): reuse Find documents across query changes by @voltcrash in pingdotgg/t3code#29310 * fix(server): branch PRs stay matched when a remote has a second push URL by @saphid in pingdotgg/t3code#29625 * fix(server): Stop on a stalled run closes its approval and question cards by @saphid in pingdotgg/t3code#30695 * fix(pi): recognize OmO's builtin tool search by @wuhaoyujerry in pingdotgg/t3code#32321 * fix(server): boot-started linux servers offer and open the file manager by @Tiaxi in pingdotgg/t3code#33107 * fix(server): typing after a click by coordinates no longer hangs a preview tab by @Entrpi in pingdotgg/t3code#32845 * fix(server): Claude MCP elicitations T3 cannot show are cancelled, not declined by @buttjer in pingdotgg/t3code#33575 * fix(server): log canceled relay requests at debug level by @Sidreyas in pingdotgg/t3code#32215 * fix(acp): give Command Code T3's MCP endpoint over HTTP by @ajinkyajacob in pingdotgg/t3code#34004 * Fix #29433: Restore Codex MCP apps after thread unload by @amr807 in pingdotgg/t3code#29498 * fix(server): regenerate an empty persisted secret instead of failing startup by @juliusmarminge in pingdotgg/t3code#32053 * fix(server): Gemini Spark can register its six MCP OAuth redirect URIs by @juliusmarminge in pingdotgg/t3code#31319 * fix(cli): the already-running error names the t3 pair command that connects by @juliusmarminge in pingdotgg/t3code#31543 * fix(server): read_pull_request_guide reads no-checkout hosts through the caller's project by @juliusmarminge in pingdotgg/t3code#35913 * fix(server): Codex calls delegate_task directly instead of from Code Mode by @juliusmarminge in pingdotgg/t3code#30019 * fix(forgejo): review guides work for checkouts whose SSH remote is not the web host by @juliusmarminge in pingdotgg/t3code#29784 * fix(effect-acp): reject elicitation modes the client did not advertise by @juliusmarminge in pingdotgg/t3code#35839 * fix(server): MCP refuses disallowed browser origins with 403 before auth and CORS by @juliusmarminge in pingdotgg/t3code#35810 * fix(mcp): explain cross-thread permission rejections by @07rjain in pingdotgg/t3code#36934 * fix(web): Add Environment drops the old tab's error when switching mode by @kvapca in pingdotgg/t3code#32157 * fix(server): malformed MCP client registration returns an RFC 7591 error body by @juliusmarminge in pingdotgg/t3code#35809 * fix(server): pairing codes typed in hyphen- or space-separated groups are accepted by @juliusmarminge in pingdotgg/t3code#35069 * fix(shared): use HTTP for schemeless loopback previews by @JoaoMarcos44 in pingdotgg/t3code#29710 * fix(opencode): Full access subagents start without approval prompts by @juliusmarminge in pingdotgg/t3code#35401 * fix(desktop): saving keeps a connection catalog this build cannot read by @juliusmarminge in pingdotgg/t3code#34944 * fix(pi): model list loads when the server's folder has a project MCP config by @chaitanyaprem in pingdotgg/t3code#28557 * fix(server): Git LFS images in pull request descriptions load the object, not its pointer by @juliusmarminge in pingdotgg/t3code#35466 * fix(server): desktop preview uploads accept files over 50 MB by @juliusmarminge in pingdotgg/t3code#30299 * fix(usage): keep default-home history after the default account moves by @juliusmarminge in pingdotgg/t3code#36727 * fix(provider-acp): approving a Devin plan never picks its bypass-permissions option by @juliusmarminge in pingdotgg/t3code#34474 * fix(server): guests of a forked thread can expand the commands it inherited by @saphid in pingdotgg/t3code#29764 * docs(user): Tailscale HTTPS lists what the tailnet needs by @WesleySmits in pingdotgg/t3code#23759 * fix(client-runtime): MCP app results with images reach the app instead of waiting forever by @juliusmarminge in pingdotgg/t3code#31338 * fix(gitlab): a pasted repository URL is looked up by its project path on its host by @Dkm0315 in pingdotgg/t3code#35209 * fix(server): skip user hooks in Codex text generation by @thelogicmatrix in pingdotgg/t3code#35203 * fix(server): worktrees of git-annex repositories can be removed by @cardoso-neto in pingdotgg/t3code#34065 * fix(server): Codex model changes no longer restart a shared session from another worktree by @juliusmarminge in pingdotgg/t3code#34129 * fix(cursor): an aborted Cursor SDK stall no longer stops the server by @Gourav224 in pingdotgg/t3code#23354 * fix(forgejo): prefer the deepest-mounted login when a root login also matches by @juliusmarminge in pingdotgg/t3code#35916 * fix(opencode): Go-key-only instances keep OpenCode Go usage on OpenCode 2 by @juliusmarminge in pingdotgg/t3code#36519 * fix(client-runtime): opening an old search result keeps messages in order by @juliusmarminge in pingdotgg/t3code#29711 * fix(server): MCP OAuth rejects a resource with an empty fragment by @juliusmarminge in pingdotgg/t3code#35808 * fix(provider-core): branch-name generation no longer starts the user's task by @juliusmarminge in pingdotgg/t3code#36222 * fix(web): desktop window recovers when its backend restarts during a renderer reload by @juliusmarminge in pingdotgg/t3code#26612 * fix(server): an explicit Tailscale IPv6 bind is advertised as a tailnet route by @juliusmarminge in pingdotgg/t3code#34742 * fix(server): agent slice memory limits follow live memory changes by @OmarAlex24 in pingdotgg/t3code#30581 * fix(grok): background text generation no longer inherits Grok always-approve by @saphid in pingdotgg/t3code#29692 * fix(server): preview port discovery stops polling while no client is in the foreground by @juliusmarminge in pingdotgg/t3code#29782 * fix(web): right-panel shortcuts work on a new, unsent thread by @juliusmarminge in pingdotgg/t3code#35189 * fix(desktop): a backend busy right after startup no longer ends in a fatal HTTP 500 screen by @juliusmarminge in pingdotgg/t3code#34918 * fix(onepassword): a failed batch read no longer outlasts the 45-second bound by @juliusmarminge in pingdotgg/t3code#35937 * fix(server): agents get no device tools or instructions while the Device hub is off by @juliusmarminge in pingdotgg/t3code#32542 * fix(server): clients paired over Tailscale Serve keep their own address by @juliusmarminge in pingdotgg/t3code#35559 * fix(server): HTML previews load relative video and audio files by @juliusmarminge in pingdotgg/t3code#36199 * fix(server): a linked launch above the link's access names the link, not the parent mode by @juliusmarminge in pingdotgg/t3code#27334 * fix(server): Claude append launch text may start with two hyphens by @juliusmarminge in pingdotgg/t3code#35598 * fix(cursor): text generation retries without the sandbox when send rejects it by @juliusmarminge in pingdotgg/t3code#34844 * fix(server): resolve Claude WinGet launchers on Windows by @Sidreyas in pingdotgg/t3code#32138 * fix(server): Claude knows decline feedback is the user's message by @juliusmarminge in pingdotgg/t3code#27871 * fix(acp): permission answers send the agent's option id unchanged by @juliusmarminge in pingdotgg/t3code#35837 * fix(server): forwarded calls to a linked environment no longer wait out a silent first address by @juliusmarminge in pingdotgg/t3code#35546 * fix(server): Claude sessions no longer log a canUseTool shadowing warning by @mahirozdin in pingdotgg/t3code#31548 * fix(server): Claude text generation honors --settings launch args by @juliusmarminge in pingdotgg/t3code#34874 * docs: align delegation guide with current MCP contract by @jacobcorbett in pingdotgg/t3code#31045 * fix(server): fx threads load the user's profile MCP servers by @juliusmarminge in pingdotgg/t3code#29538 * fix(acp-registry): executables named like ..agent count as inside their install folder by @juliusmarminge in pingdotgg/t3code#35840 * fix(server): usage mapped onto a Pi, Cursor or Antigravity model prices at that model's rate by @MarcoDotIO in pingdotgg/t3code#32219 * fix(server): resuming a queue no longer bypasses failed worktree setup by @StiensWout in pingdotgg/t3code#36616 * fix(server): agents can no longer delete the built-in No project through MCP by @juliusmarminge in pingdotgg/t3code#33773 * fix(web): load a too-large PR file's diff on demand by @Yash-Singh1 in pingdotgg/t3code#37007 * fix(cli): t3 up and t3 status hints keep --base-dir by @spoukyii in pingdotgg/t3code#31878 * fix(server): forks of forks keep their deleted source's files by @shivamhwp in pingdotgg/t3code#32255 * fix(web): stashed prompt previews no longer end in a broken character by @felixlaga in pingdotgg/t3code#32404 * fix(web, mobile): a failed terminal resize is sent again by @juliusmarminge in pingdotgg/t3code#32047 * fix(gitcafe): recognize ssh:// remotes that name no user by @jancuk in pingdotgg/t3code#32363 * fix(server): EPUB text extraction skips the chapter head by @jancuk in pingdotgg/t3code#32370 * fix(mobile): queued messages show mentions and files by name, not as raw links by @MarcoDotIO in pingdotgg/t3code#32224 * fix(web): [NIT] SF Pro label no longer renders in a serif in the font picker by @plusk-dev in pingdotgg/t3code#24082 * fix(web): quieter Ready and Merge buttons on PR rows by @flamboh in pingdotgg/t3code#25346 * fix(prs): include Storybook files in the test filter and counts by @aminevg in pingdotgg/t3code#29083 * fix(web): settings section headers no longer overlap their actions on narrow screens by @M0xoo in pingdotgg/t3code#29503 * fix(web): theme import no longer says a file just under 1 MB is "1024 KB" by @spoukyii in pingdotgg/t3code#30330 * fix(web): use available space for project breadcrumbs by @bentbrain in pingdotgg/t3code#30503 * docs: include required Bitbucket workspace read scope by @chungweileong94 in pingdotgg/t3code#30593 * fix(web): subagent status dots no longer jump between corners by @markjoshwel in pingdotgg/t3code#30753 * fix(web): resource monitor no longer claims to sample every 0 ms by @M0xoo in pingdotgg/t3code#29749 * fix(web): the minimap keeps the current turn lit while reading a long reply by @Yuruzuu in pingdotgg/t3code#30084 * fix(desktop): voice input recovers after Linux audio restarts by @voltcrash in pingdotgg/t3code#32376 * perf(pr): actions, title edits and labels show the moment you click, on every host by @Bil0000 in pingdotgg/t3code#32774 * fix(provider-core): background work notices no longer say every task failed when one did by @felixlaga in pingdotgg/t3code#32407 * fix(server): restarts no longer drop prompts the provider never accepted by @Jolymmiles in pingdotgg/t3code#32413 * perf(web): typing no longer re-renders the composer's footer controls by @OmarAlex24 in pingdotgg/t3code#32323 * fix(server): task_status no longer reports a restart-continued task as cancelled by @Jolymmiles in pingdotgg/t3code#32414 ## New Contributors * @epistex-dev made their first contribution in pingdotgg/t3code#30311 * @DavidPerezA12 made their first contribution in pingdotgg/t3code#30492 * @humbertogontijo made their first contribution in pingdotgg/t3code#30539 * @muhammad-auon-marham made their first contribution in pingdotgg/t3code#30829 * @Isaac-b-ux made their first contribution in pingdotgg/t3code#30947 * @flexi767 made their first contribution in pingdotgg/t3code#31090 * @shlokkhemani made their first contribution in pingdotgg/t3code#31009 * @defyrlt made their first contribution in pingdotgg/t3code#31203 * @vytorrennan made their first contribution in pingdotgg/t3code#36999 * @johns1x made their first contribution in pingdotgg/t3code#34088 * @cesarbahena made their first contribution in pingdotgg/t3code#34081 * @rgodha24 made their first contribution in pingdotgg/t3code#37002 * @SimonDdungu made their first contribution in pingdotgg/t3code#31459 * @joeyvandijk made their first contribution in pingdotgg/t3code#31360 * @NawfalAhmed made their first contribution in pingdotgg/t3code#31541 * @darshmahadevia made their first contribution in pingdotgg/t3code#31781 * @matyasrathonyi made their first contribution in pingdotgg/t3code#31593 * @zedong-peng made their first contribution in pingdotgg/t3code#31780 * @sgoley made their first contribution in pingdotgg/t3code#31747 * @muunkk made their first contribution in pingdotgg/t3code#31931 * @spoonkuh made their first contribution in pingdotgg/t3code#31816 * @mthsmb made their first contribution in pingdotgg/t3code#32122 * @wuhaoyujerry made their first contribution in pingdotgg/t3code#32321 * @Tiaxi made their first contribution in pingdotgg/t3code#33107 * @buttjer made their first contribution in pingdotgg/t3code#33575 * @ajinkyajacob made their first contribution in pingdotgg/t3code#34004 * @amr807 made their first contribution in pingdotgg/t3code#29498 * @07rjain made their first contribution in pingdotgg/t3code#36934 * @kvapca made their first contribution in pingdotgg/t3code#32157 * @JoaoMarcos44 made their first contribution in pingdotgg/t3code#29710 * @chaitanyaprem made their first contribution in pingdotgg/t3code#28557 * @Dkm0315 made their first contribution in pingdotgg/t3code#35209 * @OmarAlex24 made their first contribution in pingdotgg/t3code#30581 * @mahirozdin made their first contribution in pingdotgg/t3code#31548 * @jancuk made their first contribution in pingdotgg/t3code#32363 * @plusk-dev made their first contribution in pingdotgg/t3code#24082 * @chungweileong94 made their first contribution in pingdotgg/t3code#30593 * @markjoshwel made their first contribution in pingdotgg/t3code#30753 **Full Changelog**: pingdotgg/t3code@v0.1.10-nightly.20261114.4709...v0.1.10-nightly.20261115.4723 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.10-nightly.20261115.4723












Windows Markdown destinations such as
C:\R&D folder\.t3\shot.pnglose the separator before.t3, so links and images name the wrong file. Preserve authored Windows separators while decoding Markdown character references once, using micromark's existing decoder.Closes #36579. The earlier fix PR #36580 is closed and unmerged; this independently written replacement is limited to the shared destination parser. Mobile already escapes its own destinations and does not use this destination extension.
Verification (Windows, Node 24.21.0):
cd packages/shared; vp test run --config ../../vite.config.ts src/markdownWindowsPaths.test.ts src/markdownPipeline.test.ts: 34 tests pass.This is a small fix for an existing parser defect, without new UI, settings, contracts, or provider behavior.
Written with GPT-6.1 Sol through the Codex harness in T3 Code.