Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1042 commits
Select commit Hold shift + click to select a range
0c91f9f
[maven-release-plugin] prepare release java/v1.0.7-preview.2
github-actions[bot] Jul 11, 2026
21b6137
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 11, 2026
5fbcba8
Update @github/copilot to 1.0.71-0 (#1968)
github-actions[bot] Jul 12, 2026
62d4f8a
Tool search configuration support (#1933)
almaleksia Jul 13, 2026
d47c435
python: add in-process (FFI) transport (#1975)
SteveSandersonMS Jul 13, 2026
fd64c03
Add in-process (FFI) transport to the Go SDK (#1976)
SteveSandersonMS Jul 14, 2026
b8195d0
docs: update outdated gpt-4.1 model references in SDK docstrings (#1978)
rinceyuan Jul 14, 2026
2847822
docs: apply style guide conventions and fix trailing whitespace (#1979)
rinceyuan Jul 14, 2026
db5c67d
Update @github/copilot to 1.0.71-2 (#1990)
github-actions[bot] Jul 15, 2026
ffc94b4
docs: update version references to 1.0.7-preview.3
github-actions[bot] Jul 15, 2026
eafaa89
[maven-release-plugin] prepare release java/v1.0.7-preview.3
github-actions[bot] Jul 15, 2026
fb24f3a
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 15, 2026
4dd4b96
Remove HMAC key authentication method from public SDK auth docs (#1994)
sunbrye Jul 15, 2026
60b6583
Add opaque `metadata` passthrough to SDK tool definitions (#1864)
belaltaher8 Jul 15, 2026
4357425
Avoid Windows in-process test teardown deadlock (#1997)
stephentoub Jul 16, 2026
a15e974
Update @github/copilot to 1.0.71 (#1998)
github-actions[bot] Jul 16, 2026
3a93079
docs: update version references to 1.0.7
github-actions[bot] Jul 16, 2026
9ecb70b
[maven-release-plugin] prepare release java/v1.0.7
github-actions[bot] Jul 16, 2026
721d155
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 16, 2026
3c9d05a
Enable built-in issue intent safe outputs on issue-triage (#1880)
lukewar Jul 16, 2026
1ae5c2c
Collapse built-in tool list in replay-proxy snapshot matching (#2013)
stephentoub Jul 17, 2026
d97bf8c
Add custom agent reasoning effort across SDKs (#1981)
roji Jul 17, 2026
559e5be
Add changelog for v1.0.7 (#2002)
github-actions[bot] Jul 17, 2026
8bd947b
Bump tsx (#1947)
dependabot[bot] Jul 17, 2026
81d557b
Update SDK E2E tests for canonical exit_plan_mode action order (#2023)
stephentoub Jul 17, 2026
5e92ac0
Add .NET BYOK E2E coverage (#2010)
roji Jul 17, 2026
583abb2
Harden MCP OAuth cancel E2E tests against create/interest race (#2029)
stephentoub Jul 18, 2026
6fef493
Mirror Node SDK releases to internal feed (#2025)
MackinnonBuck Jul 20, 2026
b1ad988
Strongly type expAssignments session config across all SDKs (#2033)
devm33 Jul 20, 2026
53065a9
Update @github/copilot to 1.0.72 (#2035)
github-actions[bot] Jul 21, 2026
4019331
Report authoritative cwd in recordContextChange E2E tests (#2036)
ellismg Jul 21, 2026
b8741a9
docs: update version references to 1.0.8-preview.0
github-actions[bot] Jul 21, 2026
f91fb10
[maven-release-plugin] prepare release java/v1.0.8-preview.0
github-actions[bot] Jul 21, 2026
1748db2
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 21, 2026
26687ba
docs: document sub-agent event attribution (#1878)
loganrosen Jul 21, 2026
b6fc3bf
docs: expand Azure Managed Identity BYOK guidance (#1995)
scottaddie Jul 21, 2026
7e0eb83
Durably document required secrets (#2046)
edburns Jul 22, 2026
980e59b
Fix ask_user starving the Rust SDK per-session event loop (#2034)
pallaviraiturkar0 Jul 22, 2026
cfce4e6
Use dependency groups for Python dev deps (#2038)
brettcannon Jul 22, 2026
491293d
Fix consistency review PR delta detection (#2018)
roji Jul 22, 2026
9cc76fd
Update @github/copilot to 1.0.73 (#2055)
github-actions[bot] Jul 22, 2026
0aa4684
docs: update version references to 1.0.8
github-actions[bot] Jul 22, 2026
dcdc55a
[maven-release-plugin] prepare release java/v1.0.8
github-actions[bot] Jul 22, 2026
8cc5a4f
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 22, 2026
9899826
java: enforce non-blank @CopilotToolParam description at compile time…
rinceyuan Jul 23, 2026
c1ceaf8
java: add schema attribute to @CopilotToolParam and lambda for custom…
edburns Jul 24, 2026
265c2ae
docs: fix non-compiling Rust session-limits example (#2082)
examon Jul 27, 2026
b55c8be
Fix the plan-mode exit action type name in the fleet mode guide (#2090)
examon Jul 27, 2026
451e86c
docs: fix the Node.js tool-definition example in the MAF integration …
examon Jul 27, 2026
63a43fe
Fix Go telemetry examples: NewClient takes *ClientOptions and returns…
examon Jul 27, 2026
5d7ad77
Fix active .NET and Python CI failures (#2093)
SteveSandersonMS Jul 27, 2026
904fa3d
docs: correct the delta field the MAF streaming example reads (#2105)
examon Jul 28, 2026
87376ce
Fix the Python list_sessions docstring example to use session_id (#2099)
examon Jul 28, 2026
c56f673
docs: rename Azure AI Foundry to Microsoft Foundry in BYOK guide (#2097)
scottaddie Jul 28, 2026
d8f6604
Bump fast-uri from 3.1.2 to 3.1.4 in /test/harness (#2094)
dependabot[bot] Jul 28, 2026
98d01c6
Bump brace-expansion from 1.1.14 to 1.1.16 in /nodejs (#2095)
dependabot[bot] Jul 28, 2026
cc28a1d
Bump hono from 4.12.23 to 4.12.32 in /test/harness (#2096)
dependabot[bot] Jul 28, 2026
8ec9ef4
docs: add missing assistant.usage event fields to streaming-events re…
rinceyuan Jul 28, 2026
09a15a8
docs: document complete sub-agent event data fields (#2072)
rinceyuan Jul 28, 2026
45325b4
Refresh agentic workflows to gh-aw v0.83.1; issue-intent on issue-tri…
alondahari Jul 28, 2026
6188a35
Add StartupTimings per-phase breakdown to Client::start (#2066)
jmoseley Jul 28, 2026
23c63e1
docs: fix inaccurate SDK/runtime claims found in docs audit (#2064)
patniko Jul 28, 2026
cd19827
Fix flaky .NET ask-user E2E tests (#2107)
SteveSandersonMS Jul 28, 2026
e757019
sdk: Expose AgentStop session hook across languages (#2054)
belaltaher8 Jul 28, 2026
0a5520d
ci: add stable required SDK checks (#2108)
SteveSandersonMS Jul 28, 2026
b759ebe
Fix flaky .NET session resume E2E test (#2109)
SteveSandersonMS Jul 28, 2026
5861988
dotnet: release oversized JSON-RPC receive buffers (#2047)
adirh3 Jul 28, 2026
678c17c
Version-independent SDK test and codegen fixes split from the 1.0.76-…
stephentoub Jul 28, 2026
241c4b8
docs: add server-to-server token guide (#2005)
patniko Jul 29, 2026
9a7e0fe
Update @github/copilot to 1.0.76-5 (#2140)
github-actions[bot] Jul 30, 2026
54f7c44
docs: update version references to 1.0.9-preview.0
github-actions[bot] Jul 30, 2026
d75b9d2
[maven-release-plugin] prepare release java/v1.0.9-preview.0
github-actions[bot] Jul 30, 2026
a83e488
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 30, 2026
8dd662d
docs: correct the Python and Go event data model tip (#2160)
examon Jul 30, 2026
022fff3
fix(python): select the current platform's CLI package in the E2E har…
nytron88 Jul 30, 2026
2d1f972
docs: fix non-compiling Rust external-transport example (#2142)
examon Jul 30, 2026
55e23bd
Rebrand Azure AI Foundry references (#2126)
scottaddie Jul 30, 2026
64568df
Fix .NET in-process E2E transport coverage (#1986)
roji Jul 30, 2026
6a9654e
Document MCP tool filter naming across SDKs (#2101)
syedkazmi14 Jul 30, 2026
079f401
docs: fix EnableConfigDiscovery summary to accurately describe agent …
smz202000 Jul 30, 2026
7c8c570
build(deps): bump the java-maven-deps group across 1 directory with 6…
dependabot[bot] Jul 30, 2026
99cfff0
Bump com.fasterxml.jackson.core:jackson-databind in /java (#2017)
dependabot[bot] Jul 30, 2026
54c5be3
Add the Agent Factories authoring surface (#2114)
MRayermannMSFT Jul 30, 2026
9718cb9
docs: update version references to 1.0.9-preview.1
github-actions[bot] Jul 30, 2026
91e4ceb
[maven-release-plugin] prepare release java/v1.0.9-preview.1
github-actions[bot] Jul 30, 2026
efd3f10
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 30, 2026
d4ee7fb
Fix CAPI reasoning E2E fixtures (#2181)
ellismg Jul 31, 2026
da99b98
docs: correct the remote sessions client option name (#2179)
examon Jul 31, 2026
fe188d4
docs: correct the ephemeral labels on four persisted session events (…
examon Jul 31, 2026
98f5e57
docs: keep EnableSessionStore reference, drop one-shot/hosted guidanc…
syf2211 Jul 31, 2026
5798ca3
python: decode boolean-discriminated unions (#2123)
examon Jul 31, 2026
ae34846
test(java): re-enable ModeHandlers exit_plan_mode E2E assertions (#2032)
arimu1 Jul 31, 2026
1ff82bd
Add usage and billing metrics docs page (#1720)
andyfeller Jul 31, 2026
5b94c1d
forward CustomAgentsLocalOnly in session.create and session.resume (#…
syf2211 Jul 31, 2026
6ab3670
Fix Python codegen synthetic permission approval names (#1652)
abhinavgautam01 Jul 31, 2026
bf626f2
[Codegen] Honor internal flag on session event types in Node codegen …
MRayermannMSFT Jul 31, 2026
bb909f0
fix(python): forward binary tool results in HandlePendingToolCall RPC…
syf2211 Jul 31, 2026
5bf3a0c
docs: update version references to 1.0.9-preview.2
github-actions[bot] Jul 31, 2026
0b7cd95
[maven-release-plugin] prepare release java/v1.0.9-preview.2
github-actions[bot] Jul 31, 2026
48c84b1
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Jul 31, 2026
2e315f2
Expose managed approval requirement on permission requests (#2080)
joshspicer Jul 31, 2026
0966819
sdk: Expose githubMcpToolConfig across languages (#2112)
connor4312 Jul 31, 2026
201601b
Deflake background task removal E2E tests (#2190)
stephentoub Aug 1, 2026
5c62044
Update @github/copilot to 1.0.77 (#2183)
github-actions[bot] Aug 1, 2026
0c90b20
Update @github/copilot to 1.0.78-2 (#2193)
github-actions[bot] Aug 2, 2026
b4d9e94
fix(python): serialize Pydantic models with mode='json' in tool resul…
rinceyuan Aug 3, 2026
d3bd0d4
Add EnableExperimentalMode support across all 6 SDKs (#1600)
jmoseley Aug 3, 2026
3ae6cd6
build(deps): bump brace-expansion (#2191)
dependabot[bot] Aug 3, 2026
7ff420b
docs: remove the nonexistent toolName field from tool.execution_compl…
examon Aug 3, 2026
b4461fb
feat: add support for additional directories in session configuration…
DonJayamanne Aug 3, 2026
bca0b27
docs: fix the Node.js inbound trace-context example to use a real too…
examon Aug 3, 2026
4a29150
Update @github/copilot to 1.0.78 (#2239)
github-actions[bot] Aug 4, 2026
11c040d
docs: update version references to 1.0.9-preview.3
github-actions[bot] Aug 4, 2026
ec14a43
[maven-release-plugin] prepare release java/v1.0.9-preview.3
github-actions[bot] Aug 4, 2026
0b7c240
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Aug 4, 2026
f46f4b4
dotnet: update README attachment examples to use AttachmentFile/Attac…
HindzStark Aug 4, 2026
e44b686
Support reasoningEffort: max (#2228)
Dharshika-11 Aug 4, 2026
8823cb4
Stop sendAndWait from emitting an unhandled rejection (#2206)
thejesh23 Aug 4, 2026
38e342c
docs: clarify working directory defaults across SDKs (#2201)
xianjianlf2 Aug 4, 2026
1754432
Speed up Rust E2E tests with shared clients (#2250)
SteveSandersonMS Aug 4, 2026
094b762
build(deps-dev): bump ip-address from 10.2.0 to 10.4.0 in /test/harne…
dependabot[bot] Aug 4, 2026
bec753e
build(deps-dev): bump the npm_and_yarn group across 1 directory with …
dependabot[bot] Aug 4, 2026
447fa7f
build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /nodejs (#2243)
dependabot[bot] Aug 4, 2026
df64873
build(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /test/harness (…
dependabot[bot] Aug 4, 2026
e53fa53
docs: move SDK development guidance to local READMEs (#2253)
SteveSandersonMS Aug 4, 2026
bc8f6d3
build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /test/harness …
dependabot[bot] Aug 4, 2026
4669592
docs: replace removed `session.idle.backgroundTasks` field with the c…
examon Aug 4, 2026
b7c108b
Parallelize Python and Windows .NET CI tests (#2251)
SteveSandersonMS Aug 4, 2026
28e14b1
Fix active Node and Rust replay E2E flakes (#2186)
roji Aug 4, 2026
bd68c32
Add userPromptTransformed hook to all SDKs (#2254)
SteveSandersonMS Aug 4, 2026
ee746f1
fix: Java README version stuck at 1.0.5-01; release sed regex can't m…
rinceyuan Aug 5, 2026
ccd9ba9
docs: update Go and Rust API links (#2266)
scottaddie Aug 5, 2026
91a62a5
docs: add citations guide (#2267)
patniko Aug 5, 2026
c03d86d
sdk: Expose disabled MCP servers across languages (#2260)
connor4312 Aug 5, 2026
4da0102
docs: update version references to 1.0.9
github-actions[bot] Aug 6, 2026
54ae61b
[maven-release-plugin] prepare release java/v1.0.9
github-actions[bot] Aug 6, 2026
41a71be
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Aug 6, 2026
de3216c
docs: correct the Python Customize Mode section IDs and action list (…
examon Aug 6, 2026
779a989
fix(java): preserve MCP permission extension data (#2276)
rinceyuan Aug 6, 2026
058407e
Add `history.clearContext` and `Tool.isTerminal` across all SDKs (#2129)
examon Aug 6, 2026
dbab08c
Update @github/copilot to 1.0.79-5 (#2282)
github-actions[bot] Aug 7, 2026
0cb965b
Update @github/copilot to 1.0.79-6 (#2287)
github-actions[bot] Aug 7, 2026
cacf112
fix(rust): recover JSON-RPC lone surrogates (#2283)
Chuxel Aug 7, 2026
fa597e1
Add managed permission settings to session startup (#2139)
joshspicer Aug 7, 2026
c1c1763
docs: update version references to 1.0.10-preview.0
github-actions[bot] Aug 7, 2026
23def4c
[maven-release-plugin] prepare release java/v1.0.10-preview.0
github-actions[bot] Aug 7, 2026
2867f52
[maven-release-plugin] prepare for next development iteration
github-actions[bot] Aug 7, 2026
6bc8913
docs(java): add ADR-007 native runtime bundling strategy
edburns Jul 6, 2026
0eaf926
Potential fix for pull request finding
edburns Jul 6, 2026
0d6ccfe
Update adr-007 to address decision to not use Panama
edburns Jul 10, 2026
57090ba
Select Option 2 and Option 1
edburns Jul 10, 2026
a642694
GUTDODP
edburns Jul 21, 2026
478d388
Add ignorance reduction plan for Java SDK native runtime embedding (#…
edburns Jul 22, 2026
1eece97
GUTDODP
edburns Jul 22, 2026
d69e6b3
Get answers to pre-traversal questions in section 3.15.
edburns Jul 22, 2026
bef3424
GUTDODP
edburns Jul 22, 2026
3603403
Phase 3, 3.1 WIP
edburns Jul 22, 2026
d6be6f6
Rethink answer for 3.1.
edburns Jul 22, 2026
4a09dbf
Working through 3.1 and 3.2
edburns Jul 22, 2026
6eef9d7
Resolve 3.1 and 3.2: hybrid reactor structure + npm pack binary acqui…
edburns Jul 22, 2026
955f2c2
GUTDODP
edburns Jul 22, 2026
4b6f705
Expand step 4.6 into 4.6a/b/c for hybrid reactor restructure
edburns Jul 22, 2026
608aae4
3.3 resolution: interface + direct instantiation + com.github.copilot…
edburns Jul 22, 2026
3cff145
Spike 3.4: JNA callback threading with Rust DLL
edburns Jul 22, 2026
7f71f8a
3.4 resolution: QueueInputStream + MR-JAR virtual thread reader
edburns Jul 22, 2026
fe4471e
GUTDODP
edburns Jul 22, 2026
624b63d
3.5.1 resolution: RuntimeConnection sealed class hierarchy
edburns Jul 22, 2026
52bd175
3.5.2 resolution: FfiRuntimeHost parallel to CliServerManager
edburns Jul 22, 2026
8677e81
3.5.3 resolution: JsonRpcClient.fromStreams() + QueueInputStream + Ff…
edburns Jul 22, 2026
92d3b2d
GUTDODP
edburns Jul 22, 2026
311443a
GUTDODP
edburns Jul 22, 2026
a9e6e7c
GUTDODP
edburns Jul 23, 2026
e650399
Spike 3.6 darwin-arm64
edburns Jul 23, 2026
42facae
Make spikes into maven projects
edburns Jul 23, 2026
f0da5a5
3.6 Windows x64
edburns Jul 23, 2026
ca94f49
Document 3.6 platform detection resolution
edburns Jul 23, 2026
5688aad
GUTDODP
edburns Jul 23, 2026
453ae70
Resolve native runtime extraction caching strategy
edburns Jul 24, 2026
7cdec11
Document JNA GraalVM callback spike
edburns Jul 24, 2026
1b82b4d
GUTDODP
edburns Jul 24, 2026
1f10a12
Expand Question 3.9 to cover all five C ABI parameters
edburns Jul 24, 2026
4f526fb
Correct ABI table: argv_json example, host_start blocking, nullable p…
edburns Jul 24, 2026
af1686b
3.9: C ABI parameter semantics spike and resolution
edburns Jul 24, 2026
b93fa3a
3.10: Error handling and diagnostics resolution
edburns Jul 24, 2026
f0a032e
GUTDODP
edburns Jul 24, 2026
c5d60e2
spike-3-11: InProcess E2E transport on win32-x64 + 3.11 Resolution
edburns Jul 27, 2026
4811fa1
GUTDODP
edburns Jul 27, 2026
ca692c1
GUTDODP
edburns Jul 27, 2026
06030e9
GUTDODP
edburns Jul 27, 2026
6da6dd8
3.12 Resolution + Phase 4 linux-x64-first DRI note
edburns Jul 27, 2026
8998915
Provide resolutions for 3.13 and 3.14
edburns Jul 28, 2026
e3bc764
GUTDODP
edburns Jul 28, 2026
0acc50e
Fix 6 LLM-friendliness inconsistencies in Phase 4 implementation steps
edburns Jul 28, 2026
c164a81
GUTDODP
edburns Jul 28, 2026
19be2a8
docs(plan): normalize linux-x64-only invariant wording
edburns Jul 28, 2026
0a50b4d
docs(plan): add Phase 4 implementation sequence diagram
edburns Jul 28, 2026
8fad57c
docs(plan): include all pending modified files
edburns Jul 28, 2026
02bfbdc
docs(plan): fix Mermaid parse in Phase 4 sequence diagram
edburns Jul 28, 2026
7e16aa8
docs(plan): fix second Mermaid parse error in phase 4 diagram
edburns Jul 28, 2026
ee3f705
docs(plan): rewrite phase 4 sequence diagram from first principles
edburns Jul 28, 2026
9cbaa43
Refactors
edburns Jul 28, 2026
b59bd7c
GUTDODP
edburns Jul 28, 2026
e540db8
GUTDODP
edburns Jul 28, 2026
d8a20a7
Prompt to create skill to create issues
edburns Jul 28, 2026
c9c0290
GUTDODP
edburns Jul 29, 2026
faefe2d
dd-dd-3039145-cast-phase-4-into-issues
edburns Jul 30, 2026
6ad4fe3
GUTDODP
edburns Jul 30, 2026
698a0c9
[Java] Add PlatformDetector and NativeRuntimeLoader for native binary…
Copilot Jul 30, 2026
05fde37
shepherd-tasks-20260730-0204
edburns Jul 30, 2026
5e24285
GUTDODP
edburns Jul 30, 2026
dfa6ea3
Revert "[Java] Add PlatformDetector and NativeRuntimeLoader for nativ…
edburns Jul 30, 2026
c54999b
GUTDODP
edburns Jul 30, 2026
336e9fd
[Java] Task 4.1: Convert single-module java/ into multi-module Maven …
Copilot Jul 30, 2026
a7651ff
shepherd-tasks-20260730-2115
edburns Jul 30, 2026
2bdfb53
[Java] Add `PlatformDetector` for runtime classifier selection (#2173)
Copilot Jul 30, 2026
03d5848
shepherd-tasks-20260730-2134
edburns Jul 30, 2026
3678572
[Java] Embed Rust CLI runtime 4.3: NativeRuntimeLoader — native binar…
Copilot Aug 3, 2026
07eaec3
GUTDODP
edburns Aug 3, 2026
d1440c6
GUTDODP
edburns Aug 3, 2026
d7cd682
[Java] Embed Rust CLI runtime 4.4: JNA binding interface and implemen…
Copilot Aug 3, 2026
724b194
[Java] Add in-process FFI runtime host lifecycle and stream transport…
Copilot Aug 3, 2026
29798c4
[Java] Add RuntimeConnection hierarchy and in-process transport dispa…
Copilot Aug 3, 2026
00bc009
[Java] Add copilot-native module producing linux-x64 classifier JAR f…
Copilot Aug 3, 2026
f8bd50f
Java: Add InProcess FFI transport E2E test (task 4.8) (#2238)
Copilot Aug 4, 2026
cb1bc22
ci(java): add linux in-process Java SDK workflow job
Copilot Aug 4, 2026
62b67eb
ci: add continue-on-error to java-sdk-inprocess job
edburns Aug 4, 2026
2c9f725
ci: remove continue-on-error from java-sdk-inprocess job
edburns Aug 4, 2026
c6b9b71
ci: restore continue-on-error for java-sdk-inprocess job
edburns Aug 4, 2026
6eec637
shepherd output shepherd-tasks-20260803-1550
edburns Aug 4, 2026
6eb1f49
GUTDODP
edburns Aug 4, 2026
dd15956
token analysis
edburns Aug 4, 2026
72fb0b1
Scrub secrets
edburns Aug 4, 2026
dbf1a7b
GUTDODP
edburns Aug 4, 2026
072caf6
Redact data
edburns Aug 4, 2026
2efa660
GUTDOP
edburns Aug 4, 2026
2ea1b6c
Remove prompts
edburns Aug 4, 2026
46ea215
Suppress CodeQL weak-crypto alert for RFC 6455 WebSocket handshake SHA-1
edburns Aug 4, 2026
82b0ee9
ci(java): remove leaked COPILOT_SDK_DEFAULT_CONNECTION from step env
edburns Aug 4, 2026
75c9cc4
Fix CodeQL relative-path-command alerts in test code
edburns Aug 4, 2026
17c8219
Fix CodeQL container-contents-never-accessed alerts
edburns Aug 4, 2026
e47e186
Fix CodeQL always-true comparison and string identity alerts
edburns Aug 5, 2026
1ba7770
Add CodeQL suppression for intentional string identity comparison
edburns Aug 5, 2026
68f6385
Replace identity comparison with .equals() for ABSENT_SENTINEL
edburns Aug 5, 2026
333171c
Re-add prompts for further iteration
edburns Aug 5, 2026
181da0a
GUTDODP
edburns Aug 6, 2026
ae8ad83
[WIP] Achieve 100% InProcess and out-of-process test parity (#2272)
Copilot Aug 7, 2026
920fb6c
Remove prompts
edburns Aug 7, 2026
289f206
Move release profile to parent POM, add in-process docs, mark Runtime…
edburns Aug 7, 2026
c3f3ab5
Fix DocumentationSamplesTest README path after move to java/
edburns Aug 7, 2026
d66ea1a
Remove unused options parameter from resolveInProcessEntrypoint
edburns Aug 7, 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
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
{
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:2-3.14-trixie",
"image": "mcr.microsoft.com/devcontainers/python:3-3.14-trixie",
"features": {
"ghcr.io/devcontainers/features/copilot-cli:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/go:1": {},
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers-extra/features/uv:1": {},
"ghcr.io/schlich/devcontainer-features/just:0": {}
"ghcr.io/schlich/devcontainer-features/just:0": {},
"ghcr.io/devcontainers/features/dotnet:2": {}
}

// Features to add to the dev container. More info: https://containers.dev/features.
Expand Down
13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.github/workflows/*.lock.yml linguist-generated=true merge=ours

# Cross-platform tools rewrite these files, so keep their output deterministic.
java/**/*.java text eol=lf

# Generated files — keep LF line endings so codegen output is deterministic across platforms.
nodejs/src/generated/* eol=lf linguist-generated=true
dotnet/src/Generated/* eol=lf linguist-generated=true
python/copilot/generated/* eol=lf linguist-generated=true
go/zsession_events.go eol=lf linguist-generated=true
go/zsession_encoding.go eol=lf linguist-generated=true
go/rpc/zrpc.go eol=lf linguist-generated=true
go/rpc/zrpc_encoding.go eol=lf linguist-generated=true
29 changes: 29 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh
#
# Pre-commit hook that runs Spotless check on the Java SDK when Java source
# files are staged. Only triggers if changes exist under java/src/.
#
# To install this hook, run from the repository root:
# git config core.hooksPath .githooks
#

# Only run Spotless if staged changes include Java source files under java/src/
if ! git diff --cached --name-only | grep -q '^java/src/'; then
exit 0
fi

echo "Running Spotless check on java/ ..."

# Run spotless check from the java directory
(cd java && mvn spotless:check -q)

if [ $? -ne 0 ]; then
echo ""
echo "❌ Spotless check failed!"
echo " Run 'cd java && mvn spotless:apply' to fix formatting issues."
echo ""
exit 1
fi

echo "✓ Spotless check passed"
exit 0
186 changes: 186 additions & 0 deletions .github/actions/java-test-report/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
name: "Java Test Report"
description: "Generate and publish test reports with summary for Java SDK tests."
inputs:
report-path:
description: "Path to the test report XML files (glob pattern)"
required: false
default: "java/sdk/target/{surefire-reports*,failsafe-reports}/TEST-*.xml"
jacoco-path:
description: "Path to the JaCoCo XML report"
required: false
default: "java/sdk/target/site/jacoco-coverage/jacoco.xml"
jacoco-csv-path:
description: "Path to the JaCoCo CSV report"
required: false
default: "java/sdk/target/site/jacoco-coverage/jacoco.csv"
check-name:
description: "Name for the check run"
required: false
default: "Java SDK Test Results"
title:
description: "Title for the test report summary"
required: false
default: "Copilot Java SDK :: Test Results"
runs:
using: "composite"
steps:
- name: Generate Test Summary
shell: bash
run: |
echo "## 🧪 ${{ inputs.title }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

if ls ${{ inputs.report-path }} 1>/dev/null 2>&1; then
TESTS_RUN=$(grep -h "tests=" ${{ inputs.report-path }} 2>/dev/null | sed 's/.*tests="\([0-9]*\)".*/\1/' | awk '{s+=$1} END {print s}')
FAILURES=$(grep -h "failures=" ${{ inputs.report-path }} 2>/dev/null | sed 's/.*failures="\([0-9]*\)".*/\1/' | awk '{s+=$1} END {print s}')
ERRORS=$(grep -h "errors=" ${{ inputs.report-path }} 2>/dev/null | sed 's/.*errors="\([0-9]*\)".*/\1/' | awk '{s+=$1} END {print s}')
SKIPPED=$(grep -h "skipped=" ${{ inputs.report-path }} 2>/dev/null | sed 's/.*skipped="\([0-9]*\)".*/\1/' | awk '{s+=$1} END {print s}')

TESTS_RUN=${TESTS_RUN:-0}
FAILURES=${FAILURES:-0}
ERRORS=${ERRORS:-0}
SKIPPED=${SKIPPED:-0}
PASSED=$((TESTS_RUN - FAILURES - ERRORS - SKIPPED))

if [ "$FAILURES" -eq 0 ] && [ "$ERRORS" -eq 0 ]; then
echo "### ✅ All tests passed!" >> $GITHUB_STEP_SUMMARY
else
echo "### ❌ Some tests failed" >> $GITHUB_STEP_SUMMARY
fi

echo "" >> $GITHUB_STEP_SUMMARY
echo "| Metric | Count |" >> $GITHUB_STEP_SUMMARY
echo "|--------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| ✅ Passed | $PASSED |" >> $GITHUB_STEP_SUMMARY
echo "| ❌ Failed | $FAILURES |" >> $GITHUB_STEP_SUMMARY
echo "| 💥 Errors | $ERRORS |" >> $GITHUB_STEP_SUMMARY
echo "| ⏭️ Skipped | $SKIPPED |" >> $GITHUB_STEP_SUMMARY
echo "| 📊 Total | $TESTS_RUN |" >> $GITHUB_STEP_SUMMARY

echo "" >> $GITHUB_STEP_SUMMARY
echo "### Test Classes" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Class | Tests | Passed | Failed | Errors | Time |" >> $GITHUB_STEP_SUMMARY
echo "|-------|-------|--------|--------|--------|------|" >> $GITHUB_STEP_SUMMARY

for file in ${{ inputs.report-path }}; do
if [ -f "$file" ]; then
CLASS=$(basename "$file" .xml | sed 's/TEST-//')
T=$(grep -m 1 -o 'tests="[0-9]*"' "$file" | sed 's/[^0-9]//g')
F=$(grep -m 1 -o 'failures="[0-9]*"' "$file" | sed 's/[^0-9]//g')
E=$(grep -m 1 -o 'errors="[0-9]*"' "$file" | sed 's/[^0-9]//g')
TIME=$(grep -m 1 -o 'time="[0-9.]*"' "$file" | sed 's/[^0-9.]//g')
P=$((T - F - E))

STATUS="✅"
if [ "${F:-0}" -gt 0 ] || [ "${E:-0}" -gt 0 ]; then
STATUS="❌"
fi

echo "| $STATUS $CLASS | ${T:-0} | ${P:-0} | ${F:-0} | ${E:-0} | ${TIME:-0}s |" >> $GITHUB_STEP_SUMMARY
fi
done
else
echo "⚠️ No test reports found at ${{ inputs.report-path }}" >> $GITHUB_STEP_SUMMARY
fi

- name: Generate Coverage Summary
shell: bash
run: |
JACOCO_XML="${{ inputs.jacoco-path }}"
JACOCO_CSV="${{ inputs.jacoco-csv-path }}"

if [ -f "$JACOCO_XML" ]; then
echo "" >> $GITHUB_STEP_SUMMARY
echo "## 📊 Code Coverage" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# JaCoCo XML may be on a single line - split it for parsing
# Extract report-level counters (last occurrence of each type before </report>)
extract_counter() {
local type=$1
local field=$2
# Split XML on > to get one tag per line, find counter, extract value
sed 's/>/>\n/g' "$JACOCO_XML" | grep "<counter type=\"$type\"" | tail -1 | sed "s/.*$field=\"\([0-9]*\)\".*/\1/"
}

INSTR_MISSED=$(extract_counter "INSTRUCTION" "missed")
INSTR_COVERED=$(extract_counter "INSTRUCTION" "covered")

BRANCH_MISSED=$(extract_counter "BRANCH" "missed")
BRANCH_COVERED=$(extract_counter "BRANCH" "covered")

LINE_MISSED=$(extract_counter "LINE" "missed")
LINE_COVERED=$(extract_counter "LINE" "covered")

METHOD_MISSED=$(extract_counter "METHOD" "missed")
METHOD_COVERED=$(extract_counter "METHOD" "covered")

CLASS_MISSED=$(extract_counter "CLASS" "missed")
CLASS_COVERED=$(extract_counter "CLASS" "covered")

# Calculate percentages
calc_pct() {
local covered=$1
local missed=$2
if [ -n "$covered" ] && [ -n "$missed" ]; then
local total=$((covered + missed))
if [ "$total" -gt 0 ]; then
echo "scale=1; $covered * 100 / $total" | bc
else
echo "0"
fi
else
echo "N/A"
fi
}

INSTR_PCT=$(calc_pct "${INSTR_COVERED:-0}" "${INSTR_MISSED:-0}")
BRANCH_PCT=$(calc_pct "${BRANCH_COVERED:-0}" "${BRANCH_MISSED:-0}")
LINE_PCT=$(calc_pct "${LINE_COVERED:-0}" "${LINE_MISSED:-0}")
METHOD_PCT=$(calc_pct "${METHOD_COVERED:-0}" "${METHOD_MISSED:-0}")
CLASS_PCT=$(calc_pct "${CLASS_COVERED:-0}" "${CLASS_MISSED:-0}")

echo "| Metric | Covered | Missed | Coverage |" >> $GITHUB_STEP_SUMMARY
echo "|--------|---------|--------|----------|" >> $GITHUB_STEP_SUMMARY
echo "| 📝 Instructions | ${INSTR_COVERED:-0} | ${INSTR_MISSED:-0} | ${INSTR_PCT}% |" >> $GITHUB_STEP_SUMMARY
echo "| 🌿 Branches | ${BRANCH_COVERED:-0} | ${BRANCH_MISSED:-0} | ${BRANCH_PCT}% |" >> $GITHUB_STEP_SUMMARY
echo "| 📏 Lines | ${LINE_COVERED:-0} | ${LINE_MISSED:-0} | ${LINE_PCT}% |" >> $GITHUB_STEP_SUMMARY
echo "| 🔧 Methods | ${METHOD_COVERED:-0} | ${METHOD_MISSED:-0} | ${METHOD_PCT}% |" >> $GITHUB_STEP_SUMMARY
echo "| 📦 Classes | ${CLASS_COVERED:-0} | ${CLASS_MISSED:-0} | ${CLASS_PCT}% |" >> $GITHUB_STEP_SUMMARY

if [ -f "$JACOCO_CSV" ]; then
extract_instruction_scope() {
local scope=$1
awk -F',' -v scope="$scope" -v generated_prefix="com.github.copilot.generated" '
NR > 1 {
is_generated = index($2, generated_prefix) == 1
if ((scope == "generated" && is_generated) ||
(scope == "handwritten" && !is_generated)) {
missed += $4
covered += $5
}
}
END { print covered + 0 "," missed + 0 }
' "$JACOCO_CSV"
}

IFS=, read -r HANDWRITTEN_COVERED HANDWRITTEN_MISSED <<< "$(extract_instruction_scope handwritten)"
IFS=, read -r GENERATED_COVERED GENERATED_MISSED <<< "$(extract_instruction_scope generated)"
HANDWRITTEN_PCT=$(calc_pct "${HANDWRITTEN_COVERED:-0}" "${HANDWRITTEN_MISSED:-0}")
GENERATED_PCT=$(calc_pct "${GENERATED_COVERED:-0}" "${GENERATED_MISSED:-0}")

echo "" >> $GITHUB_STEP_SUMMARY
echo "### Coverage by Code Origin (Instructions)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Origin | Covered | Missed | Coverage |" >> $GITHUB_STEP_SUMMARY
echo "|--------|---------|--------|----------|" >> $GITHUB_STEP_SUMMARY
echo "| ✍️ Handwritten | ${HANDWRITTEN_COVERED:-0} | ${HANDWRITTEN_MISSED:-0} | ${HANDWRITTEN_PCT}% |" >> $GITHUB_STEP_SUMMARY
echo "| 🤖 Generated | ${GENERATED_COVERED:-0} | ${GENERATED_MISSED:-0} | ${GENERATED_PCT}% |" >> $GITHUB_STEP_SUMMARY
fi
else
echo "" >> $GITHUB_STEP_SUMMARY
echo "## 📊 Code Coverage" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "⚠️ No JaCoCo report found at $JACOCO_XML" >> $GITHUB_STEP_SUMMARY
fi
20 changes: 19 additions & 1 deletion .github/actions/setup-copilot/action.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,37 @@
name: "Setup Copilot"
description: "Setup Copilot based on the project's package.json file."
outputs:
cli-path:
description: "Path to the Copilot CLI"
value: ${{ steps.cli-path.outputs.path }}
runs:
using: "composite"
steps:
- uses: actions/setup-node@v6
if: runner.os != 'Windows'
with:
cache: "npm"
cache-dependency-path: "./nodejs/package-lock.json"
node-version: 22
- uses: actions/setup-node@v6
if: runner.os == 'Windows'
with:
node-version: 22
- name: Install dependencies
run: npm --prefix "$(pwd)/nodejs" ci --ignore-scripts
shell: bash
- name: Set CLI path
id: cli-path
run: echo "path=$(pwd)/nodejs/node_modules/@github/copilot/index.js" >> $GITHUB_OUTPUT
run: |
# As of CLI 1.0.64-1 the @github/copilot package is a thin loader; the
# runnable index.js ships in the installed platform package
# (e.g. @github/copilot-linux-x64). Exactly one is installed.
cli_path=$(ls "$(pwd)"/nodejs/node_modules/@github/copilot-*/index.js 2>/dev/null | head -n1)
if [ -z "$cli_path" ]; then
echo "Could not find @github/copilot platform package (index.js) under nodejs/node_modules" >&2
exit 1
fi
echo "path=$cli_path" >> $GITHUB_OUTPUT
shell: bash
- name: Verify CLI works
run: node ${{ steps.cli-path.outputs.path }} --version
Expand Down
Loading
Loading