Skip to content

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

@brunoborges

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions