Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f359df7
Add in-process (FFI) transport for the Node.js SDK
SteveSandersonMS Jul 9, 2026
7982b26
Address review: run checkpoint test on all transports; drop .NET refe…
SteveSandersonMS Jul 9, 2026
51a204f
Revalidate FFI host workarounds against fixed runtime; drop the ones …
SteveSandersonMS Jul 9, 2026
0296b1b
Fix e2e auth so tests run locally without an HMAC key
SteveSandersonMS Jul 9, 2026
f642bd6
Use graceful stop in session.e2e teardown to avoid Windows worker lock
SteveSandersonMS Jul 9, 2026
4f8f8cb
Abort in-flight session turns before shutdown to release session.db h…
SteveSandersonMS Jul 9, 2026
5ccfc9f
fix: scope teardown abort to owned runtimes; gate inproc-only e2e tests
SteveSandersonMS Jul 9, 2026
d2c1f6c
test: use graceful stop() instead of forceStop() in Node test teardowns
SteveSandersonMS Jul 9, 2026
496818e
fix: scope teardown session-abort to the in-process transport only
SteveSandersonMS Jul 9, 2026
b2ca0d5
test: restore forceStop() where crash/abrupt-disconnect semantics matter
SteveSandersonMS Jul 9, 2026
67d1120
test: skip 'should forceStop without cleanup' on inproc
SteveSandersonMS Jul 9, 2026
5867a22
Explanation
SteveSandersonMS Jul 9, 2026
b2a021b
Cleanup
SteveSandersonMS Jul 9, 2026
ce6b96f
Cleanup
SteveSandersonMS Jul 9, 2026
97fe96c
Simplify comment
SteveSandersonMS Jul 9, 2026
bb8b064
Lazy-load koffi
SteveSandersonMS Jul 9, 2026
e856567
Address review: process.env-only default connection, reject cwd inpro…
SteveSandersonMS Jul 9, 2026
a67adf8
Use --no-auto-update
SteveSandersonMS Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/nodejs-sdk-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,15 @@ permissions:

jobs:
test:
name: "Node.js SDK Tests"
name: "Node.js SDK Tests (${{ matrix.os }}, ${{ matrix.transport }})"
if: github.event.repository.fork == false
env:
POWERSHELL_UPDATECHECK: Off
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
transport: ["default", "inprocess"]
runs-on: ${{ matrix.os }}
defaults:
run:
Expand Down Expand Up @@ -75,6 +76,11 @@ jobs:
if: runner.os == 'Windows'
run: pwsh.exe -Command "Write-Host 'PowerShell ready'"

- name: Select inprocess transport
if: matrix.transport == 'inprocess'
run: |
echo "COPILOT_SDK_DEFAULT_CONNECTION=inprocess" >> "$GITHUB_ENV"

- name: Run Node.js SDK tests
env:
COPILOT_HMAC_KEY: ${{ secrets.COPILOT_DEVELOPER_CLI_INTEGRATION_HMAC_KEY }}
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/FfiRuntimeHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ private static byte[] BuildArgvJson(string cliEntrypoint)
}
writer.WriteStringValue(cliEntrypoint);
writer.WriteStringValue("--embedded-host");
// Pin the worker to the bundled pkg matching the loaded cdylib, instead of
// drifting to a newer version under the user's ~/.copilot/pkg (ABI skew).
writer.WriteStringValue("--no-auto-update");
writer.WriteEndArray();
}
return stream.ToArray();
Expand Down
251 changes: 251 additions & 0 deletions nodejs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions nodejs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"license": "MIT",
"dependencies": {
"@github/copilot": "^1.0.70-0",
"koffi": "^3.1.0",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
Expand Down
Loading
Loading