Support multi-select pending user inputs#1797
Merged
juliusmarminge merged 1 commit intomainfrom Apr 6, 2026
Merged
Conversation
- Preserve question multi-select metadata end to end - Toggle option selections in the composer and submit arrays - Cover keyboard and answer-building behavior with tests
Contributor
ApprovabilityVerdict: Needs human review This PR introduces a new multi-select capability for user input questions, changing data structures from single to array-based selection and adding new toggle behavior. While well-tested and self-contained, it represents new user-facing functionality with runtime behavior changes that warrants human review. You can customize Macroscope's approvability policy. Learn more. |
Aditya190803
pushed a commit
to Aditya190803/t3code
that referenced
this pull request
Apr 7, 2026
Chrono-byte
pushed a commit
to Chrono-byte/t3code
that referenced
this pull request
Apr 7, 2026
gigq
pushed a commit
to gigq/t3code
that referenced
this pull request
Apr 8, 2026
(cherry picked from commit 11d456f)
rororowyourboat
added a commit
to rororowyourboat/t3code
that referenced
this pull request
Apr 9, 2026
…threadId (#2) * Raise slow RPC ack warning threshold to 15s (pingdotgg#1760) * Use active worktree path for workspace saves (pingdotgg#1762) * Stream git status updates over WebSocket (pingdotgg#1763) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): unwrap windows shell command wrappers (pingdotgg#1719) * Rename "Chat" to "Build" in interaction mode toggle (pingdotgg#1769) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Assign default capabilities to Codex custom models (pingdotgg#1793) * Add project rename support in the sidebar (pingdotgg#1798) * Support multi-select pending user inputs (pingdotgg#1797) * Add Zed support to Open actions via editor command aliases (pingdotgg#1303) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * Closes pingdotgg#1795 - Support building and developing in a devcontainer (pingdotgg#1791) * Add explicit timeouts to CI and release workflows (pingdotgg#1825) * fix(web): distinguish singular/plural in pending action submit label (pingdotgg#1826) * Refactor web stores into atomic slices ready to split ChatView (pingdotgg#1708) * Add VSCode Insiders and VSCodium icons (pingdotgg#1847) * Prepare datamodel for multi-environment (pingdotgg#1765) Co-authored-by: justsomelegs <145564979+justsomelegs@users.noreply.github.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> * Implement server auth bootstrap and pairing flow (pingdotgg#1768) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> * Use dev proxy for loopback auth and environment requests (pingdotgg#1853) * Refresh local git status on turn completion (pingdotgg#1821) Co-authored-by: codex <codex@users.noreply.github.com> * fix(desktop): add Copy Link action for chat links (pingdotgg#1835) * fix: map runtime modes to correct permission levels (pingdotgg#1587) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Fix persisted composer image hydration typo (pingdotgg#1831) * Clarify environment and workspace picker labels (pingdotgg#1854) * Scope git toast state by thread ref (pingdotgg#1855) * fix build (pingdotgg#1859) * Stabilize keybindings toast stream setup (pingdotgg#1860) Co-authored-by: Julius Marminge <julius@macmini.local> * feat(web): add embeddable thread route for canvas tile hosts Adds /embed/thread/:environmentId/:threadId — a standalone route that renders the existing ChatView without the app sidebar chrome. This is the iframe target for t3-canvas agent shapes (see rororowyourboat/t3-canvas#3). - New file-based route embed.thread.\$environmentId.\$threadId.tsx - __root.tsx bypasses AppSidebarLayout for any /embed/* pathname so the environment connection + websocket surface + toasts still initialize but the sidebar/diff/plan chrome does not render - minimal=1 search param is parsed and wired to a data attribute on the container for future targeted CSS; chrome hiding (BranchToolbar, PlanSidebar, ThreadTerminalDrawer) stays as a follow-up pass - routeTree.gen.ts regenerated by the @tanstack/router-plugin --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com> Co-authored-by: sonder <168988030+heysonder@users.noreply.github.com> Co-authored-by: Adem Ben Abdallah <96244394+AdemBenAbdallah@users.noreply.github.com> Co-authored-by: Kyle Gottfried <6462596+Spitfire1900@users.noreply.github.com> Co-authored-by: Jacob <589761+jvzijp@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: Klemencina <56873773+Klemencina@users.noreply.github.com> Co-authored-by: Oskar Sekutowicz <me.oski646@gmail.com> Co-authored-by: Noxire <59626436+noxire-dev@users.noreply.github.com>
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.
Summary
multiSelectsupport to Codex user-input questions and carry it through server/web parsing.Testing
bun fmtbun lintbun typecheckbun run testNote
Medium Risk
Changes user-input question/answer shape to support multi-select, including different answer types (
stringvsstring[]) and updated UI selection behavior; regressions could affect responding to prompts or keyboard shortcuts in the chat composer.Overview
Adds end-to-end
multiSelectsupport for pending user-input questions: server adapters/session parsing now preserve amultiSelectflag, and the web client can submit multi-select answers as arrays.Updates pending user-input state and UI to track multiple selected option labels with toggle semantics, disables auto-advance for multi-select questions (single-select still auto-advances), and tightens numeric shortcut handling to avoid firing while the composer/contenteditable is focused.
Expands unit and browser tests to cover multi-select parsing, selection toggling, progress/answer resolution, and submission payloads.
Reviewed by Cursor Bugbot for commit 0ab01a7. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add multi-select support to pending user input questions
multiSelectflag to user input question types in bothpendingUserInput.tsandsession-logic.ts, parsed from the activity payload.selectedOptionLabel: stringwithselectedOptionLabels: string[]throughout the pending user input data model to support multiple selections uniformly.togglePendingUserInputOptionSelectionto toggle option state; multi-select questions accumulate selections while single-select questions replace them.resolvePendingUserInputAnswerreturnsstring[]for multi-select questions andstringfor single-select;buildPendingUserInputAnswerspropagates arrays in the final answers map.selectedOptionLabeldirectly will break.Macroscope summarized 0ab01a7.