fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(grok): Supervised asks and Always allow works - #6626

Closed
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session
Closed

fix(grok): Supervised asks and Always allow works#6626
mbrow190 wants to merge 2 commits into
pingdotgg:mainfrom
mbrow190:fix/grok-always-allow-session

Conversation

@mbrow190

@mbrow190mbrow190 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What Changed

Grok Supervised now asks before commands, even when the local Grok CLI is set to always-approve. Always allow this session no longer cancels the turn. The next command in that thread does not ask again.

T3 starts Supervised Grok with --permission-mode default so the thread mode wins over ~/.grok/config.toml. Full access still starts Grok with --always-approve. If Grok omits ACP allow_always, Always allow falls back to allow_once and remembers the choice for the rest of the session.

This matches Codex and OpenCode. The composer control is the contract for the thread. Local always-approve stays for the Grok TUI.

Why

Clicking Always allow on Grok 4.6 stopped the turn. Grok often only offers allow-once. T3 mapped a missing allow_always to cancelled.

A second hole sat in front of that. Users with [ui] permission_mode = "always-approve" never saw the bar. Supervised was a label only. Grok ran bash with no session/request_permission.

UI Changes

No new chrome. The existing approval bar now appears on Supervised Grok threads.

Verified in T3 Code (Dev) on macOS against a live Grok 4.6 CLI with always-approve still in config.toml. New Supervised thread asked. Always allow continued the turn. The follow-up command did not ask again. Nightly was left unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes (not applicable)

Fixes#6502

Implemented with Grok 4.6 through T3 Code.


Note

Medium Risk
Changes Grok spawn flags and permission decision mapping (approval/security path), but scope is limited to the Grok adapter with targeted tests and no broad auth refactor.

Overview
Fixes Grok Supervised and Always allow this session so they match other providers and Grok 4.6 behavior.

Supervised / Full access: Spawning Grok now passes T3 runtimeMode into CLI args (--permission-mode default for Supervised, --always-approve for Full access, plus mappings for auto modes), so thread mode wins over local ~/.grok always-approve settings.

Always allow: When the user chooses session-wide approval but ACP only offers allow_once (common on Grok 4.6), the adapter selects allow_once instead of cancelling the turn, sets sessionAllowAll, and auto-approves later permission prompts for that session (same path as full-access).

The ACP mock agent gains env toggles to omit allow_always and emit multiple permission requests; unit and integration tests cover option selection and end-to-end flow. User docs note Grok permission-mode mapping.

Reviewed by Cursor Bugbot for commit f9a312e. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Grok supervised mode permission handling and 'Always allow' session behavior

  • Maps acceptForSession to allow_once in selectGrokPermissionOptionId when Grok omits the allow_always option, preventing a silent failure to select a permission option.
  • Adds a sessionAllowAll flag in makeGrokAdapter so subsequent permission requests are auto-approved after the user picks 'Always allow this session', even when allow_always is absent from Grok's options.
  • Propagates runtimeMode into the Grok ACP spawn args via grokAcpSpawnArgs, mapping approval-required--permission-mode default and full-access--always-approve, so supervised sessions always prompt even if Grok CLI config says always-approve.
  • Updates permission-modes.md to document Grok's behavior under Supervised and Full access modes.
  • Behavioral Change: Grok sessions in approval-required mode now explicitly pass --permission-mode default to the CLI, overriding any always-approve setting in a user's local Grok config.

Macroscope summarized f9a312e.

Grok 4.6 often omits ACP allow_always. T3 still shows Always allow this
session, then mapped a missing option to cancelled. Fall back to
allow_once and remember the choice for the rest of the session.
Fixespingdotgg#6502
T3 only shows approval if Grok sends session/request_permission. A local
[ui] permission_mode = always-approve made Supervised a no-op. Start
Supervised sessions with grok --permission-mode default so the thread
mode wins. Full access still passes --always-approve.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b449beb-3d36-41c7-b925-a93da91a2af3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 14, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces runtime behavior changes to permission handling: a new sessionAllowAll flag for auto-approving subsequent requests, fallback logic when allow_always is unavailable, and forced CLI permission mode args. These changes affect how the approval system works and warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

I am closing this because #8358 has landed in main and covers the same Grok permission modes and session approvals. I checked the current implementation and did not find any remaining change from this PR that we still need to merge.

Thank you for putting this together. The closure is only because the work is now covered elsewhere, not because there was a problem with your contribution.

@t3dotggt3dotgg closed this Aug 27, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Always allow in this session stops Grok 4.6

2 participants

@mbrow190@t3dotgg