Skip to content

Mark copilot-sdk mode as stable - #48978

Merged
pelikhan merged 6 commits into
mainfrom
copilot/mark-copilot-sdk-non-experimental
Jul 30, 2026
Merged

Mark copilot-sdk mode as stable#48978
pelikhan merged 6 commits into
mainfrom
copilot/mark-copilot-sdk-non-experimental

Conversation

Copilot AI commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

engine.copilot-sdk has been shipping and tested long enough to drop the experimental label. This removes the compiler warning and surfaces SDK mode as a first-class Copilot variant in the docs.

Changes

  • Compiler (compiler_validators.go): Remove engine.copilot-sdk from the experimental feature warnings list — workflows using copilot-sdk: true no longer emit a warning at compile time.
  • Tests (copilot_sdk_experimental_warning_test.go): Update test expectations to assert no warning is produced for copilot-sdk: true.
  • Docs (engines.md): Add "GitHub Copilot (SDK mode)" as a distinct row in the Available Coding Agents table:
    | GitHub Copilot (SDK mode) | copilot + copilot-sdk: true | same as Copilot CLI |
    
  • Docs (frontmatter-full.md): Remove the word "experimental" from the copilot-sdk field comment.
  • Changeset: Minor bump entry.

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 12.8 AIC · ⌖ 5.67 AIC · ⊞ 7.8K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · gpt54 · 6.44 AIC · ⌖ 4.57 AIC · ⊞ 7.8K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · gpt54 · 14.8 AIC · ⌖ 5.8 AIC · ⊞ 7.8K ·
Comment /souschef to run again


Run: https://github.com/github/gh-aw/actions/runs/30503727864

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 5.5 AIC · ⌖ 8.58 AIC · ⊞ 7.8K ·
Comment /souschef to run again

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title Mark copilot-sdk mode as non-experimental Mark copilot-sdk mode as stable Jul 29, 2026
Copilot AI requested a review from pelikhan July 29, 2026 20:54
@pelikhan
pelikhan marked this pull request as ready for review July 29, 2026 20:57
Copilot AI review requested due to automatic review settings July 29, 2026 20:57

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.

Pull request overview

Promotes Copilot SDK mode to stable across compiler behavior and primary documentation.

Changes:

  • Removes the experimental compiler warning.
  • Updates warning regression tests.
  • Documents SDK mode as a first-class Copilot variant.
Show a summary per file
File Description
pkg/workflow/compiler_validators.go Removes the SDK experimental warning.
pkg/workflow/copilot_sdk_experimental_warning_test.go Updates warning expectations.
docs/src/content/docs/reference/frontmatter-full.md Removes the experimental label.
docs/src/content/docs/reference/engines.md Adds SDK mode to the engine table.
.changeset/minor-copilot-sdk-non-experimental.md Records the minor release change.

Review details

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 2
  • Review effort level: Medium

tool-timeout: "example-value"

# Enables the experimental GitHub Copilot SDK integration (copilot engine only).
# Enables the GitHub Copilot SDK integration (copilot engine only).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in commit 34aa776. Updated both remaining references:

  • .github/aw/syntax-agentic.md:303: removed experimental, from (experimental, copilot only)(copilot only)
  • pkg/workflow/README.md:150: removed **(Experimental)** from the CopilotSDK field description

# Test Workflow
`,
expectWarning: true,
expectWarning: false,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in commit 34aa776. Renamed the test to TestCopilotSDKNoExperimentalWarning, removed the expectWarning bool field and the dead positive-warning branch entirely, matching the pattern used in TestExperimentsNoExperimentalWarning and TestGuardPolicyNoExperimentalWarning.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

Warning

threat detection engine error
The threat detection engine encountered an error and could not complete analysis. This is a tooling failure, not a security finding.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check.

No ADR enforcement needed: PR does not have the implementation label and has only 2 new lines of code in business logic directories (threshold: 100).

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Warning

threat detection engine error
The threat detection engine encountered an error and could not complete analysis. This is a tooling failure, not a security finding.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

Great work! 🎉 This PR looks ready for review. The change cleanly removes the "experimental" designation from copilot-sdk mode across compiler warnings, tests, and documentation. The PR is well-focused, includes updated test expectations, and has a clear description of the motivation and scope.

✅ All checklist items pass:

  • Change is on-topic (agentic development workflow expected from core team bots)
  • Single focused change (stability milestone for copilot-sdk)
  • Tests updated to reflect the change
  • Clear, detailed PR description

Generated by ✅ Contribution Check · aut00 · 49.4 AIC · ⊞ 8.7K ·

@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 are clean and well-scoped: removing copilot-sdk from the experimental warnings list, updating the test expectation, and surfacing SDK mode in docs all consistently reflect the graduation to stable. No blocking issues found.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · sonnet46 · 14 AIC · ⌖ 5.9 AIC · ⊞ 5.3K

@github-actions

Copy link
Copy Markdown
Contributor

Warning

threat detection engine error
The threat detection engine encountered an error and could not complete analysis. This is a tooling failure, not a security finding.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

🧪 Test Quality Sentinel Report

Test Quality Score: N/A — Expectation Update

No new tests were added or modified in this PR. The change updates expectations in an existing table-driven test (TestCopilotSDKExperimentalWarning) to reflect that copilot-sdk is now marked as stable rather than experimental.

📊 Analysis Details
Signal Value
Test files modified 1
New test functions 0
Modified test cases 1 (expectation values only)
Test file: copilot_sdk_experimental_warning_test.go Table-driven; 3 scenarios tested
Build tag //go:build integration present
Violations ✅ None

Test Quality (Existing Test):

  • ✅ Table-driven test structure with multiple scenarios
  • ✅ Proper test file/directory setup with cleanup
  • ✅ Stderr capture for warning output verification
  • ✅ Both positive and negative assertions (checks for message presence/absence)
  • ✅ Warning count verification
  • ✅ Error handling with descriptive failure messages

Verdict

Passed. Test expectations properly updated to match feature stability change. Existing test maintains high quality and provides good behavioral coverage. No new code or test functions require analysis.

🧪 Test quality analysis by Test Quality Sentinel · haiku45 · 14.2 AIC · ⊞ 8.4K ·
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.

✅ Test Quality Sentinel: Expectation update in existing high-quality test. No new tests to analyze; existing test maintains robust coverage (table-driven, stderr capture, error assertions). No violations.

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

REQUEST_CHANGES

Doc lifecycle wording is inconsistent across surfaces, and the updated test has dead/misleading assertions.

💡 Themes
  • Inconsistent stability claims: frontmatter-full.md now calls copilot-sdk stable, but .github/aw/syntax-agentic.md:303 and pkg/workflow/README.md:150-151 still label it experimental. This should be reconciled before merge.
  • Dead test code: copilot_sdk_experimental_warning_test.go now sets expectWarning: false for every case, making the expectWarning==true branch unreachable and the expectedMessage string stale. Not a functional bug, but reduces test clarity/maintainability.

Core compiler/changeset changes themselves are correct and minimal.

🔎 Code quality review by PR Code Quality Reviewer · aut00 · 30.5 AIC · ⌖ 7.23 AIC · ⊞ 7.8K
Comment /review to run again

tool-timeout: "example-value"

# Enables the experimental GitHub Copilot SDK integration (copilot engine only).
# Enables the GitHub Copilot SDK integration (copilot engine only).

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.

Marking this stable here contradicts two other docs that still call copilot-sdk experimental, leaving readers with conflicting lifecycle guidance.

💡 Details

.github/aw/syntax-agentic.md:303 still says **copilot-sdk/engine.driver** (experimental, copilot only) and pkg/workflow/README.md:150-151 still labels CopilotSDK/Driver as **(Experimental)**. If this PR's intent is to declare the feature stable, all doc surfaces referencing its maturity should be updated together; otherwise a reader following the frontmatter reference will get a different lifecycle status than the syntax guide or generated field docs.

Fix: update the three references consistently (either all say stable, or clarify why frontmatter differs).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in commit 34aa776. Both references are now consistent:

  • .github/aw/syntax-agentic.md:303: (experimental, copilot only)(copilot only)
  • pkg/workflow/README.md:150: **(Experimental)** Enables GitHub Copilot SDK integrationEnables GitHub Copilot SDK integration

# Test Workflow
`,
expectWarning: true,
expectWarning: false,

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.

With every case now setting expectWarning: false, the if tt.expectWarning branch (checking for the warning message and GetWarningCount() > 0) is unreachable dead code.

💡 Details

Since the compiler no longer emits "Using experimental feature: engine.copilot-sdk" at all, this test can never exercise the positive-warning branch (lines ~97-105), and expectedMessage now refers to a warning string that doesn't exist anywhere in the compiler. The test still passes, but it's misleading: a future reader might think the warning path is still tested. Consider simplifying the test to just assert no warning is ever produced (drop the now-dead expectWarning/branch logic), matching the pattern used in experiments_experimental_warning_test.go for other stabilized features.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in commit 34aa776. Removed the expectWarning bool struct field and the unreachable positive-warning code path. The test now directly asserts no warning is produced, matching TestExperimentsNoExperimentalWarning and TestGuardPolicyNoExperimentalWarning.

@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 — the change is clean and well-scoped. The two existing review comments (stale experimental references in other docs, and dead positive-branch test code) are the highest-impact items; no new blocking issues found.

📋 Highlights

Positive Highlights

  • ✅ Compiler change is surgical — removes exactly one entry from the experimental-feature list
  • ✅ Test name and assertion updated in sync with the behaviour change
  • ✅ Docs table row uses correct engine value (copilot + copilot-sdk: true)
  • ✅ Changeset entry is accurate and bumped at the right level (minor)

Existing Comments to Address

  1. Stale experimental references — other docs files still describe copilot-sdk as experimental; those should be updated for consistency.
  2. Dead test branch — after flipping expectWarning to false for all cases, the positive-warning branch in the test helper becomes unreachable; either add a new test case that exercises it or remove the dead branch.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 · 19.3 AIC · ⌖ 6.63 AIC · ⊞ 7K
Comment /matt to run again

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

…ocs and clean up test

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

Copilot AI commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@copilot please run the pr-finisher skill, address the unresolved review feedback, and rerun any needed checks. Unresolved review threads:

  • [github-actions: lifecycle wording is inconsistent across...

Addressed all four threads in commit Address review feedback: remove experimental label from copilot-sdk docs and clean up test:

  • syntax-agentic.md:303 — changed (experimental, copilot only) to (copilot only) for the copilot-sdk / engine.driver description.
  • pkg/workflow/README.md:150 — removed **(Experimental)** from the CopilotSDK row in the engine config table.
  • copilot_sdk_experimental_warning_test.go — renamed function to TestCopilotSDKNoExperimentalWarning, removed the expectWarning bool field and the now-unreachable positive-warning code path, following the same pattern as TestExperimentsNoExperimentalWarning and TestGuardPolicyNoExperimentalWarning.

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.

Review details

Comments suppressed due to low confidence (1)

.github/aw/syntax-agentic.md:303

  • This removes the experimental label from the combined copilot-sdk / engine.driver entry, but the PR only stabilizes SDK mode and pkg/workflow/README.md:151 still explicitly marks engine.driver experimental. The agent guidance would therefore present custom drivers as stable. Keep the experimental qualifier on engine.driver while promoting only copilot-sdk.
  - **`copilot-sdk` / `engine.driver`** (copilot only): set `copilot-sdk: true` to start a headless Copilot CLI SDK sidecar. Set `driver: <path-or-command>` on the copilot engine to supply a custom SDK driver (`.js`/`.cjs`/`.mjs`/`.py`/`.ts`/`.mts`/`.rb`, or a bare PATH command); this also enables `copilot-sdk: true` automatically. Tune the repeated-tool-denial safeguard with the top-level `max-tool-denials:` field (default `5`).
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Medium

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot please run the pr-finisher skill, address unresolved review feedback, and rerun checks once the branch is up to date.

Reviewer feedback to address:

  • github-actions: ### Skills-Based Review 🧠 Applied /codebase-design — the change is clean and well-scoped. The two existing review comments (stale experimental references in other docs, and dead positive-branch test code) are the
  • github-actions: ### REQUEST_CHANGES Doc lifecycle wording is inconsistent across surfaces, and the updated test has dead/misleading assertions.
    💡 Themes - Inconsistent stability claims: `frontmatter-full

Run: https://github.com/github/gh-aw/actions/runs/30497974805

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 14.8 AIC · ⌖ 5.8 AIC · ⊞ 7.8K ·
Comment /souschef to run again

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

Copilot AI commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@copilot please run the pr-finisher skill, address unresolved review feedback, and rerun checks once the branch is up to date.

Reviewer feedback to address:...

All review feedback is addressed. The latest commit (fix: clarify engine.driver is still experimental in syntax-agentic.md) also fixes the subtle inconsistency flagged in the copilot-pull-request-reviewer's suppressed comment: the combined copilot-sdk / engine.driver entry in .github/aw/syntax-agentic.md now clearly marks engine.driver as (experimental, copilot only) while copilot-sdk is labeled only as (copilot only) — matching the stable status in pkg/workflow/README.md:150-151.

Summary of all changes across this PR:

  • compiler_validators.go: engine.copilot-sdk removed from experimental warnings list
  • copilot_sdk_experimental_warning_test.go: renamed to TestCopilotSDKNoExperimentalWarning, expectWarning bool field and dead positive-branch removed
  • docs/reference/engines.md: SDK mode added as a first-class Copilot variant row
  • docs/reference/frontmatter-full.md: "experimental" removed from copilot-sdk description
  • pkg/workflow/README.md: **(Experimental)** removed from CopilotSDK field only (Driver stays experimental)
  • .github/aw/syntax-agentic.md: copilot-sdk and engine.driver split into distinct labels — copilot-sdk is now (copilot only) while engine.driver keeps (experimental, copilot only)

All unit tests pass.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot please run the pr-finisher skill, review the latest feedback on this PR, address any unresolved reviewer requests, and rerun checks once the branch is up to date. Run context: https://github.com/github/gh-aw/actions/runs/30503727864

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 5.5 AIC · ⌖ 8.58 AIC · ⊞ 7.8K ·
Comment /souschef to run again

@github-actions

Copy link
Copy Markdown
Contributor

Triage: Mark copilot-sdk mode as stable

  • Category: chore | Risk: medium | Score: 42/100 (Impact 20, Urgency 10, Quality 12)
  • Recommendation: defer — documentation/status change with mixed reviews (2 approve / 1 changes-requested) and currently blocked (merge conflicts). Resolve requested changes + conflicts before re-review.

Generated by 🔧 PR Triage Agent · aut00 · 52.7 AIC · ⌖ 9.26 AIC · ⊞ 7.9K ·

Copilot AI commented Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

@copilot please run the pr-finisher skill, review the latest feedback on this PR, address any unresolved reviewer requests, and rerun checks once the branch is up to date. Run context: https://githu...

All reviewer feedback was addressed in previous commits — no new unresolved threads since the latest push (50b7417). Summary of the full change set:

  • compiler_validators.go: engine.copilot-sdk removed from experimental warnings
  • copilot_sdk_experimental_warning_test.go: dead expectWarning branch removed; test renamed to TestCopilotSDKNoExperimentalWarning
  • docs/reference/engines.md: SDK mode added as a first-class Copilot variant
  • docs/reference/frontmatter-full.md: "experimental" removed from copilot-sdk description
  • pkg/workflow/README.md: **(Experimental)** removed from CopilotSDK only
  • .github/aw/syntax-agentic.md: copilot-sdk and engine.driver split — copilot-sdk is (copilot only), engine.driver keeps (experimental, copilot only)
  • .changeset/minor-copilot-sdk-non-experimental.md: minor bump entry added

The action_required CI checks (CWI, CGO, Doc Build) require maintainer approval to run on this branch.

@github-actions

Copy link
Copy Markdown
Contributor

Triage Summary

  • Category: chore
  • Risk: low
  • Priority Score: 29/100 (impact 15 + urgency 6 + quality 8)
  • Recommended Action: defer

Doc/compiler flag change; PR is in blocked (merge-conflict) state — needs rebase. Low urgency.

Generated by 🔧 PR Triage Agent · auto · 54.9 AIC · ⌖ 5.64 AIC · ⊞ 7.9K ·

@pelikhan
pelikhan merged commit d72a3ee into main Jul 30, 2026
30 checks passed
@pelikhan
pelikhan deleted the copilot/mark-copilot-sdk-non-experimental branch July 30, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants