Skip to content

Update @github/copilot to 0.0.411-0#491

Merged
SteveSandersonMS merged 6 commits intomainfrom
stevesa/update-copilot-pkg
Feb 17, 2026
Merged

Update @github/copilot to 0.0.411-0#491
SteveSandersonMS merged 6 commits intomainfrom
stevesa/update-copilot-pkg

Conversation

@SteveSandersonMS
Copy link
Contributor

@SteveSandersonMS SteveSandersonMS commented Feb 17, 2026

Updates the @github/copilot package to version 0.0.411-0 and regenerates SDK types for all languages (TypeScript, C#, Python, Go).

Also add some Copilot-authored E2E tests for the new RPC features.

SteveSandersonMS and others added 2 commits February 17, 2026 10:21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SteveSandersonMS SteveSandersonMS requested a review from a team as a code owner February 17, 2026 10:25
Copilot AI review requested due to automatic review settings February 17, 2026 10:25
@SteveSandersonMS SteveSandersonMS changed the title chore: update @github/copilot to 0.0.411-0 Update @github/copilot to 0.0.411-0 Feb 17, 2026
@github-actions
Copy link

Cross-SDK Consistency Review ✅

I've reviewed this PR for consistency across all four SDK implementations (TypeScript, Python, Go, .NET).

Summary

This PR updates the @github/copilot package to version 0.0.411-0 and regenerates SDK types. The changes add several new APIs across all languages:

  1. Session Mode API (session.mode.get, session.mode.set)
  2. Session Plan API (session.plan.read, session.plan.update, session.plan.delete)
  3. Session Workspace API (session.workspace.list_files, session.workspace.read_file, session.workspace.create_file)
  4. Session Fleet API (session.fleet.start)
  5. New Events (session.mode_changed, session.plan_changed, session.workspace_file_changed)

Consistency Analysis

Feature Parity: All four SDKs received the same set of new types and APIs

API Structure: Method names follow proper language conventions:

  • TypeScript: camelCase (e.g., mode.get(), mode.set())
  • Python: snake_case (e.g., mode.get(), mode.set())
  • Go: PascalCase for exported (e.g., Mode.Get(), Mode.Set())
  • .NET: PascalCase (e.g., Mode.GetAsync(), Mode.SetAsync())

⚠️ Type Safety Variation: There's a difference in how the Mode type is represented across languages:

Language Implementation Type Safety
TypeScript String literal union: "interactive" | "plan" | "autopilot" ✅ Compile-time checked
Python Enum class with AUTOPILOT, INTERACTIVE, PLAN ✅ Runtime validated
Go Typed string with constants: Autopilot, Interactive, Plan ✅ Type-safe with constants
.NET Plain string ⚠️ No compile-time validation

Recommendation

The .NET implementation uses plain string types for mode values, while all other languages provide some form of type safety or validation. This is not necessarily an inconsistency requiring immediate action—it could be an intentional design choice based on how the code generator works for C#.

However, if stronger type safety is desired in .NET (similar to other languages), consider:

  • Adding a Mode enum or using string constants for the valid mode values
  • Or documenting that this is by design (if the generator doesn't support enum generation)

Overall Assessment: ✅ The PR maintains excellent cross-SDK consistency. All languages receive the same features with proper naming conventions. The Mode type difference is a minor variation in type safety approach rather than a breaking inconsistency.

AI generated by SDK Consistency Review Agent

Copy link
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

Updates the monorepo’s pinned @github/copilot schema package to 0.0.411-0 and regenerates the language-specific SDK type surfaces (session events + typed JSON-RPC wrappers) to match the updated CLI API/schema.

Changes:

  • Bumps @github/copilot dependency to ^0.0.411-0 in the Node.js package (and lockfile).
  • Regenerates session event types to include new events (session.mode_changed, session.plan_changed, session.workspace_file_changed) across Node/Python/Go/.NET.
  • Regenerates typed RPC client wrappers to include new session-scoped RPC APIs (mode/plan/workspace/fleet) across Node/Python/Go/.NET.

Reviewed changes

Copilot reviewed 3 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
python/copilot/generated/session_events.py Adds new session event types and new Data fields (newMode, previousMode, operation, path).
python/copilot/generated/rpc.py Adds new RPC data models and session-scoped APIs (mode/plan/workspace/fleet).
nodejs/src/generated/session-events.ts Adds new session event union variants for mode/plan/workspace changes.
nodejs/src/generated/rpc.ts Adds new typed session RPC methods for mode/plan/workspace/fleet.
nodejs/package.json Updates @github/copilot dependency version.
nodejs/package-lock.json Locks @github/copilot and platform packages to 0.0.411-0 (and updates metadata).
go/rpc/generated_rpc.go Adds new typed session RPC APIs and related request/response structs/enums.
go/generated_session_events.go Adds new session event types and Data fields (newMode, previousMode, operation, path).
dotnet/src/Generated/SessionEvents.cs Adds new derived event types + enums for new session events.
dotnet/src/Generated/Rpc.cs Adds new typed session RPC APIs for mode/plan/workspace/fleet.
Files not reviewed (1)
  • nodejs/package-lock.json: Language not supported

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

Cross-SDK Consistency Review

I've reviewed this PR for consistency across all four SDK implementations (Node.js/TypeScript, Python, Go, and .NET). Here are my findings:

Type Generation: Fully Consistent

All four SDKs have successfully regenerated types for the new features introduced in @github/copilot 0.0.411-0:

New RPC APIs (all present in all SDKs):

  • session.mode.get / session.mode.set (Mode: interactive, plan, autopilot)
  • session.plan.read / session.plan.update / session.plan.delete
  • session.workspace.listFiles / session.workspace.readFile / session.workspace.createFile
  • session.fleet.start

New Session Events (all present in all SDKs):

  • session.mode_changed
  • session.plan_changed
  • session.workspace_file_changed

⚠️ E2E Test Coverage: Inconsistent

Node.js/TypeScript:

  • ✅ Added comprehensive E2E tests in nodejs/test/e2e/rpc.test.ts covering:
    • Mode get/set operations
    • Plan read/update/delete operations
    • Workspace file create/list/read operations

Python, Go, .NET:

  • ❌ No E2E tests added for the new RPC APIs
  • 📝 Existing test files already have placeholders:
    • python/e2e/test_rpc.py
    • go/internal/e2e/rpc_test.go
    • dotnet/test/RpcTests.cs

💡 Recommendation

While the generated types are perfectly consistent across all SDKs, the E2E test coverage should be equalized. Consider adding tests similar to the Node.js ones to Python, Go, and .NET test files to ensure:

  1. The new APIs work correctly in all language SDKs
  2. Future regressions are caught consistently
  3. Developers have working examples in all languages

This doesn't block the PR since the type generation is complete and consistent, but it would strengthen the quality and maintainability of the SDK suite going forward.

Conclusion

This PR maintains excellent cross-SDK consistency for the core implementation. The generated types are complete and parallel across all four languages, properly accounting for language-specific conventions (camelCase vs snake_case vs PascalCase). The only gap is test coverage, which is optional but recommended for completeness.

AI generated by SDK Consistency Review Agent

SteveSandersonMS and others added 2 commits February 17, 2026 10:38
- Python: remove unnecessary pass in empty dataclasses with methods
- C#: properly type string|null as string? instead of object
- Go: omit optional fields when nil instead of sending null

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The mode property now uses SessionModeGetResultMode enum with
Interactive, Plan, and Autopilot values for compile-time validation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SteveSandersonMS SteveSandersonMS force-pushed the stevesa/update-copilot-pkg branch 3 times, most recently from 991b977 to 4262a26 Compare February 17, 2026 10:57
- Python: test_rpc.py - mode, plan, workspace tests
- Go: rpc_test.go - mode, plan, workspace tests
- .NET: RpcTests.cs - mode, plan, workspace tests
- Fix C# codegen to use enum type for method signatures (not just request classes)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SteveSandersonMS SteveSandersonMS force-pushed the stevesa/update-copilot-pkg branch from 4262a26 to a60689a Compare February 17, 2026 11:01
@SteveSandersonMS SteveSandersonMS merged commit 3c5368a into main Feb 17, 2026
32 checks passed
@SteveSandersonMS SteveSandersonMS deleted the stevesa/update-copilot-pkg branch February 17, 2026 11:18
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.

1 participant

Comments