Skip to content

docs: refresh for GA; add cloud sessions, fleet mode, multi-tenancy guides#1481

Open
patniko wants to merge 11 commits into
mainfrom
docs/ga
Open

docs: refresh for GA; add cloud sessions, fleet mode, multi-tenancy guides#1481
patniko wants to merge 11 commits into
mainfrom
docs/ga

Conversation

@patniko
Copy link
Copy Markdown
Contributor

@patniko patniko commented May 28, 2026

Summary

Refreshes documentation for general availability and adds four new guides covering capabilities that were undocumented or under-documented.

GA wording

  • Removes all "public preview" / "technical preview" / "in preview" language from root README, all 6 SDK READMEs, rust/Cargo.toml, and Java ADR-001 (marked superseded).
  • Matches copilot-agent-runtime conventions: lowercase "generally available", no "GA" abbreviation, no banners.
  • Verified: grep -riE 'public preview|technical preview|in preview' across the repo returns zero matches.

New guides

  • docs/setup/multi-tenancy.mdmode: "empty", integration IDs, sessionFs, per-session gitHubToken, isolation patterns
  • docs/features/cloud-sessions.mdcloud: option, Mission Control hosted sessions, repo association, resume behavior
  • docs/features/fleet-mode.md — parallel sub-agent dispatch (Node/Python/Go/.NET/Rust; Java binding not yet found)
  • docs/features/plugin-directories.md — loading bundled plugins (skills/hooks/MCP/agents/LSP) via --plugin-dir, COPILOT_PLUGIN_DIR_ONLY, session.plugins.list() inspection, and plugin-dir vs marketplace tradeoffs

Claim corrections

  • .NET package: GitHub.CopilotGitHub.Copilot.SDK
  • Python install: dev path → pip install github-copilot-sdk (+ telemetry extra)
  • Java: hard-coded 1.0.0-beta-java.4${copilot.sdk.version} placeholder; JDK 25 → JDK 21+ (for virtual threads)
  • Go: added ctx context.Context to CreateSession / ResumeSession* / ListSessions / DeleteSession / Ping
  • Node: TypeScript 5.2+ / Node.js 20+; documented RuntimeConnection.forUri() (no cliUrl shortcut on CopilotClientOptions)
  • Rust: with_handlerwith_permission_handler; removed nonexistent ToolHandlerRouter; added Java to cross-references
  • Root README: rewrote production-ready FAQ; softened Java CLI bundling claim
  • docs: added skipPermission, per-session gitHubToken, BYOK wireApi, assistant.usage.apiEndpoint (/chat/completions, /v1/messages, /responses, ws:/responses), expanded fleet-mode compatibility note

Validation

  • All new guides use the docs-validation hidden/visible-snippet pattern instead of docs-validate: skip; zero skip markers remain in the new files.
  • npx tsx extract.ts && npx tsx validate.ts passes for TypeScript, Python, Go, and .NET on all touched files. Remaining Java validation failures are environment-only (mvn not found).

Code-reviewer feedback (commit 3b464ac0)

All 10 line comments from the Copilot PR reviewer were verified against source and addressed:

  • backend-services.md × 5: TS cliUrlconnection: RuntimeConnection.forUri(...) (matches nodejs/src/types.ts)
  • multi-tenancy.md: removed options ignored on URI connections (TS + Java); initialWorkingDirectoryinitialCwd (matches SessionFsConfig); dropped phantom cliUrl from TS table
  • streaming-events.md: added "ws:/responses" to apiEndpoint union (matches generated session-event types)
  • fleet-mode.md: Rust crate github_copilotgithub_copilot_sdk (matches rust/Cargo.toml)
  • cloud-sessions.md: Rust permission handler now uses Arc<dyn PermissionHandler> via handler::ApproveAllHandler (matches with_permission_handler signature in rust/src/types.rs)

Diff

33 files changed, 1,578 insertions(+), 195 deletions(-)

Open follow-ups (not blocking this PR)

  • subagentStart / subagentStop runtime hooks (runtime 1.0.52) have no public SDK bindings yet — fleet-mode.md documents only the generic subagent.* events.
  • Java fleet-mode binding not found; omitted from that guide.
  • Java sessionFs not yet exposed publicly; multi-tenancy.md notes this.
  • MAF .NET integration still requires --prerelease (upstream constraint).
  • Integration ID is set via GITHUB_COPILOT_INTEGRATION_ID env var, not a first-class SDK option — documented as such.

…uides

- Remove public/technical preview language across root + all SDK READMEs
- Match copilot-agent-runtime GA wording (lowercase 'generally available', no banners)
- Add docs/setup/multi-tenancy.md, docs/features/cloud-sessions.md, docs/features/fleet-mode.md
- Split cloud sessions out of remote-sessions.md
- Correct claims: .NET package name, Python install, Java version placeholder + JDK 21+,
  Go ctx.Context signatures, Node TS 5.2+/Node 20+, Rust permission handler API
- Document skipPermission, per-session gitHubToken, BYOK wireApi,
  assistant.usage.apiEndpoint, fleet-mode compatibility
- Mark java ADR-001 superseded by GA

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 28, 2026 16:02
@patniko patniko requested a review from a team as a code owner May 28, 2026 16:02
@github-actions

This comment has been minimized.

…iguation intro

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

Documentation refresh to align the repo with general availability messaging and to add new guides for cloud sessions, fleet mode, and multi-tenant/server deployments across the multi-language Copilot SDK.

Changes:

  • Removed “public/technical preview” wording across root + SDK READMEs and updated GA/semver phrasing.
  • Added new feature/setup guides: multi-tenancy/server mode, cloud sessions, and fleet mode (plus cross-links from existing docs).
  • Corrected several language-specific documentation claims (installation commands, package names, API option names, and examples).
Show a summary per file
File Description
README.md Updates top-level positioning, CLI bundling notes, and production-readiness wording.
CONTRIBUTING.md Updates language list to include Java.
rust/README.md Removes preview note and adds Java to parity references.
rust/Cargo.toml Removes technical-preview wording from crate description.
python/README.md Updates install instructions/extras and documents additional client options.
nodejs/README.md Updates requirements and option/method documentation (incl. lifecycle subscription naming).
nodejs/docs/examples.md Updates hooks/events examples and clarifies permission-deny reasoning.
go/README.md Updates client method signatures in docs to include context.Context.
dotnet/README.md Fixes NuGet package name in installation instructions.
java/README.md Updates requirements guidance and version placeholder usage.
java/docs/adr/adr-001-semver-pre-general-availability.md Marks prior pre-GA SemVer ADR as superseded.
docs/index.md Adds new guides (multi-tenancy, cloud sessions, fleet mode) to the main docs index.
docs/getting-started.md Updates getting-started prerequisites and Rust permission-handler API usage in examples.
docs/setup/index.md Adds multi-tenancy guide to setup navigation.
docs/setup/choosing-a-setup-path.md Adds multi-tenancy as a recommended path for server/production setups.
docs/setup/backend-services.md Expands backend guidance with multi-user “empty mode” patterns and per-session auth.
docs/setup/scaling.md Links to the new multi-tenancy SDK-options guide.
docs/setup/multi-tenancy.md New guide covering mode: "empty", per-session auth, sessionFs, isolation patterns, and integration IDs.
docs/features/index.md Adds fleet/cloud sessions to the feature guide index and refines remote-session wording.
docs/features/custom-agents.md Cross-links fleet mode for parallel sub-agent dispatch.
docs/features/remote-sessions.md Clarifies remote vs cloud sessions and removes embedded cloud-session content.
docs/features/cloud-sessions.md New guide documenting cloud session creation and repository association.
docs/features/fleet-mode.md New guide documenting fleet orchestration and SDK surfaces across languages.
docs/features/streaming-events.md Extends assistant.usage docs with apiEndpoint for cost/observability attribution.
docs/hooks/pre-tool-use.md Documents skipPermission for trusted custom tools.
docs/auth/index.md Adds a concise authentication-priority summary and links to multi-user guidance.
docs/auth/authenticate.md Clarifies that explicit tokens can be client-level or per-session and links multi-user guidance.
docs/auth/byok.md Expands wireApi explanation and clarifies provider endpoint semantics.
docs/observability/index.md Adds assistant.usage.apiEndpoint observability/cost-attribution guidance.
docs/observability/opentelemetry.md Adds assistant.usage.apiEndpoint note alongside trace context guidance.
docs/troubleshooting/compatibility.md Adds fleet-mode link and a dedicated workaround section for fleet mode.
docs/troubleshooting/mcp-debugging.md Adjusts debugging wrapper log path.

Copilot's findings

  • Files reviewed: 32/32 changed files
  • Comments generated: 10

Comment thread docs/setup/backend-services.md Outdated
Comment thread docs/setup/backend-services.md
Comment thread docs/setup/backend-services.md
Comment thread docs/setup/multi-tenancy.md Outdated
Comment thread docs/setup/multi-tenancy.md
Comment thread docs/setup/multi-tenancy.md Outdated
Comment thread docs/setup/multi-tenancy.md Outdated
Comment thread docs/features/streaming-events.md Outdated
Comment thread docs/features/fleet-mode.md Outdated
<summary><strong>Rust</strong></summary>

```rust
use github_copilot::generated::api_types::FleetStartRequest;
Comment thread docs/features/cloud-sessions.md
@github-actions github-actions Bot mentioned this pull request May 28, 2026
Patrick and others added 5 commits May 28, 2026 09:23
Replace all 9 docs-validate: skip markers in cloud-sessions.md with the
hidden-full-snippet + visible-snippet pattern (or direct buildable
snippets), and fix latent validation failures in fleet-mode.md and
multi-tenancy.md (.NET undefined locals, Go missing package/imports,
TS plan-mode union literal).

- cloud-sessions.md: 0 skip markers remain
- fleet-mode.md: hidden Go/.NET wrappers for session+ctx; plan-mode
  snippet now a valid type union
- multi-tenancy.md: hidden Go/.NET wrappers seed runtimeInstanceId,
  runtimeUrl, user, requestId

Validation (TS / Python / Go / C#) passes for all three files; Java
validation requires mvn (only available in CI).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New guide covering the --plugin-dir / extra-args path for loading bundled
plugin folders (skills, hooks, MCP, custom agents, LSP) from an SDK host
application. Covers folder layout, per-language wiring, plugin-dir vs
marketplace plugins, COPILOT_PLUGIN_DIR_ONLY for deterministic plugin
sets, session.plugins.list inspection, and troubleshooting.

Links added from docs/index.md and docs/features/index.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Verified all 10 reviewer findings against source; all accurate. Applied fixes:

- backend-services.md: Replace 5 instances of the non-existent TS top-level
  'cliUrl' option with 'connection: RuntimeConnection.forUri(...)' (matches
  CopilotClientOptions in nodejs/src/types.ts).
- multi-tenancy.md: Drop baseDirectory/sessionIdleTimeoutSeconds from the TS
  forUri sample and setCopilotHome/setSessionIdleTimeoutSeconds from the
  Java setCliUrl sample (both ignored for URI connections; documented inline).
  Fix SessionFsConfig field 'initialWorkingDirectory' -> 'initialCwd'
  (matches nodejs/src/types.ts:2068). Remove 'or cliUrl' from the TS row
  of the external-runtime table.
- streaming-events.md: Add 'ws:/responses' to assistant.usage.apiEndpoint
  union (matches nodejs/src/generated/session-events.ts:231).
- fleet-mode.md: Fix Rust crate path 'github_copilot' -> 'github_copilot_sdk'
  (rust/Cargo.toml lib name).
- cloud-sessions.md: Replace invalid Rust async closure permission handler
  with Arc<dyn PermissionHandler> via ApproveAllHandler from handler module
  (matches rust/src/types.rs:1529 signature).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ast skip)

CI Validate-* jobs run with mvn installed (so real Java errors surfaced)
and mypy strict (so undefined module-level names surfaced):

- features/fleet-mode.md Python sub-agent events: wrap visible snippet
  with hidden async main() that constructs session via CopilotClient.
- setup/multi-tenancy.md Java: add hidden compilable wrapper that defines
  runtimeUrl/user/requestId stubs and switches wildcard import to
  fully-qualified com.github.copilot.rpc imports.
- features/plugin-directories.md Java: fix wrong import
  (com.github.copilot.CopilotClientOptions ->
  com.github.copilot.rpc.CopilotClientOptions) and wrap in hidden
  compilable class.
- features/plugin-directories.md Rust: remove last docs-validate: skip;
  wrap with hidden tokio::main and keep visible excerpt.

All non-Java validators now clean locally; only env-only mvn errors remain.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@patniko patniko enabled auto-merge May 29, 2026 02:31
@patniko patniko disabled auto-merge May 29, 2026 02:33
@github-actions

This comment has been minimized.

patniko and others added 2 commits May 29, 2026 11:12
…eshooting

Cover two real-world gotchas that the existing guide does not mention:

1. "Sending the first prompt" — explains that createSession returns
   before the remote worker connects, so the first session.send must
   await session.start{producer:'copilot-agent'}. Without it the runtime
   silently swallows the prompt (RemoteSession.sendForSchema is
   fire-and-forget) and the developer sees a resolved messageId but no
   assistant.* events and no prompt in Mission Control. Also notes that
   streaming:true is needed for assistant.message_delta.

2. "Accessing the Mission Control URL" — cloud sessions auto-publish a
   shareable URL via session.info{infoType:'remote', url}. Apps should
   subscribe to that event rather than calling remote.enable(), which is
   only for promoting local sessions.

Add three matching rows to the Troubleshooting table and a Streaming
Events link in See Also.

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

Cross-SDK Consistency Review ✅

This PR modifies only documentation files (docs/, README.md files, CONTRIBUTING.md, and java/docs/adr/) — no SDK client code is changed in any of the four language implementations (nodejs/src/, python/copilot/, go/, dotnet/src/).

No cross-SDK consistency issues to report. The documentation changes appear to improve accuracy across all language SDKs (e.g., correcting package names, method signatures, and API option names to match actual source code).

Generated by SDK Consistency Review Agent for issue #1481 · ● 1.8M ·

Comment thread docs/features/cloud-sessions.md Outdated
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW @patniko on the cloud side we were able to decouple the --cloud policy from --remote. This means that a user can only enable cloud sandbox for this to work. At the end of the day, --remote is just the underlying tech to make --cloud work.

Cloud sandbox policy is at org/enterprise level at Settings > Sandboxes > Let organizations decide

cc @JasonEtco

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.

3 participants