Repository navigation
feat(web): bindable shortcut to regenerate a thread's title - #33987
Merged
juliusmarminge merged 1 commit intoNov 10, 2026
Merged
Conversation
Adds a thread.regenerateTitle keybinding command that runs the same action as "Regenerate title" in the thread menu. It has no default shortcut. Closes pingdotgg#33983 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Adds an optional shortcut for the existing thread-title regeneration action, with permission and in-progress guards. No default shortcut or existing product behavior changes. Notes:
You can add or adjust custom eligibility rules. Learn more. |
github-actions Bot
added a commit
to omarcresp/t3code-flake
that referenced
this pull request
Nov 11, 2026
**v0.1.9-nightly.20261110.4491** · 40 changes from 9 contributors - **Shared OpenCode goals.** OpenCode goals stay in sync across clients. - **OpenCode checklists.** See OpenCode todo updates as checklists. - **Drag threads into the composer.** Drag threads from the command palette into the composer as context without navigating away. - **More usage limits.** See Muse Code limits and xAI and Antigravity accounts managed through CLIProxyAPI in Usage → Limits. - **Open apps from links.** Open apps from Markdown links and see their icons. - **Checkpoint new files.** Checkpoints retain new files when ignore files contain blank lines. - **Open cited files.** Open more file links from chat, including citations with line ranges. ### Plus 30 more bug fixes and performance improvements. <details> <summary>Full changelog</summary> ## What's Changed * fix(mobile): iOS 18 iPad sidebar and thread feed start below the header by @juliusmarminge in pingdotgg/t3code#32936 * fix(web): Tab reaches the add-project and new-project submit buttons by @juliusmarminge in pingdotgg/t3code#32605 * fix(web): screen readers hear the add-project submit shortcut by @juliusmarminge in pingdotgg/t3code#32576 * fix(server): Antigravity limits read the quota host the account is metered on by @juliusmarminge in pingdotgg/t3code#32425 * fix(web): the thread menu works for an older settled thread the sidebar hasn't loaded by @juliusmarminge in pingdotgg/t3code#32507 * fix(opencode): show questions asked while OpenCode wakes a session on its own by @juliusmarminge in pingdotgg/t3code#32434 * fix(server): blank .gitignore lines no longer make checkpoints drop new files by @juliusmarminge in pingdotgg/t3code#32374 * test(web): minimap next-turn test no longer flakes after a resize by @t3dotgg in pingdotgg/t3code#33964 * feat(opencode): mirror native goals across clients by @Yash-Singh1 in pingdotgg/t3code#33758 * feat(web): bindable shortcut to regenerate a thread's title by @sharanry in pingdotgg/t3code#33987 * fix(server): linked projects keep their repository identity while it refreshes by @juliusmarminge in pingdotgg/t3code#32359 * fix(mobile): tool call commands are highlighted and monospaced like on web by @juliusmarminge in pingdotgg/t3code#33957 * fix: Claude monitor wakes no longer fire a completion alert per line by @juliusmarminge in pingdotgg/t3code#32520 * fix(server): removed thread worktrees keep their project's skills in the picker by @juliusmarminge in pingdotgg/t3code#32471 * fix(web): drag command palette threads into the composer by @Yash-Singh1 in pingdotgg/t3code#33990 * fix(shared): show zero seconds in minute durations by @Yash-Singh1 in pingdotgg/t3code#33994 * fix(web): closing the right panel returns focus to where it was by @juliusmarminge in pingdotgg/t3code#32569 * fix(server): say why threads without a project are unavailable by @juliusmarminge in pingdotgg/t3code#32342 * fix: chat file links open the file agents cite by @juliusmarminge in pingdotgg/t3code#33943 * fix(clients): scroll truncated command output notice with logs by @Yash-Singh1 in pingdotgg/t3code#34011 * fix(web): show app bundle icons and open apps from markdown links by @Yash-Singh1 in pingdotgg/t3code#33950 * feat(opencode): project native todo updates into checklists by @Yash-Singh1 in pingdotgg/t3code#34000 * fix(antigravity): recognize Gemini 4 Carbon and its quota by @DrSeedon in pingdotgg/t3code#33991 * perf(client): reopening a finished command row no longer refetches its output by @juliusmarminge in pingdotgg/t3code#34002 * perf(server): user-only message reads use the user-message index for ordinals by @juliusmarminge in pingdotgg/t3code#33009 * fix(web): keep HTML previews anchored when accordions expand by @Yash-Singh1 in pingdotgg/t3code#34003 * fix(web): preserve search result titles in drag previews by @Yash-Singh1 in pingdotgg/t3code#34017 * fix: file links with line ranges open at their first line by @juliusmarminge in pingdotgg/t3code#34006 * fix(codex): show image generation tool calls by @Yash-Singh1 in pingdotgg/t3code#34020 * fix(pi): a steer Pi has not read yet shows as waiting, not steered by @juliusmarminge in pingdotgg/t3code#33982 * fix(server): provider switches hand off started cancelled runs by @juliusmarminge in pingdotgg/t3code#34016 * fix(web,mobile): replace sparkles icons and ban them with a lint rule by @flamboh in pingdotgg/t3code#25422 * fix(github): a proxy's 403 with Retry-After is no longer reported as a rate limit by @juliusmarminge in pingdotgg/t3code#33676 * fix(web): sending from an empty citation comment clears the composer by @juliusmarminge in pingdotgg/t3code#33440 * fix(server): text generation fallback respects project provider settings by @Muzammil-Bit in pingdotgg/t3code#33741 * feat(usage): show Muse Code limits, and xAI and Antigravity accounts from a CLIProxyAPI hub by @StiensWout in pingdotgg/t3code#33800 * fix(web): preserve previews during attachment preparation by @Yash-Singh1 in pingdotgg/t3code#33949 * fix(desktop): input during window teardown no longer throws in the main process by @juliusmarminge in pingdotgg/t3code#33620 * fix(web): sent messages keep the numbers written on list items by @tsapa44 in pingdotgg/t3code#33820 * fix(server): quitting stops an agent-device daemon left by an earlier server by @juliusmarminge in pingdotgg/t3code#33587 ## New Contributors * @sharanry made their first contribution in pingdotgg/t3code#33987 * @tsapa44 made their first contribution in pingdotgg/t3code#33820 **Full Changelog**: pingdotgg/t3code@v0.1.9-nightly.20261110.4478...v0.1.9-nightly.20261110.4491 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.9-nightly.20261110.4491
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
"Regenerate title" can only be triggered from the thread context menu, so it can't be bound to a key:
KeybindingCommandis a closed list and nothing in it covers title regeneration. Closes #33983.Added a
thread.regenerateTitlethread keybinding command. Its handler inuseThreadLifecycledoes what the menu item does: it sendsupdateMetadatawithregenerateTitle: truefor the focused thread. It applies the same guards asthread.pin/thread.settle: it needs operate scope and loaded server config, it does nothing while a regeneration is already in flight, and it shows a toast if it fails. It has no default shortcut, so default behavior doesn't change. It shows up in Settings → Keybindings like the other unbound commands (for examplethread.stop), and I added a sentence for it indocs/user/keybindings.md.Surfaces: web and desktop share this handler. Mobile has no keybindings, and agents already have
regenerate_titlethrough the thread-metadata MCP tool. No server or contract-shape changes beyond the enum entry.Verification:
vp run check:changedpassed format, lint, knip, typecheck (37 packages), the react compiler check, and 2 of 3 tests. The remaining browser test file couldn't launch locally because Playwright's headless Chromium isn't installed on this machine.Done with Claude Code (Claude Opus 5.5).
🤖 Generated with Claude Code