Skip to content

Disable unused Codex plugin startup checks - #57004

Merged
pelikhan merged 6 commits into
mainfrom
copilot/review-codex-docs-disable-checks
Aug 30, 2026
Merged

Disable unused Codex plugin startup checks#57004
pelikhan merged 6 commits into
mainfrom
copilot/review-codex-docs-disable-checks

Conversation

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Codex enables plugins by default, causing API-key and BYOK runs to contact unavailable ChatGPT catalogs and synchronize curated plugins at startup. Codex provides no sync-only disable switch.

  • Runtime
    • Pass features.plugins=false when no Agent Plugins are declared.
    • Keep the plugin subsystem enabled for workflows that declare plugins.
codex exec -c features.plugins=false …
  • Documentation

    • Document BYOK behavior, the configuration tradeoff, and that direct MCP servers remain unaffected.
  • Generated workflows

    • Regenerate affected lock files.
    • Add a patch changeset.

⚠️ This is an automated status report. Do not assign this issue to a Copilot agent.

Overview

Processed the current compact PR candidate set and nudged the highest-priority eligible pull requests. PRs with actively running recent checks were skipped to avoid duplicate churn.

Counters

Counter Value
processed 6
skipped_checks_running 3
skipped_last_comment_from_sous_chef 0
skipped_cooldown 0
zero_diff_stalled 0
nudged 3
branch_update_attempts 3
formatter_pushes 0
approved_workflow_runs 0
merge_main_scheduled 0
resolved_review_threads 0
dismissed_reviews 0
Nudged PRs
Skipped details

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 41.6 AIC · ⌖ 8.97 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot use toml config

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

@copilot use toml config

Updated in b4e6e79: features.plugins = false is now written to the generated Codex config.toml instead of passed as a CLI override.

@pelikhan
pelikhan marked this pull request as ready for review August 30, 2026 00:52
Copilot AI balanced review requested due to automatic review settings August 30, 2026 00:52
@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

No ADR enforcement needed: PR does not have the 'implementation' label and has <=100 new lines of code in business logic directories.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

⚠️ Security scanning failed for Ponytail Reviewer. Review the logs for details.

Lean already. Ship.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Ponytail Reviewer for #57004

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-08-30T00:55:05Z
review_event: REQUEST_CHANGES
top_themes:
  - nil workflowData panic in Codex plugin gating
files_reviewed:
  - .changeset/patch-disable-unused-codex-plugins.md
  - docs/src/content/docs/engines/codex.md
  - pkg/workflow/codex_engine_test.go
  - pkg/workflow/codex_mcp.go
comment_count: 1

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 34.7 AIC · ⌖ 8.58 AIC · ⊞ 21.8K ·
Comment /review to run again

@github-actions github-actions 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.

Requesting changes

This change introduces a nil-dereference path in Codex config generation.

Blocking theme

RenderMCPConfig now reads workflowData.Plugins unconditionally when deciding whether to emit features.plugins=false. Other accesses in the same method are explicitly nil-safe, and WorkflowData.getContainerPinMappings() exists specifically to tolerate absent workflow metadata. That makes this a real regression: any caller that renders Codex MCP config without a populated WorkflowData will now panic instead of producing config.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 34.7 AIC · ⌖ 8.58 AIC · ⊞ 21.8K
Comment /review to run again

Comment thread pkg/workflow/codex_mcp.go Outdated
if isFirewallEnabled(workflowData) {
e.renderOpenAIProxyProviderToml(&shellPolicyContent, " ", workflowData)
}
if len(workflowData.Plugins) == 0 {

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.

Reading workflowData.Plugins unconditionally here is a regression: RenderMCPConfig otherwise tolerates a nil WorkflowData, so this branch can now panic during Codex config generation for callers that omit workflow metadata.

💡 Guard the plugin check with the same nil-safety used elsewhere

Use workflowData == nil || len(workflowData.Plugins) == 0 (or an equivalent helper) before emitting [features] plugins = false. That preserves the intended default of disabling plugins when none are declared without turning an absent WorkflowData into a hard crash.

if workflowData == nil || len(workflowData.Plugins) == 0 {
    shellPolicyContent.WriteString("          [features]\n")
    shellPolicyContent.WriteString("          plugins = false\n")
}

This is worth fixing before merge because it converts a config-generation path into a panic, not just a wrong setting.

@github-actions github-actions 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.

Skills-Based Review 🧠

Applied /codebase-design — changes are clean, implementation is correct, and lock files are consistently regenerated.

📋 Key Themes & Highlights

Key Themes

  • Correct guard condition: len(workflowData.Plugins) == 0 maps cleanly to the described intent.
  • Test coverage is solid: both "disabled when none declared" and "kept enabled when one is declared" cases are covered in TestCodexEnginePluginConfig, and the existing TestCodexEngineRenderMCPConfig snapshot is updated.
  • Documentation is clear: the codex.md addition accurately describes the behaviour including the caveat that directly configured MCP servers are unaffected.

Positive Highlights

  • [features] block is placed before [shell_environment_policy], preserving logical grouping in the generated TOML.
  • ✅ Lock file regeneration is consistent across all 79 changed workflow lock files — no partial rollout risk.
  • ✅ Changeset entry is accurately scoped to patch.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet46 · 33.6 AIC · ⌖ 15 AIC · ⊞ 7.6K
Comment /matt to run again

@github-actions github-actions 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.

The changes look correct and consistent. Every Codex config.toml heredoc across the compiled .lock.yml files gets [features] plugins = false injected immediately after the supports_websockets line, and the heredoc delimiter hashes are updated to match the new content. The changeset note accurately describes the intent: disabling the plugin subsystem when no Agent Plugins are declared prevents unsupported ChatGPT plugin catalog and curated repository startup checks during API-key and BYOK runs. No issues found.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet46 · 20.7 AIC · ⌖ 14.6 AIC · ⊞ 6.2K

Copilot AI 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.

🟡 Changes recommended

The generated [features] table conflicts with valid custom Codex TOML containing the same table, producing an invalid configuration.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Disables Codex’s plugin subsystem when workflows declare no Agent Plugins, avoiding unnecessary startup synchronization.

Changes:

  • Emits features.plugins=false conditionally and adds tests.
  • Documents behavior and adds a patch changeset.
  • Regenerates affected workflow locks.
File summaries
File Description
pkg/workflow/codex_mcp.go Generates conditional Codex plugin configuration.
pkg/workflow/codex_engine_test.go Tests plugin enablement behavior.
docs/src/content/docs/engines/codex.md Documents the configuration tradeoff.
.changeset/patch-disable-unused-codex-plugins.md Adds the patch release note.
.github/workflows/ace-editor.lock.yml Regenerates Codex configuration.
.github/workflows/agentic-token-trend-audit.lock.yml Regenerates Codex configuration.
.github/workflows/ai-moderator.lock.yml Regenerates Codex configuration.
.github/workflows/api-consumption-report.lock.yml Regenerates Codex configuration.
.github/workflows/audit-workflows.lock.yml Regenerates Codex configuration.
.github/workflows/avenger.lock.yml Regenerates Codex configuration.
.github/workflows/bot-detection.lock.yml Regenerates Codex configuration.
.github/workflows/cli-version-checker.lock.yml Regenerates Codex configuration.
.github/workflows/cloclo.lock.yml Regenerates Codex configuration.
.github/workflows/codex-github-remote-mcp-test.lock.yml Regenerates Codex configuration.
.github/workflows/copilot-centralization-drilldown.lock.yml Regenerates Codex configuration.
.github/workflows/copilot-centralization-optimizer.lock.yml Regenerates Codex configuration.
.github/workflows/daily-architecture-diagram.lock.yml Regenerates Codex configuration.
.github/workflows/daily-cli-tools-tester.lock.yml Regenerates Codex configuration.
.github/workflows/daily-credit-limit-test.lock.yml Regenerates Codex configuration.
.github/workflows/daily-documentation-diagram.lock.yml Regenerates Codex configuration.
.github/workflows/daily-evals-report.lock.yml Regenerates Codex configuration.
.github/workflows/daily-go-test-parallelizer.lock.yml Regenerates Codex configuration.
.github/workflows/daily-max-ai-credits-test.lock.yml Regenerates Codex configuration.
.github/workflows/daily-observability-report.lock.yml Regenerates Codex configuration.
.github/workflows/daily-regulatory.lock.yml Regenerates Codex configuration.
.github/workflows/daily-semgrep-scan.lock.yml Regenerates Codex configuration.
.github/workflows/daily-spending-forecast.lock.yml Regenerates Codex configuration.
.github/workflows/daily-storify.lock.yml Regenerates Codex configuration.
.github/workflows/daily-windows-terminal-integration-builder.lock.yml Regenerates Codex configuration.
.github/workflows/dependabot-go-checker.lock.yml Regenerates Codex configuration.
.github/workflows/designer-drift-audit.lock.yml Regenerates Codex configuration.
.github/workflows/dev.lock.yml Regenerates Codex configuration.
.github/workflows/duplicate-code-detector.lock.yml Regenerates Codex configuration.
.github/workflows/example-failure-category-filter.lock.yml Regenerates Codex configuration.
.github/workflows/example-permissions-warning.lock.yml Regenerates Codex configuration.
.github/workflows/feature-grower.lock.yml Regenerates Codex configuration.
.github/workflows/front-page-copy-guard.lock.yml Regenerates Codex configuration.
.github/workflows/functional-pragmatist.lock.yml Regenerates Codex configuration.
.github/workflows/github-remote-mcp-auth-test.lock.yml Regenerates Codex configuration.
.github/workflows/gpclean.lock.yml Regenerates Codex configuration.
.github/workflows/grumpy-reviewer.lock.yml Regenerates Codex configuration.
.github/workflows/issue-monster.lock.yml Regenerates Codex configuration.
.github/workflows/issue-triage-agent.lock.yml Regenerates Codex configuration.
.github/workflows/metrics-collector.lock.yml Regenerates Codex configuration.
.github/workflows/necromancer.lock.yml Regenerates Codex configuration.
.github/workflows/notion-issue-summary.lock.yml Regenerates Codex configuration.
.github/workflows/outcome-collector.lock.yml Regenerates Codex configuration.
.github/workflows/pdf-summary.lock.yml Regenerates Codex configuration.
.github/workflows/ponytail-reviewer.lock.yml Regenerates Codex configuration.
.github/workflows/purelock.lock.yml Regenerates Codex configuration.
.github/workflows/python-data-charts.lock.yml Regenerates Codex configuration.
.github/workflows/refactoring-cadence.lock.yml Regenerates Codex configuration.
.github/workflows/repo-audit-analyzer.lock.yml Regenerates Codex configuration.
.github/workflows/repo-tree-map.lock.yml Regenerates Codex configuration.
.github/workflows/research.lock.yml Regenerates Codex configuration.
.github/workflows/schema-feature-coverage.lock.yml Regenerates Codex configuration.
.github/workflows/security-review.lock.yml Regenerates Codex configuration.
.github/workflows/sighthound-security-scan.lock.yml Regenerates Codex configuration.
.github/workflows/skillet.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-call-workflow.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-ci.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-codex.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-drive.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-otel-backends.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-service-ports.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-temporary-id.lock.yml Regenerates Codex configuration.
.github/workflows/smoke-test-tools.lock.yml Regenerates Codex configuration.
.github/workflows/stale-repo-identifier.lock.yml Regenerates Codex configuration.
.github/workflows/sub-issue-closer.lock.yml Regenerates Codex configuration.
.github/workflows/super-linter.lock.yml Regenerates Codex configuration.
.github/workflows/terminal-stylist.lock.yml Regenerates Codex configuration.
.github/workflows/update-astro.lock.yml Regenerates Codex configuration.
.github/workflows/video-analyzer.lock.yml Regenerates Codex configuration.
.github/workflows/weekly-issue-summary.lock.yml Regenerates Codex configuration.
.github/workflows/weekly-network-domains-audit.lock.yml Regenerates Codex configuration.
.github/workflows/weekly-safe-outputs-spec-review.lock.yml Regenerates Codex configuration.
.github/workflows/windows-grower.lock.yml Regenerates Codex configuration.
.github/workflows/windows.lock.yml Regenerates Codex configuration.
.github/workflows/workflow-normalizer.lock.yml Regenerates Codex configuration.
Review details
  • Files reviewed: 79/79 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread pkg/workflow/codex_mcp.go Outdated
Comment on lines +145 to +147
if len(workflowData.Plugins) == 0 {
shellPolicyContent.WriteString(" [features]\n")
shellPolicyContent.WriteString(" plugins = false\n")
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please address the latest blocking review feedback on this PR, including the nil workflowData panic noted by PR Code Quality Reviewer, then run the pr-finisher skill.

Failed checks to fix:

Please refresh the branch if needed while addressing the review comments.

Generated by 👨🍳 PR Sous Chef

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 41.6 AIC · ⌖ 8.97 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please address the latest blocking review feedback on this PR, including the nil workflowData panic noted by PR Code Quality Reviewer, then run the pr-finisher skill.

Failed checks to fix:...

Addressed the Codex TOML duplicate [features] issue and nil workflowData panic, with regression coverage and updated golden output. The fix is in the latest commit.

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI requested a review from gh-aw-bot August 30, 2026 01:31
@pelikhan

Copy link
Copy Markdown
Collaborator

/smoke-codex

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

Quiet runner hums,
Night scripts bloom in borrowed light,
Green checks greet the dawn.

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex · codex · gpt53codex · 4.81 AIC · ⊞ 14.3K ·
Comment /smoke-codex to run again

@pelikhan
pelikhan merged commit 505c116 into main Aug 30, 2026
43 checks passed
@pelikhan
pelikhan deleted the copilot/review-codex-docs-disable-checks branch August 30, 2026 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants