Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
0f1f72d
docs(java): add ADR-007 native runtime bundling strategy
edburns Jul 6, 2026
cc13a6b
Potential fix for pull request finding
edburns Jul 6, 2026
265b1d4
Update adr-007 to address decision to not use Panama
edburns Jul 10, 2026
bb9fc3c
Select Option 2 and Option 1
edburns Jul 10, 2026
d312acf
GUTDODP
edburns Jul 21, 2026
cc7e581
Add ignorance reduction plan for Java SDK native runtime embedding (#…
edburns Jul 22, 2026
5985569
GUTDODP
edburns Jul 22, 2026
00d8a07
Get answers to pre-traversal questions in section 3.15.
edburns Jul 22, 2026
343caaa
GUTDODP
edburns Jul 22, 2026
6ffbfe5
Phase 3, 3.1 WIP
edburns Jul 22, 2026
89be67c
Rethink answer for 3.1.
edburns Jul 22, 2026
d880671
Working through 3.1 and 3.2
edburns Jul 22, 2026
786774e
Resolve 3.1 and 3.2: hybrid reactor structure + npm pack binary acqui…
edburns Jul 22, 2026
aacba2e
GUTDODP
edburns Jul 22, 2026
123f38f
Expand step 4.6 into 4.6a/b/c for hybrid reactor restructure
edburns Jul 22, 2026
cd14f4a
3.3 resolution: interface + direct instantiation + com.github.copilot…
edburns Jul 22, 2026
1126b41
Spike 3.4: JNA callback threading with Rust DLL
edburns Jul 22, 2026
638d22d
3.4 resolution: QueueInputStream + MR-JAR virtual thread reader
edburns Jul 22, 2026
ccf77c5
GUTDODP
edburns Jul 22, 2026
5c52317
3.5.1 resolution: RuntimeConnection sealed class hierarchy
edburns Jul 22, 2026
4d6dcea
3.5.2 resolution: FfiRuntimeHost parallel to CliServerManager
edburns Jul 22, 2026
465286c
3.5.3 resolution: JsonRpcClient.fromStreams() + QueueInputStream + Ff…
edburns Jul 22, 2026
26fa6bf
GUTDODP
edburns Jul 22, 2026
0076e7d
GUTDODP
edburns Jul 22, 2026
a1a29bb
GUTDODP
edburns Jul 23, 2026
8fa85dc
Spike 3.6 darwin-arm64
edburns Jul 23, 2026
eb2fba6
Make spikes into maven projects
edburns Jul 23, 2026
7ba0ed5
3.6 Windows x64
edburns Jul 23, 2026
e28bdb4
Document 3.6 platform detection resolution
edburns Jul 23, 2026
de6fb97
GUTDODP
edburns Jul 23, 2026
42b7cfd
Resolve native runtime extraction caching strategy
edburns Jul 24, 2026
7e47544
Document JNA GraalVM callback spike
edburns Jul 24, 2026
292ab6f
GUTDODP
edburns Jul 24, 2026
67555f2
Expand Question 3.9 to cover all five C ABI parameters
edburns Jul 24, 2026
7041cf8
Correct ABI table: argv_json example, host_start blocking, nullable p…
edburns Jul 24, 2026
abc3539
3.9: C ABI parameter semantics spike and resolution
edburns Jul 24, 2026
15bb062
3.10: Error handling and diagnostics resolution
edburns Jul 24, 2026
24a8499
GUTDODP
edburns Jul 24, 2026
a2eb3f8
spike-3-11: InProcess E2E transport on win32-x64 + 3.11 Resolution
edburns Jul 27, 2026
14f7a3a
GUTDODP
edburns Jul 27, 2026
5e1697c
GUTDODP
edburns Jul 27, 2026
0444eea
GUTDODP
edburns Jul 27, 2026
c9ac26b
3.12 Resolution + Phase 4 linux-x64-first DRI note
edburns Jul 27, 2026
69a3dda
Provide resolutions for 3.13 and 3.14
edburns Jul 28, 2026
2aee157
GUTDODP
edburns Jul 28, 2026
ce35d60
Fix 6 LLM-friendliness inconsistencies in Phase 4 implementation steps
edburns Jul 28, 2026
bd156bc
GUTDODP
edburns Jul 28, 2026
7a0b081
docs(plan): normalize linux-x64-only invariant wording
edburns Jul 28, 2026
24eac8a
docs(plan): add Phase 4 implementation sequence diagram
edburns Jul 28, 2026
571602a
docs(plan): include all pending modified files
edburns Jul 28, 2026
621e7a9
docs(plan): fix Mermaid parse in Phase 4 sequence diagram
edburns Jul 28, 2026
754179a
docs(plan): fix second Mermaid parse error in phase 4 diagram
edburns Jul 28, 2026
6847069
docs(plan): rewrite phase 4 sequence diagram from first principles
edburns Jul 28, 2026
3366ade
Refactors
edburns Jul 28, 2026
10a3023
GUTDODP
edburns Jul 28, 2026
cb6b9f5
GUTDODP
edburns Jul 28, 2026
eef3bf6
Prompt to create skill to create issues
edburns Jul 28, 2026
4d72eae
GUTDODP
edburns Jul 29, 2026
6aa2949
dd-dd-3039145-cast-phase-4-into-issues
edburns Jul 30, 2026
3c66aa0
dd-3039145-cast-plan-into-issues
edburns Jul 30, 2026
ca4b8a4
GUTDODP
edburns Jul 30, 2026
8d51ae9
[Java] Add PlatformDetector and NativeRuntimeLoader for native binary…
Copilot Jul 30, 2026
0531fc7
shepherd-tasks-20260730-0204
edburns Jul 30, 2026
546b5f4
GUTDODP
edburns Jul 30, 2026
7a5fd1e
Revert "[Java] Add PlatformDetector and NativeRuntimeLoader for nativ…
edburns Jul 30, 2026
2bea6f5
GUTDODP
edburns Jul 30, 2026
0e7e5b0
[Java] Task 4.1: Convert single-module java/ into multi-module Maven …
Copilot Jul 30, 2026
0afbb2d
dd-3039924-Agentic run 02
edburns Jul 30, 2026
6f26178
shepherd-tasks-20260730-2115
edburns Jul 30, 2026
915e74c
[Java] Add `PlatformDetector` for runtime classifier selection (#2173)
Copilot Jul 30, 2026
9bf9cba
shepherd-tasks-20260730-2134
edburns Jul 30, 2026
6f45276
dd-3039924-agentic-run-02
edburns Aug 3, 2026
4425587
chore: remove shepherd-task JSON session files flagged by secret scan…
edburns Aug 3, 2026
013705d
[Java] Embed Rust CLI runtime 4.3: NativeRuntimeLoader — native binar…
Copilot Aug 3, 2026
c895a2a
GUTDODP
edburns Aug 3, 2026
dc30534
GUTDODP
edburns Aug 3, 2026
464ec6b
[Java] Embed Rust CLI runtime 4.4: JNA binding interface and implemen…
Copilot Aug 3, 2026
874652b
[Java] Add in-process FFI runtime host lifecycle and stream transport…
Copilot Aug 3, 2026
ee66d86
[Java] Add RuntimeConnection hierarchy and in-process transport dispa…
Copilot Aug 3, 2026
1abd75a
[Java] Add copilot-native module producing linux-x64 classifier JAR f…
Copilot Aug 3, 2026
069d238
Java: Add InProcess FFI transport E2E test (task 4.8) (#2238)
Copilot Aug 4, 2026
82a3ff9
ci(java): add linux in-process Java SDK workflow job
Copilot Aug 4, 2026
12daefa
ci: add continue-on-error to java-sdk-inprocess job
edburns Aug 4, 2026
3a29cd2
ci: remove continue-on-error from java-sdk-inprocess job
edburns Aug 4, 2026
e46354c
ci: restore continue-on-error for java-sdk-inprocess job
edburns Aug 4, 2026
523c621
shepherd output shepherd-tasks-20260803-1550
edburns Aug 4, 2026
dd2add2
GUTDODP
edburns Aug 4, 2026
f36d082
token analysis
edburns Aug 4, 2026
293bb16
Scrub secrets
edburns Aug 4, 2026
b1dc3fa
GUTDODP
edburns Aug 4, 2026
4b2d997
Redact data
edburns Aug 4, 2026
e4cf9a7
GUTDOP
edburns Aug 4, 2026
5d9779a
Remove prompts
edburns Aug 4, 2026
fdb8d67
Suppress CodeQL weak-crypto alert for RFC 6455 WebSocket handshake SHA-1
edburns Aug 4, 2026
c370fb4
ci(java): remove leaked COPILOT_SDK_DEFAULT_CONNECTION from step env
edburns Aug 4, 2026
868635e
Fix CodeQL relative-path-command alerts in test code
edburns Aug 4, 2026
1ad2ae0
Fix CodeQL container-contents-never-accessed alerts
edburns Aug 4, 2026
fd4565f
Fix CodeQL always-true comparison and string identity alerts
edburns Aug 5, 2026
82e2bdc
Add CodeQL suppression for intentional string identity comparison
edburns Aug 5, 2026
e435cfc
Replace identity comparison with .equals() for ABSENT_SENTINEL
edburns Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/actions/java-test-report/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ inputs:
report-path:
description: "Path to the test report XML files (glob pattern)"
required: false
default: "java/target/{surefire-reports*,failsafe-reports}/TEST-*.xml"
default: "java/sdk/target/{surefire-reports*,failsafe-reports}/TEST-*.xml"
jacoco-path:
description: "Path to the JaCoCo XML report"
required: false
default: "java/target/site/jacoco-coverage/jacoco.xml"
default: "java/sdk/target/site/jacoco-coverage/jacoco.xml"
jacoco-csv-path:
description: "Path to the JaCoCo CSV report"
required: false
default: "java/target/site/jacoco-coverage/jacoco.csv"
default: "java/sdk/target/site/jacoco-coverage/jacoco.csv"
check-name:
description: "Name for the check run"
required: false
Expand Down
8 changes: 4 additions & 4 deletions .github/aw/actions-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
"version": "v7.0.1",
"sha": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a"
},
"github/gh-aw-actions/setup-cli@v0.83.1": {
"repo": "github/gh-aw-actions/setup-cli",
"github/gh-aw-actions/setup@v0.83.1": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.83.1",
"sha": "8bdba8075360648fe6802302a5b4e016361dc6ac"
},
"github/gh-aw-actions/setup@v0.83.1": {
"repo": "github/gh-aw-actions/setup",
"github/gh-aw-actions/setup-cli@v0.83.1": {
"repo": "github/gh-aw-actions/setup-cli",
"version": "v0.83.1",
"sha": "8bdba8075360648fe6802302a5b4e016361dc6ac"
}
Expand Down
12 changes: 6 additions & 6 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

- Top-level: `README.md` (architecture + quick start)
- Language entry points: `nodejs/src/client.ts`, `python/README.md`, `go/README.md`, `dotnet/README.md`
- Java: `java/README.md`, `java/pom.xml`
- Java: `java/sdk/README.md`, `java/pom.xml`, `java/sdk/pom.xml`
- Test harness & E2E: `test/harness/*`, Python harness wrapper `python/e2e/testharness/proxy.py`
- Schemas & type generation: `nodejs/scripts/generate-session-types.ts`
- Session snapshots used by E2E: `test/snapshots/` (used by the replay proxy)
Expand Down Expand Up @@ -61,13 +61,13 @@

## Where to add new code or tests 🧭

- SDK code: `nodejs/src`, `python/copilot`, `go`, `dotnet/src`, `rust/src`, `java/src/main/java`
- Unit tests: `nodejs/test`, `python/*`, `go/*`, `dotnet/test`, `rust/tests`, `java/src/test/java`
- E2E tests: `*/e2e/` folders that use the shared replay proxy and `test/snapshots/`, `java/src/test/java/**/e2e/`
- Generated types: update schema in `@github/copilot` then run `cd nodejs && npm run generate:session-types` and commit generated files in `src/generated` or language generated location. Java generated types: `java/src/generated/java`
- SDK code: `nodejs/src`, `python/copilot`, `go`, `dotnet/src`, `rust/src`, `java/sdk/src/main/java`
- Unit tests: `nodejs/test`, `python/*`, `go/*`, `dotnet/test`, `rust/tests`, `java/sdk/src/test/java`
- E2E tests: `*/e2e/` folders that use the shared replay proxy and `test/snapshots/`, `java/sdk/src/test/java/**/e2e/`
- Generated types: update schema in `@github/copilot` then run `cd nodejs && npm run generate:session-types` and commit generated files in `src/generated` or language generated location. Java generated types: `java/sdk/src/generated/java`

## Boundaries — files you must NOT hand-edit ⛔

- `java/src/generated/java/` — auto-generated by `scripts/codegen/java.ts`; regenerate with `cd java && mvn generate-sources -Pcodegen`.
- `java/sdk/src/generated/java/` — auto-generated by `scripts/codegen/java.ts`; regenerate with `cd java/sdk && mvn generate-sources -Pcodegen`.
- `nodejs/src/generated/` — auto-generated by `npm run generate:session-types`.
- `test/snapshots/` — authoritative test fixtures; add/edit YAML here to change E2E behavior, but don't delete without understanding downstream impact.
8 changes: 4 additions & 4 deletions .github/skills/new-java-e2e-test-yaml-and-test/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ conversations:

### Step 3: Create the Java IT test class

Place it in `java/src/test/java/com/github/copilot/` with an `IT` suffix
Place it in `java/sdk/src/test/java/com/github/copilot/` with an `IT` suffix
(e.g., `MyFeatureIT.java`). The failsafe plugin picks up `*IT.java` files.

**Template:**
Expand Down Expand Up @@ -141,12 +141,12 @@ mvn clean verify

| What | Where |
|------|-------|
| Test context (manages proxy, workDir, CLI) | `java/src/test/java/com/github/copilot/E2ETestContext.java` |
| Java proxy wrapper | `java/src/test/java/com/github/copilot/CapiProxy.java` |
| Test context (manages proxy, workDir, CLI) | `java/sdk/src/test/java/com/github/copilot/E2ETestContext.java` |
| Java proxy wrapper | `java/sdk/src/test/java/com/github/copilot/CapiProxy.java` |
| Replay proxy (TypeScript) | `test/harness/replayingCapiProxy.ts` |
| Proxy server entry point | `test/harness/server.ts` |
| Snapshot files | `test/snapshots/<category>/<name>.yaml` |
| Existing IT tests for reference | `java/src/test/java/com/github/copilot/*IT.java` |
| Existing IT tests for reference | `java/sdk/src/test/java/com/github/copilot/*IT.java` |

## How the Proxy Matches Requests

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codegen-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
- 'go/rpc/**'
- 'rust/src/generated/**'
- 'sdk-protocol-version.json'
- 'java/src/main/java/com/github/copilot/SdkProtocolVersion.java'
- 'java/sdk/src/main/java/com/github/copilot/SdkProtocolVersion.java'
- '.github/workflows/codegen-check.yml'
workflow_dispatch:

Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
- name: Verify Java protocol version matches
run: |
EXPECTED=$(jq -r '.version' sdk-protocol-version.json)
ACTUAL=$(grep -oP 'LATEST\(\K[0-9]+' java/src/main/java/com/github/copilot/SdkProtocolVersion.java)
ACTUAL=$(grep -oP 'LATEST\(\K[0-9]+' java/sdk/src/main/java/com/github/copilot/SdkProtocolVersion.java)
if [ "$EXPECTED" != "$ACTUAL" ]; then
echo "::error::Java SDK protocol version ($ACTUAL) does not match sdk-protocol-version.json ($EXPECTED). Java manages its own SdkProtocolVersion.java via java/scripts/codegen/. Update it to match."
exit 1
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/docs-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ on:
- 'python/copilot/**'
- 'go/**/*.go'
- 'dotnet/src/**'
- 'java/src/**'
- 'java/sdk/src/**'
- 'java/pom.xml'
- 'java/sdk/pom.xml'
- 'scripts/docs-validation/**'
- '.github/workflows/docs-validation.yml'
workflow_dispatch:
Expand Down

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

Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,17 @@ You are an automation agent that fixes handwritten Java SDK source and test code

- The branch `${{ inputs.branch }}` already has:
- Updated `java/scripts/codegen/package.json` with the new version
- Regenerated `java/src/generated/java/` code that compiles successfully
- Regenerated `java/sdk/src/generated/java/` code that compiles successfully
- Updated the Java POM CLI/version pin property
- Your job is ONLY to fix **handwritten** code, NOT generated code.

## Boundaries

- ❌ Do NOT edit anything under `java/src/generated/java/`
- ❌ Do NOT edit anything under `java/sdk/src/generated/java/`
- ❌ Do NOT edit `java/scripts/codegen/java.ts`
- ❌ Do NOT create or modify tests in the `com.github.copilot.generated` test package (`java/src/test/java/com/github/copilot/sdk/generated/`)
- ✅ DO edit `java/src/main/java/com/github/copilot/sdk/**`
- ✅ DO edit `java/src/test/java/com/github/copilot/sdk/**` (excluding the `generated` subpackage)
- ❌ Do NOT create or modify tests in the `com.github.copilot.generated` test package (`java/sdk/src/test/java/com/github/copilot/sdk/generated/`)
- ✅ DO edit `java/sdk/src/main/java/com/github/copilot/sdk/**`
- ✅ DO edit `java/sdk/src/test/java/com/github/copilot/sdk/**` (excluding the `generated` subpackage)
- ✅ DO add new test methods or test classes if new user-facing API surface is introduced

## Instructions
Expand Down Expand Up @@ -146,7 +146,7 @@ mvn verify -Dskip.test.harness=true
If this passes, commit and push:

```bash
git add java/src/main/java java/src/test/java
git add java/sdk/src/main/java java/sdk/src/test/java
git commit -m "Fix handwritten Java code for @github/copilot schema changes

Adapt constructor calls, enum references, and test assertions to match
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java-codegen-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ on:
- main
paths:
- 'java/scripts/codegen/**'
- 'java/src/generated/**'
- 'java/sdk/src/generated/**'
- '.github/workflows/java-codegen-check.yml'
pull_request:
paths:
- 'java/scripts/codegen/**'
- 'java/src/generated/**'
- 'java/sdk/src/generated/**'
- '.github/workflows/java-codegen-check.yml'
workflow_dispatch:

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java-codegen-fix.lock.yml

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

Loading
Loading