Summary
Commit dd2dcbc (Per-session GitHub authentication for all SDK languages, plus update runtime and permissions to match (#1124)) introduced two protocol changes:
- New permission kind values:
approve-once, reject, user-not-available, no-result (replacing approved, denied-by-rules, denied-no-approval-rule-and-could-not-request-from-user, denied-interactively-by-user)
- New RPC method:
session.auth.getStatus for per-session authentication
However, the test harness (test/harness/package.json) still pins "@github/copilot": "^1.0.32", and CLI v1.0.32 does not support either of these changes:
- CLI v1.0.32 only accepts the old permission kind strings. Sending the new values causes
Unhandled permission result kind: [object Object], which makes every tool execution fail with permission errors.
- CLI v1.0.32 does not implement
session.auth.getStatus, returning JsonRpcException: Unhandled method session.auth.getStatus.
Impact
Any SDK that faithfully ports commit dd2dcbc will have broken E2E tests when run against the test harness. We observed this in the Java SDK (github/copilot-sdk-java) where 14 E2E tests fail (11 tool/permission failures + 3 auth errors).
Failing test categories
Permission/Tool failures (11): The CLI rejects the new permission kind values, so all tool executions fail. The model responds with apology messages instead of executing tools. Examples:
ToolsTest.testInvokesBuiltInTools — expects tool output, gets permission error
PermissionsTest.testPermissionHandlerForWriteOperations — permission handler never invoked
CopilotSessionTest.testShouldCreateSessionWithCustomTool — custom tool never executes
Per-session auth errors (3): All PerSessionAuthTest methods throw Unhandled method session.auth.getStatus. Additionally, no test snapshots exist for auth tests under test/snapshots/.
Expected fix
Either:
- Bump the CLI dependency in
test/harness/package.json to a version that supports the new permission protocol and session.auth.getStatus
- Or add auth test snapshots and backport the new permission kind values to the CLI
Reproduction
# In any SDK that has ported commit dd2dcbc:
# Run E2E tests against the test harness with @github/copilot@1.0.32
# Observe 14 test failures
References
Summary
Commit dd2dcbc (Per-session GitHub authentication for all SDK languages, plus update runtime and permissions to match (#1124)) introduced two protocol changes:
approve-once,reject,user-not-available,no-result(replacingapproved,denied-by-rules,denied-no-approval-rule-and-could-not-request-from-user,denied-interactively-by-user)session.auth.getStatusfor per-session authenticationHowever, the test harness (
test/harness/package.json) still pins"@github/copilot": "^1.0.32", and CLI v1.0.32 does not support either of these changes:Unhandled permission result kind: [object Object], which makes every tool execution fail with permission errors.session.auth.getStatus, returningJsonRpcException: Unhandled method session.auth.getStatus.Impact
Any SDK that faithfully ports commit dd2dcbc will have broken E2E tests when run against the test harness. We observed this in the Java SDK (github/copilot-sdk-java) where 14 E2E tests fail (11 tool/permission failures + 3 auth errors).
Failing test categories
Permission/Tool failures (11): The CLI rejects the new permission kind values, so all tool executions fail. The model responds with apology messages instead of executing tools. Examples:
ToolsTest.testInvokesBuiltInTools— expects tool output, gets permission errorPermissionsTest.testPermissionHandlerForWriteOperations— permission handler never invokedCopilotSessionTest.testShouldCreateSessionWithCustomTool— custom tool never executesPer-session auth errors (3): All
PerSessionAuthTestmethods throwUnhandled method session.auth.getStatus. Additionally, no test snapshots exist for auth tests undertest/snapshots/.Expected fix
Either:
test/harness/package.jsonto a version that supports the new permission protocol andsession.auth.getStatusReproduction
References
@github/copilot@1.0.32