Repository navigation
fix(web): going back in the command palette keeps the search that led there - #15940
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a localized command-palette bug fix that preserves search context across nested navigation and explicitly resets stale state when starting fresh. The production changes remain self-contained and are accompanied by focused reducer tests, with no schema, infrastructure, security, billing, or static-analysis configuration impact. You can add or adjust custom eligibility rules. Learn more. |
|
Warning Review limit reachedOnly developers with an assigned seat can use this organization's usage-based review budget, and seats here are assigned manually. Ask an admin to assign a seat, or change the review continuation mode in Billing. Next included review available in 1 minute. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
|
Review requested
Logged so this PR shows when a maintainer was asked to review it. |
… there Back from a nested picker (Backspace or the Back button) and Escape from file or content search now restore the palette query, and linked-thread results, that were showing before. Closing the palette, a fresh shortcut, or a direct intent still starts clean. Fixes pingdotgg#15936. Replaces pingdotgg#12873. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
b0dd057 to
9b13008
Compare
Direct intents (add project, new thread, change theme, search) all drop the query a child search would return to, a second Back in the same keypress keeps the restored query, and linked-thread results survive repeated trips into file and content search. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dismissing prior approval to re-evaluate 8087eff
…d palette keeps the search that led there Preserve the scoped contribution against upstream 70d60e0. Focused checks and read-only integration review recorded in the PR. GPT-6.1 Sol (high), Codex harness through T3 Code.
Dismissing prior approval to re-evaluate af778a1
|
Taking over this one as maintainer for batch web-misc-07. I will preserve your commits, merge current main, simplify the tests and implementation, and run independent reviews. Nothing will be merged as part of this takeover. |
Dismissing prior approval to re-evaluate f8592d6
## What's Changed * fix(mobile): settings no longer tell you to update when you're up to date by @shivamhwp in pingdotgg/t3code#21688 * test(web): fix the workflow script test that times out on busy CI runners by @shivamhwp in pingdotgg/t3code#21699 * fix(mobile): a file shared into a new task shows in the composer before you send by @shivamhwp in pingdotgg/t3code#21659 * fix(desktop): a cold WSL distro gets 30 seconds to boot instead of 10 by @SunkenInTime in pingdotgg/t3code#21070 * fix(web): detect software keyboard before handling composer Enter by @Yash-Singh1 in pingdotgg/t3code#21763 * fix(mobile): the Git sheet uses the standard list rows by @juliusmarminge in pingdotgg/t3code#21785 * fix(server): changed files keep their real paths for renames and non-ASCII names by @Atharvsinh-codez in pingdotgg/t3code#20175 * fix(server): a message promoted into a stopping run stays queued by @lbgos in pingdotgg/t3code#16926 * perf(mobile): streaming re-renders less on the open thread screen by @juliusmarminge in pingdotgg/t3code#20963 * feat(usage): show even-pace marks on Limits bars by @flamboh in pingdotgg/t3code#14477 * fix(web): Usage hourly labels follow the Time format setting by @mInrOz in pingdotgg/t3code#15575 * fix(web): stop repeating the subagent name in the waiting banner by @saphid in pingdotgg/t3code#16022 * fix(web): Cmd+O no longer opens the editor more than once by @5knnbdwm in pingdotgg/t3code#18983 * fix(web): hoist favorited legacy models to the top of the model picker by @TonybynMp4 in pingdotgg/t3code#11933 * fix(server): a rollback blocked by Git's index lock says so instead of a generic error by @shivamhwp in pingdotgg/t3code#11340 * fix(mobile): expanded tool-call groups keep following new calls by @nekohasekai in pingdotgg/t3code#15747 * fix(web): going back in the command palette keeps the search that led there by @saphid in pingdotgg/t3code#15940 * fix(web): changing a project's model no longer keeps the old model's options by @yaacovcorcos in pingdotgg/t3code#16581 * fix(web): preserve snapshot thumbnail context and detail by @maria-rcks in pingdotgg/t3code#18440 * fix(web): keep expanded tool actions usable from the keyboard by @saphid in pingdotgg/t3code#18831 * fix(usage): Claude usage no longer lists a `<synthetic>` model by @tris203 in pingdotgg/t3code#14672 * fix(server): release webhook claims when acceptance fails by @saphid in pingdotgg/t3code#18820 * fix(desktop): make the annotation editor border and shadow actually render by @PollyGlot in pingdotgg/t3code#9406 * fix(server): Claude follow-ups no longer fail in Auto on models without Auto by @Gigioxx in pingdotgg/t3code#15687 * fix(web): reopening Connections picks up new network addresses by @lnieuwenhuis in pingdotgg/t3code#15840 * fix(client): MCP apps can no longer trap you in full screen; it opens only after a tap by @shivamhwp in pingdotgg/t3code#18548 * fix(web,mobile): disabled provider instances no longer badge their siblings by @tris203 in pingdotgg/t3code#14545 * fix(web): threads open at the newest message, not thousands of pixels above it by @t3dotgg in pingdotgg/t3code#19663 * fix(mobile): report rejected shared settings writes by @juliusmarminge in pingdotgg/t3code#9356 * fix(claude): show automatic compaction while it runs by @maria-rcks in pingdotgg/t3code#15631 * fix(web): keep the parent thread highlighted while viewing its subagent by @saphid in pingdotgg/t3code#15163 * fix(web): show pull request checkout error detail by @saphid in pingdotgg/t3code#15007 * fix(server): mark unvisited thread completions unread by @maria-rcks in pingdotgg/t3code#15607 * fix(web): started threads no longer offer a machine picker that does nothing by @tris203 in pingdotgg/t3code#19900 * fix(web): provider model names no longer get cut off by their slug by @ilyaliao in pingdotgg/t3code#16522 * fix(claude): mid-sentence skill chips keep the full request by @ScottN-PV in pingdotgg/t3code#15253 * fix(web): preserve unsaved keybinding edits when saving another binding by @pnupu in pingdotgg/t3code#11109 * fix(connections): retry unsupported saved direct connections by @none23 in pingdotgg/t3code#15107 * fix(web): show readable messages for structured thread errors by @juliusmarminge in pingdotgg/t3code#21483 * fix(web): custom shortcuts work when Local environment is off by @Mnigos in pingdotgg/t3code#15825 * fix(web): keep thread notification tags within the Windows toast limit by @satyalyadav in pingdotgg/t3code#12289 * fix(web): pinned thread marker stays put when hovering the row by @flamboh in pingdotgg/t3code#11122 * fix(web): keep a typed question answer when you open a new thread by @Gigioxx in pingdotgg/t3code#13865 * fix(web): renumber following items when continuing a plain-Markdown numbered list by @saphid in pingdotgg/t3code#14332 * fix(web): clicking a logged request route no longer opens it in the editor by @lnieuwenhuis in pingdotgg/t3code#15838 * fix(desktop): reject offscreen annotation screenshot crops by @maria-rcks in pingdotgg/t3code#18441 * fix(web): NVDA browse mode reaches the new-thread project picker again by @akj in pingdotgg/t3code#17877 * fix(web): stop composer banner glass overlap by @t3-code[bot] in pingdotgg/t3code#8034 * fix(web): keep pasted decorators as text by @Gigioxx in pingdotgg/t3code#8415 * fix(shell): avoid interactive job control in environment probes by @LouisDeconinck in pingdotgg/t3code#11275 * fix(web): a closed proactive diff stays closed when you return to a thread by @ilyaliao in pingdotgg/t3code#14705 * fix(web): render powerline separators at cell edges by @SadriG91 in pingdotgg/t3code#5607 * fix(server): provider failures say why a turn could not start by @saphid in pingdotgg/t3code#16303 ## New Contributors * @Atharvsinh-codez made their first contribution in pingdotgg/t3code#20175 * @lbgos made their first contribution in pingdotgg/t3code#16926 * @yaacovcorcos made their first contribution in pingdotgg/t3code#16581 * @pnupu made their first contribution in pingdotgg/t3code#11109 * @LouisDeconinck made their first contribution in pingdotgg/t3code#11275 * @SadriG91 made their first contribution in pingdotgg/t3code#5607 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3360...v0.1.1-nightly.20261019.3373 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261019.3373
## What's Changed * fix(mobile): settings no longer tell you to update when you're up to date by @shivamhwp in pingdotgg/t3code#21688 * test(web): fix the workflow script test that times out on busy CI runners by @shivamhwp in pingdotgg/t3code#21699 * fix(mobile): a file shared into a new task shows in the composer before you send by @shivamhwp in pingdotgg/t3code#21659 * fix(desktop): a cold WSL distro gets 30 seconds to boot instead of 10 by @SunkenInTime in pingdotgg/t3code#21070 * fix(web): detect software keyboard before handling composer Enter by @Yash-Singh1 in pingdotgg/t3code#21763 * fix(mobile): the Git sheet uses the standard list rows by @juliusmarminge in pingdotgg/t3code#21785 * fix(server): changed files keep their real paths for renames and non-ASCII names by @Atharvsinh-codez in pingdotgg/t3code#20175 * fix(server): a message promoted into a stopping run stays queued by @lbgos in pingdotgg/t3code#16926 * perf(mobile): streaming re-renders less on the open thread screen by @juliusmarminge in pingdotgg/t3code#20963 * feat(usage): show even-pace marks on Limits bars by @flamboh in pingdotgg/t3code#14477 * fix(web): Usage hourly labels follow the Time format setting by @mInrOz in pingdotgg/t3code#15575 * fix(web): stop repeating the subagent name in the waiting banner by @saphid in pingdotgg/t3code#16022 * fix(web): Cmd+O no longer opens the editor more than once by @5knnbdwm in pingdotgg/t3code#18983 * fix(web): hoist favorited legacy models to the top of the model picker by @TonybynMp4 in pingdotgg/t3code#11933 * fix(server): a rollback blocked by Git's index lock says so instead of a generic error by @shivamhwp in pingdotgg/t3code#11340 * fix(mobile): expanded tool-call groups keep following new calls by @nekohasekai in pingdotgg/t3code#15747 * fix(web): going back in the command palette keeps the search that led there by @saphid in pingdotgg/t3code#15940 * fix(web): changing a project's model no longer keeps the old model's options by @yaacovcorcos in pingdotgg/t3code#16581 * fix(web): preserve snapshot thumbnail context and detail by @maria-rcks in pingdotgg/t3code#18440 * fix(web): keep expanded tool actions usable from the keyboard by @saphid in pingdotgg/t3code#18831 * fix(usage): Claude usage no longer lists a `<synthetic>` model by @tris203 in pingdotgg/t3code#14672 * fix(server): release webhook claims when acceptance fails by @saphid in pingdotgg/t3code#18820 * fix(desktop): make the annotation editor border and shadow actually render by @PollyGlot in pingdotgg/t3code#9406 * fix(server): Claude follow-ups no longer fail in Auto on models without Auto by @Gigioxx in pingdotgg/t3code#15687 * fix(web): reopening Connections picks up new network addresses by @lnieuwenhuis in pingdotgg/t3code#15840 * fix(client): MCP apps can no longer trap you in full screen; it opens only after a tap by @shivamhwp in pingdotgg/t3code#18548 * fix(web,mobile): disabled provider instances no longer badge their siblings by @tris203 in pingdotgg/t3code#14545 * fix(web): threads open at the newest message, not thousands of pixels above it by @t3dotgg in pingdotgg/t3code#19663 * fix(mobile): report rejected shared settings writes by @juliusmarminge in pingdotgg/t3code#9356 * fix(claude): show automatic compaction while it runs by @maria-rcks in pingdotgg/t3code#15631 * fix(web): keep the parent thread highlighted while viewing its subagent by @saphid in pingdotgg/t3code#15163 * fix(web): show pull request checkout error detail by @saphid in pingdotgg/t3code#15007 * fix(server): mark unvisited thread completions unread by @maria-rcks in pingdotgg/t3code#15607 * fix(web): started threads no longer offer a machine picker that does nothing by @tris203 in pingdotgg/t3code#19900 * fix(web): provider model names no longer get cut off by their slug by @ilyaliao in pingdotgg/t3code#16522 * fix(claude): mid-sentence skill chips keep the full request by @ScottN-PV in pingdotgg/t3code#15253 * fix(web): preserve unsaved keybinding edits when saving another binding by @pnupu in pingdotgg/t3code#11109 * fix(connections): retry unsupported saved direct connections by @none23 in pingdotgg/t3code#15107 * fix(web): show readable messages for structured thread errors by @juliusmarminge in pingdotgg/t3code#21483 * fix(web): custom shortcuts work when Local environment is off by @Mnigos in pingdotgg/t3code#15825 * fix(web): keep thread notification tags within the Windows toast limit by @satyalyadav in pingdotgg/t3code#12289 * fix(web): pinned thread marker stays put when hovering the row by @flamboh in pingdotgg/t3code#11122 * fix(web): keep a typed question answer when you open a new thread by @Gigioxx in pingdotgg/t3code#13865 * fix(web): renumber following items when continuing a plain-Markdown numbered list by @saphid in pingdotgg/t3code#14332 * fix(web): clicking a logged request route no longer opens it in the editor by @lnieuwenhuis in pingdotgg/t3code#15838 * fix(desktop): reject offscreen annotation screenshot crops by @maria-rcks in pingdotgg/t3code#18441 * fix(web): NVDA browse mode reaches the new-thread project picker again by @akj in pingdotgg/t3code#17877 * fix(web): stop composer banner glass overlap by @t3-code[bot] in pingdotgg/t3code#8034 * fix(web): keep pasted decorators as text by @Gigioxx in pingdotgg/t3code#8415 * fix(shell): avoid interactive job control in environment probes by @LouisDeconinck in pingdotgg/t3code#11275 * fix(web): a closed proactive diff stays closed when you return to a thread by @ilyaliao in pingdotgg/t3code#14705 * fix(web): render powerline separators at cell edges by @SadriG91 in pingdotgg/t3code#5607 * fix(server): provider failures say why a turn could not start by @saphid in pingdotgg/t3code#16303 ## New Contributors * @Atharvsinh-codez made their first contribution in pingdotgg/t3code#20175 * @lbgos made their first contribution in pingdotgg/t3code#16926 * @yaacovcorcos made their first contribution in pingdotgg/t3code#16581 * @pnupu made their first contribution in pingdotgg/t3code#11109 * @LouisDeconinck made their first contribution in pingdotgg/t3code#11275 * @SadriG91 made their first contribution in pingdotgg/t3code#5607 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261019.3360...v0.1.1-nightly.20261019.3373 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261019.3373
Going back from a command-palette picker clears the search that opened it. Escape from file or content search also loses the parent palette query. Fixes #15936.
Keep each nested view's parent query with its view stack, and retain the query and linked-thread results while a child search replaces the palette. Back restores that context. Closing, fresh shortcuts and direct intents reset it. Direct-intent resets are centralized so add-project also starts with a clean stack.
Maintainer takeover of @saphid's implementation in #15940. The author's commits are preserved; current main was merged without rebasing or force-pushing. Removed duplicate reset blocks and forwarding helpers. Reduced the existing logic suite from 46 to 40 tests (PR-added cases: 13 to 7).
Verification on f8592d6d20:
node_modules/.bin/vp test run apps/web/src/components/CommandPalette.logic.test.ts: 40 passed. Disabling restoration causes three behavioral failures; using main's logic also fails the new regression selection.tsc-rs --noEmit, andgit diff --checkpassed.theme; Escape from file search restoresgo to file; Escape from content search restores>search; close/reopen and a fresh content-search shortcut start clean. No agent turns were sent.Before, runtime code from 5307c233b1: Back clears the input.
After, the same project, viewport and flow on this head: Back restores
theme.Before recording · After recording: visible Back and Backspace
Limits: linked-thread result restoration and multiple nesting levels were verified by focused tests, not live fixtures. macOS, Windows, iOS, Android and Electron desktop were not exercised. Desktop uses this web component; mobile has its own unchanged palette. No provider, server, wire-contract or connection-mode changes. The live database could not be migrated into this checkout because its migration history differs, so the client used fresh isolated state with a project and thread.
Tests: GPT-6-Astra; implementation: GPT-6.1-Sol; independent reviews: Claude Opus 5.5 and GPT-6-Sol. Integration and publication: GPT-6.1-Sol, Codex harness through T3 Code.