Skip to content

Fix Copilot SDK headless auth/driver path and tool-permission denials in daily workflows#37322

Merged
pelikhan merged 3 commits into
mainfrom
copilot/aw-failures-fix-copilot-headless-auth
Jun 6, 2026
Merged

Fix Copilot SDK headless auth/driver path and tool-permission denials in daily workflows#37322
pelikhan merged 3 commits into
mainfrom
copilot/aw-failures-fix-copilot-headless-auth

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jun 6, 2026

Two scheduled workflows using engine.copilot-sdk: true were failing consistently for different reasons: updater runs were routed through a Ruby sample driver (missing runtime + auth/session failure), and syntax-quality runs were blocked by strict SDK tool matching (read + compound shell(...) denials).
This PR aligns both workflows with the supported headless path and removes brittle permission mismatches.

  • Daily Workflow Updater: remove Ruby SDK driver override

    • Dropped engine.copilot-sdk-driver: .github/drivers/copilot_sdk_driver_sample_ruby.rb from daily-workflow-updater.md.
    • Resulting compiled workflow now uses the default Node SDK driver path, avoiding Ruby preflight failures and driver-path auth mismatch behavior.
  • Daily Syntax Error Quality: remove brittle per-command shell allowlist

    • Changed tools.bash from enumerated commands to bash: true in daily-syntax-error-quality.md.
    • Compiled workflow now emits --allow-all-tools for SDK headless mode, preventing repeated denials on compound shell command forms.
  • SDK permission normalization for read requests

    • Updated copilot_sdk_driver.cjs permission handler to allow read when shell is explicitly allowed.
    • This covers SDK permission requests where file reads are emitted separately from shell invocations in shell-enabled sessions.
  • Targeted regression coverage

    • Added a focused test case in copilot_sdk_driver.test.cjs asserting read is approved when allowedTools: ["shell"].
# daily-workflow-updater.md (engine)
engine:
  id: copilot
  copilot-sdk: true
  # removed: copilot-sdk-driver: .github/drivers/copilot_sdk_driver_sample_ruby.rb

# daily-syntax-error-quality.md (tools)
tools:
  cli-proxy: true
  bash: true

Copilot AI and others added 2 commits June 6, 2026 14:49
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix copilot-sdk headless mode breaking workflows Fix Copilot SDK headless auth/driver path and tool-permission denials in daily workflows Jun 6, 2026
Copilot AI requested a review from pelikhan June 6, 2026 14:59
@pelikhan pelikhan marked this pull request as ready for review June 6, 2026 15:03
Copilot AI review requested due to automatic review settings June 6, 2026 15:03
@pelikhan pelikhan merged commit d1d9241 into main Jun 6, 2026
@pelikhan pelikhan deleted the copilot/aw-failures-fix-copilot-headless-auth branch June 6, 2026 15:03
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes recurring failures in scheduled workflows that run with engine.copilot-sdk: true by aligning them to the supported headless SDK driver path and reducing tool-permission denials, plus a small SDK permission normalization and regression test.

Changes:

  • Removed the Ruby sample Copilot SDK driver override so the updater workflow uses the default Node-based headless driver path.
  • Relaxed the syntax-quality workflow shell permissions (bash: true) so the compiled workflow uses --allow-all-tools and avoids brittle per-command matching.
  • Updated the SDK permission handler to approve read requests when shell is explicitly allowed, and added a focused regression test.
Show a summary per file
File Description
pkg/workflow/data/action_pins.json Updates embedded action pin entries (not described in PR text).
pkg/actionpins/data/action_pins.json Mirrors the same embedded action pin updates for the actionpins package.
actions/setup/js/copilot_sdk_driver.cjs Permits read when shell is allowlisted in the SDK permission handler.
actions/setup/js/copilot_sdk_driver.test.cjs Adds regression coverage for read approval when allowedTools: ["shell"].
.github/workflows/daily-workflow-updater.md Removes the Ruby SDK driver override from the workflow definition.
.github/workflows/daily-workflow-updater.lock.yml Compiled workflow now invokes the Node SDK driver rather than the Ruby sample.
.github/workflows/daily-syntax-error-quality.md Switches from enumerated bash commands to bash: true.
.github/workflows/daily-syntax-error-quality.lock.yml Compiled workflow switches to --allow-all-tools instead of per-command --allow-tool shell(...) entries.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 8/8 changed files
  • Comments generated: 2

Comment on lines +176 to 180
"github/gh-aw-actions/setup@v0.76.1": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.78.2",
"sha": "268bf92726cb8153337c07166f382ee46e4fd897"
},
"github/gh-aw/actions/setup-cli@v0.78.2": {
"repo": "github/gh-aw/actions/setup-cli",
"version": "v0.78.2",
"sha": "a7d4043a8224182262356a32931099b76fd332eb"
"version": "v0.76.1",
"sha": "46d564922b082d0db93244972e8005ea6904ee5f"
},
Comment on lines +176 to 180
"github/gh-aw-actions/setup@v0.76.1": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.78.2",
"sha": "268bf92726cb8153337c07166f382ee46e4fd897"
},
"github/gh-aw/actions/setup-cli@v0.78.2": {
"repo": "github/gh-aw/actions/setup-cli",
"version": "v0.78.2",
"sha": "a7d4043a8224182262356a32931099b76fd332eb"
"version": "v0.76.1",
"sha": "46d564922b082d0db93244972e8005ea6904ee5f"
},
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.

[aw-failures] copilot-sdk: true headless mode breaks daily-workflow-updater (auth) + daily-syntax-error-quality (tool-denials) (P1)

3 participants