Skip to content

feat(web): open full access menu from the new thread context strip - #30275

Merged
Yash-Singh1 merged 1 commit into
mainfrom
t3/direct-full-access-menu
Nov 3, 2026
Merged

Yash-Singh1 merged 1 commit into
mainfrom
t3/direct-full-access-menu

Conversation

@Yash-Singh1

@Yash-Singh1 Yash-Singh1 commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

In a new thread, clicking the context strip's permission mode opened the model selector before its permissions menu. The button now opens the shared permissions menu directly above itself, using the same supported modes, administrator restrictions, and draft change handler as the composer.

Validation: vp run check:changed passed format, lint, knip, affected typechecks, 55 focused tests, and React Compiler checks. The new browser regression test failed against the previous implementation and passes with the fix. Verified the real app in the Browser panel, including switching to Supervised and back to Full access, and captured before/after screenshots. CI passes on the current head; automated review is still completing.

Model: GPT 6.1 Sol. Harness: Codex in T3 Code.

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Nov 3, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at c89e921

Macroscope's review found this PR approvable — The new-thread permissions chip now opens the existing permissions menu directly. Provider compatibility and managed-policy restrictions remain applied, with no change to default permissions.

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

@github-actions github-actions Bot added the size:M 30-99 changed lines (additions + deletions). label Nov 3, 2026
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Walkthrough

The context-strip permissions control now opens a runtime-mode menu. It resolves the displayed mode against supported modes and applies managed-policy denial reasons to options. ChatView supplies the mode-change callback, and ChatComposer uses the same runtime-option resolver.

Changes: Runtime mode permissions menu

Layer / File(s) Summary
Resolve policy-aware runtime options
apps/web/src/components/chat/runtimeModeConfig.ts, apps/web/src/components/chat/ChatComposer.tsx
resolveRuntimeModeOptions maps supplied modes to their configurations and adds a disabled reason when managed policy denies a mode. ChatComposer uses the helper instead of local option filtering and denial-reason mapping.
Add the context-strip permissions menu
apps/web/src/components/ComposerContextPermissions.tsx, apps/web/src/components/ChatView.tsx, apps/web/src/components/chat/ComposerPermissionsSection.browser.test.tsx
ComposerContextPermissions resolves the compatible mode and renders ComposerPermissionsSection in a menu. ChatView passes supported modes and the mode-change callback. The browser test checks the menu options, mode selection, reopening, and Escape focus behavior.

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

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  actor User
  participant ChatView
  participant ComposerContextPermissions
  participant ComposerPermissionsSection
  ChatView->>ComposerContextPermissions: Pass runtime mode, supported modes, and change callback
  User->>ComposerContextPermissions: Open permissions menu
  ComposerContextPermissions->>ComposerPermissionsSection: Render resolved mode and available options
  User->>ComposerPermissionsSection: Select a runtime mode
  ComposerPermissionsSection->>ChatView: Call runtime-mode change callback
Loading

Possibly related issues

  • pingdotgg/t3code#29632 — This adds another runtime-mode picker entry point, but does not change draft-to-server synchronization.
  • pingdotgg/t3code#6508 — This makes runtime mode editable from the new-thread context strip, but does not add project-level preference persistence.

Suggested labels: size:S

Suggested reviewers: t3dotgg, macroscopeapp

Merge Risk: Low · up to c89e9

Escape can move focus to the editor instead of the permissions trigger, disrupting keyboard navigation. The localized issue can be addressed in follow-up.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Description check Warning The description clearly explains the problem, change, and verification. It does not provide the required scope and approval information. It also mentions screenshots without embedding or linking them,… Add a Scope and approval section with the linked issue or maintainer approval, or explain why this focused fix qualifies for an exemption. Embed or link the before/after screenshots. Clarify whether the browser regression test was run and s…
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title names the main change: the new thread context strip now opens the full permissions menu directly. The changeset adds ComposerContextPermissions menu behavior, runtime mode option resolution,…
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.
Full details: Title check

Explanation

The title names the main change: the new thread context strip now opens the full permissions menu directly. The changeset adds ComposerContextPermissions menu behavior, runtime mode option resolution, and a browser test for that flow. The title is a conventional commit in plain language and fits the diff. "Full access" is a specific mode name, and the menu also offers other supported modes, so the title is slightly narrower than the feature but still accurate.

Full details: Description check

Explanation

The description clearly explains the problem, change, and verification. It does not provide the required scope and approval information. It also mentions screenshots without embedding or linking them, and it conflicts with the objective stating that the browser test was not run.

Resolution

Add a Scope and approval section with the linked issue or maintainer approval, or explain why this focused fix qualifies for an exemption. Embed or link the before/after screenshots. Clarify whether the browser regression test was run and state its actual result.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 12ec17c and c89e921.

Files selected for processing: 5
  • apps/web/src/components/ChatView.tsx
  • apps/web/src/components/ComposerContextPermissions.tsx
  • apps/web/src/components/chat/ChatComposer.tsx
  • apps/web/src/components/chat/ComposerPermissionsSection.browser.test.tsx
  • apps/web/src/components/chat/runtimeModeConfig.ts

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

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Fix comments: Fix CodeRabbit comments on this PR

@Yash-Singh1
Yash-Singh1 merged commit 3d369d5 into main Nov 3, 2026
32 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3/direct-full-access-menu branch November 3, 2026 17:47
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Nov 3, 2026
**v0.1.7-nightly.20261103.4138** · 16 changes from 5 contributors

- **Refresh provider status.** Refresh provider status directly from thread banners without opening Settings.
- **Choose a project for new threads.** Open the project picker from the sidebar header or new-thread shortcut, including for projects without active threads.

### Plus 13 more bug fixes.

<details>
<summary>Full changelog</summary>

## What's Changed
* fix(pi): short-lived Pi processes no longer lose rotated OAuth tokens by @astarktc in pingdotgg/t3code#30187
* feat(web): add refresh to provider status banners by @UtkarshUsername in pingdotgg/t3code#24861
* fix(server): side chats no longer open with a model switch from the parent's turn by @saphid in pingdotgg/t3code#29752
* fix(web): copied code blocks keep their blank lines in lists, quotes and longer fences by @saphid in pingdotgg/t3code#29755
* fix(web): compact model picker row indicators by @UtkarshUsername in pingdotgg/t3code#26415
* fix(web): open project picker from boring sidebar's header by @UtkarshUsername in pingdotgg/t3code#26495
* fix(client): project removal counts only listed threads, not side chats or subagents by @saphid in pingdotgg/t3code#29917
* fix(opencode): text generation errors explain known provider failures without raw provider text by @saphid in pingdotgg/t3code#29877
* fix(mobile): multi-file patches show every changed file by @saphid in pingdotgg/t3code#29878
* fix(server): handoff context names every file of a multi-file patch by @saphid in pingdotgg/t3code#29905
* fix(server): commits and PR text see changes outside a subfolder project under diff.relative by @saphid in pingdotgg/t3code#29879
* fix(web): opening a project from the command palette no longer lands in a subagent or side chat by @saphid in pingdotgg/t3code#29891
* fix(web): device host checks show the error without a stack trace by @saphid in pingdotgg/t3code#29912
* feat(web): open full access menu from the new thread context strip by @Yash-Singh1 in pingdotgg/t3code#30275
* fix(web): long server lists in thread details now page 4 at a time by @Bil0000 in pingdotgg/t3code#28684
* fix(web): keep the project filter menu aligned with its trigger by @Yash-Singh1 in pingdotgg/t3code#30282

## New Contributors
* @astarktc made their first contribution in pingdotgg/t3code#30187

**Full Changelog**: pingdotgg/t3code@v0.1.7-nightly.20261103.4119...v0.1.7-nightly.20261103.4138

</details>


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

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant