Skip to content

Update @github/copilot to 1.0.39#1167

Merged
stephentoub merged 2 commits intomainfrom
update-copilot-1.0.39
Apr 29, 2026
Merged

Update @github/copilot to 1.0.39#1167
stephentoub merged 2 commits intomainfrom
update-copilot-1.0.39

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Automated update of @github/copilot to version 1.0.39.

Changes

  • Updated @github/copilot in nodejs/package.json and test/harness/package.json
  • Re-ran all code generators (scripts/codegen)
  • Formatted generated output

Next steps

When ready, click Ready for review to trigger CI checks.

Created by the Update @github/copilot Dependency workflow.

- Updated nodejs and test harness dependencies
- Re-ran code generators
- Formatted generated code
@stephentoub stephentoub marked this pull request as ready for review April 29, 2026 15:36
@stephentoub stephentoub requested a review from a team as a code owner April 29, 2026 15:36
Copilot AI review requested due to automatic review settings April 29, 2026 15:36
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

Automated dependency bump of @github/copilot to 1.0.39 across the Node SDK and test harness, with regenerated multi-language session-event types to reflect updated schema fields.

Changes:

  • Updated @github/copilot version from ^1.0.39-0 to ^1.0.39 in Node packages and refreshed lockfiles.
  • Regenerated session-event models/types to include new optional fields (eligibleForAutoSwitch, errorCode, cause, retryAfterSeconds) across TS/Go/.NET/Python.
  • Updated the Node samples lockfile to reflect the new dependency graph via the local file:.. SDK link.
Show a summary per file
File Description
test/harness/package.json Bumps @github/copilot devDependency to ^1.0.39.
test/harness/package-lock.json Updates resolved @github/copilot (and platform optional deps) to 1.0.39.
nodejs/package.json Bumps @github/copilot dependency to ^1.0.39.
nodejs/package-lock.json Updates resolved @github/copilot (and platform optional deps) to 1.0.39.
nodejs/samples/package-lock.json Updates the linked SDK’s resolved dependency graph to @github/copilot@^1.0.39.
nodejs/src/generated/session-events.ts Adds new optional fields to generated session event data interfaces.
python/copilot/generated/session_events.py Adds new optional fields and (de)serialization support in generated session event dataclasses.
go/generated_session_events.go Adds new optional fields to generated Go session event structs.
dotnet/src/Generated/SessionEvents.cs Adds new nullable properties to generated .NET session event DTOs.

Copilot's findings

Files not reviewed (3)
  • nodejs/package-lock.json: Language not supported
  • nodejs/samples/package-lock.json: Language not supported
  • test/harness/package-lock.json: Language not supported
  • Files reviewed: 3/9 changed files
  • Comments generated: 0

Mirror the synchronization pattern from the 'approve' sibling: capture a
PermissionCompletedEvent task on session2 before subscribing and sending,
then await it before asserting that client2 observed PermissionRequestedEvent.
Without this wait, client2's event subscription could be asserted before the
event had propagated, causing intermittent failures (observed on macOS CI).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor Author

Cross-SDK Consistency Review ✅

This automated schema update (@github/copilot1.0.39) maintains full feature parity across all four SDK implementations. All new fields from the updated schema are present in every language with appropriate naming conventions:

Schema field Node.js Python Go .NET
eligibleForAutoSwitch (on ErrorData) eligibleForAutoSwitch?: boolean eligible_for_auto_switch: bool | None EligibleForAutoSwitch *bool EligibleForAutoSwitch bool?
errorCode (on ErrorData) errorCode?: string error_code: str | None ErrorCode *string ErrorCode string?
cause (on ModelChangeData) cause?: string cause: str | None Cause *string Cause string?
retryAfterSeconds (on AutoModeSwitchRequestedData) retryAfterSeconds?: number retry_after_seconds: float | None RetryAfterSeconds *float64 RetryAfterSeconds double?

No consistency issues found. The generated code follows each language's conventions (camelCase for TypeScript, snake_case for Python, PascalCase for Go exported fields and .NET properties).

Generated by SDK Consistency Review Agent for issue #1167 · ● 300.8K ·

@stephentoub stephentoub merged commit ecdc5ec into main Apr 29, 2026
36 checks passed
@stephentoub stephentoub deleted the update-copilot-1.0.39 branch April 29, 2026 16:38
tclem added a commit that referenced this pull request Apr 30, 2026
Closes "Mode 1 hands-off loop" gap A from the SDK release plan-doc:
update-copilot-dependency.yml is workflow_dispatch only today, so
when a new @github/copilot publishes nobody automatically opens the
regen PR. Today's bot-driven bump (commit ecdc5ec, "Update
@github/copilot to 1.0.39 (#1167)") was triggered manually after the
plan-doc session noticed the gap.

Goal: the SDK auto-detects new CLI versions, opens a draft PR with
all per-language regen + formatting + lockfile updates, and a human
just reviews + merges. github-app's bundled-binary tracker picks the
new SDK up via crates.io dependabot in the symmetric direction.

Changes:

1. **`schedule` trigger.** Daily cron at 10:00 UTC, deliberately
   symmetric with github-app's check-bundled-binary-versions.yml so
   the SDK and consumer halves of the loop tick in lockstep on
   release days.

2. **`version` input is now optional.** Manual override still works
   for emergency back-patches or cherry-picking specific
   prereleases; an empty input on workflow_dispatch flows through
   the same auto-detect path the schedule uses.

3. **Two-job split: `detect` -> `update`.** The detect job is cheap
   (one `npm view @github/copilot version` + a jq read of
   nodejs/package.json + a strip of the `^`/`~` prefix). It sets
   two outputs:
     - `version`: the resolved target (input override, or latest
       from npm)
     - `should_continue`: 'true' if the resolved version differs
       from the current pin, 'false' otherwise
   The update job has `needs: detect` and
   `if: needs.detect.outputs.should_continue == 'true'`, so it
   skips entirely when there's nothing to do. This keeps the
   no-op daily cost effectively free.

4. **Validation moves into the resolve step.** Both manual and
   auto-detected versions go through the same semver regex check.
   The previous standalone "Validate version input" step is
   retired; the detect job's resolve step now owns format
   validation, version comparison, and skip logic.

5. **All `${{ inputs.version }}` references become
   `${{ needs.detect.outputs.version }}`.** Same value, just routed
   through the detect job's outputs so manual override and
   auto-detect both feed the update job uniformly.

Doesn't touch SDK source; cargo test / cargo publish --dry-run are
no-op confirmation post-merge. Companion gap on the github-app side
(auto-open sync PR after each new SDK release) lives on Sync session
PR #4140; this commit unblocks the SDK half.

Plan-doc capture: tracked under "Steady-state CLI bump automation
(Mode 1 hands-off loop)" — gap A closed; gap B (github-app
sync-PR auto-open) remains.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

2 participants