Skip to content

Test harness CLI v1.0.32 incompatible with permission kind values and session.auth from commit dd2dcbc #1146

Description

@brunoborges

Summary

Commit dd2dcbc (Per-session GitHub authentication for all SDK languages, plus update runtime and permissions to match (#1124)) introduced two protocol changes:

  1. 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)
  2. 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:

  1. Bump the CLI dependency in test/harness/package.json to a version that supports the new permission protocol and session.auth.getStatus
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions