Skip to content

chore: sync upstream (14 commits)#27

Open
yazelin wants to merge 15 commits intomainfrom
upstream-sync/20260226-233131
Open

chore: sync upstream (14 commits)#27
yazelin wants to merge 15 commits intomainfrom
upstream-sync/20260226-233131

Conversation

@yazelin
Copy link
Owner

@yazelin yazelin commented Feb 26, 2026

Upstream Sync

Commits: 14 new commits from upstream
Upstream SHA: 21a586d083d1f636973cce32a26869a19c9d09a6
Base SHA: c4b3b366c4bd8dfba9ba4aa05e4019825360ad78

Upstream Changes

21a586d docs: add missing context package in sample code (#566)
20e5ce0 Python: remove hardcoded 30s default timeout from JsonRpcClient.request() (#592)
f9144f1 Consolidate schedule for Dependabot updates (#582)
41c1068 Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 (#579)
388f2f3 Add permission checks for SDK-registered custom tools (#555)
9d998fb Add SDK support for agent selection and session compaction APIs (#544)
bce4de0 docs: fix inaccuracies in skills.md (#556)
279f6c4 Require permission handler on session creation (#554)
f0909a7 [dotnet] Fix SendAndWaitAsync to throw OperationCanceledException on external cancellation (#543)
5a9b475 chore(nodejs): bump @github/copilot from ^0.0.411 to ^0.0.414 (#542)
99c7c52 fix: correct 'GithubToken' casing to 'GitHubToken' in .NET and Go (#541)
0e6561d Document Microsoft Foundry Local setup and usage (#461)
eaf06cd fix: replace execSync with execFileSync in docs validation (#505)
dea514d Fix timeout issue when downloading the exe file (#533)

Conflict Resolution

  • ACP paths auto-resolved: none
  • Manual review needed: none

After Merge

# Rebase feature branches
git fetch origin main
git rebase origin/main

Auto-generated by upstream-sync workflow

MikeAlhayek and others added 15 commits February 23, 2026 10:59
* fix: replace execSync with execFileSync in docs validation

Replace all execSync calls with execFileSync to avoid shell interpretation
of interpolated paths. This resolves a CodeQL alert about shell command
injection via uncontrolled absolute paths (scripts/docs-validation/validate.ts:79).

execFileSync passes arguments as an array, bypassing the shell entirely,
which eliminates the risk of path characters being misinterpreted.

Also updated catch blocks to check err.stderr in addition to err.stdout,
since 2>&1 shell redirection is no longer used.

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

* chore: remove unused spawn import

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Document Microsoft Foundry Local setup and usage

Added section for Microsoft Foundry Local with installation and usage instructions.

* Update docs/auth/byok.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…#542)

Update the Copilot CLI dependency to the latest version.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improve discoverability of permission handler being required

* Update TypeScript tests

* Formatting

* Test updates

* Formatting

* More doc updates

* Fix E2E tests: add permission handler to all session calls across Python, Go, C#

- Add on_permission_request/OnPermissionRequest to all Python and Go E2E test
  create_session/resume_session calls
- Fix pre-existing deny tests: restore 'denied-interactively-by-user' kind
  (was accidentally changed by blanket replace)
- Fix session-resume scenario builds for Go and C#

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

* Fix docs validation: add permission handler to getting-started.md examples

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

* Fix remaining E2E tests missing permission handler

- Go: client_test.go CreateSession calls need OnPermissionRequest
- Python: test_client.py create_session call needs config arg

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace fabricated skill.json references with actual SKILL.md format used
by the SDK. The previous doc described a skill.json manifest, prompts/
directory, and tools/ directory that don't exist in the implementation.

Changes:
- Replace skill.json with SKILL.md format (YAML frontmatter + markdown)
- Fix directory structure to match actual layout (skill-name/SKILL.md)
- Add onPermissionRequest to all code examples (required by SDK)
- Remove fabricated prompts/ and tools/ directory concepts
- Fix troubleshooting and best practices to reference SKILL.md
- Remove speculative skill conflict precedence claims

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add permission checks for SDK-registered custom tools

Add 'custom-tool' to the PermissionRequest kind union in Node.js and
Python types. Update all existing custom tool e2e tests across all four
languages (Node.js, Python, Go, .NET) to provide an onPermissionRequest
handler, and add new e2e tests verifying permission approval and denial
flows for custom tools.

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

* Address PR review: remove unused import, add toolName verification to Go and .NET tests

- Remove unused PermissionRequestResult import from Node.js test
- Add toolName assertion in Go test for cross-SDK parity
- Add toolName assertion in .NET test for cross-SDK parity

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

* Formatting

* Fix rebase issue

* Go fix

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…st() (github#592)

* fix(python): remove 30s default timeout from JsonRpcClient.request()

The Python SDK's JsonRpcClient.request() had a hardcoded 30s default
timeout via asyncio.wait_for(), unlike the other three SDK languages
(Go, Node/TS, .NET) which all wait indefinitely for the server to
respond.

Change the default from timeout=30.0 to timeout=None so that requests
wait indefinitely by default, matching the behavior of the other SDKs.
Callers can still pass an explicit timeout when needed.

Fixes github#539

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

* fix(python): add type casts to fix ty check errors

Add cast() calls for handler results that go through
inspect.isawaitable(), which loses type narrowing:
- session.py: _handle_permission_request, _handle_user_input_request
- client.py: _execute_tool_call

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: WANG Xu <feici02@outlook.com>
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.

8 participants