Skip to content

[pull] main from github:main - #220

Merged
pull[bot] merged 5 commits into
ehtick:mainfrom
github:main
Jul 16, 2026
Merged

[pull] main from github:main#220
pull[bot] merged 5 commits into
ehtick:mainfrom
github:main

Conversation

@pull

@pull pull Bot commented Jul 16, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

github-actions Bot and others added 5 commits July 16, 2026 13:49
* Update @github/copilot to 1.0.71

- Updated nodejs and test harness dependencies
- Re-ran code generators
- Formatted generated code

* Route Python hooks.invoke through generated client-global handler

CLI 1.0.71 promoted hooks.invoke to a client-global RPC method with a
generated HooksHandler interface. The handwritten SDK still registered its
own hooks.invoke handler, which only avoided colliding with the generated
one because global handlers were skipped when no LLM/telemetry adapter was
set.

Make the wiring intentional: add _HooksAdapter implementing the generated
HooksHandler protocol (routing HookInvokeRequest.sessionId to the matching
session's dispatcher), always register the client-global handlers with the
hooks adapter, and remove the redundant handwritten hooks.invoke
registrations and dead client-level handler.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951

* Route Node hooks.invoke through generated client-global handler

CLI 1.0.71 promoted hooks.invoke to a client-global RPC method with a
generated HooksHandler interface. The handwritten SDK registered its own
hooks.invoke handler on the connection, which the generated
registerClientGlobalApiHandlers then shadowed with an unwired handler that
threw "No hooks client-global handler registered" — so hooks never fired.

Wire the existing handleHooksInvoke routing into the generated
clientGlobalHandlers.hooks slot and drop the redundant handwritten
connection.onRequest("hooks.invoke") registration. Behavior is unchanged;
the dispatcher and its payload validation are reused as-is.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951

* Route Go hooks.invoke through generated client-global handler

CLI 1.0.71 promoted hooks.invoke to a client-global RPC method whose
generated registration installs a hooks.invoke handler that rejects all
invocations unless the Hooks slot is populated. Whenever an LLM inference
or telemetry adapter was configured, that generated handler overrode the
handwritten hooks.invoke registration and hooks stopped firing (e.g. the
sub-agent hook test).

Always register the client-global handlers with a hooksAdapter that
delegates to the existing per-session dispatcher, and drop the redundant
handwritten hooks.invoke registration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951

* Fix Rust hook input deserialization for float timestamps

The Copilot CLI serializes hook input `timestamp` as a JSON float
(e.g. `1784203878038.0`). Rust's hand-authored hook input structs typed
`timestamp` as `i64`, so `serde_json::from_value` rejected the float,
`dispatch_hook` returned an error, and the session handler fell back to
an empty `{ "output": {} }` response. Hooks therefore never fired: e.g. a
preToolUse deny was dropped, the CLI executed the tool, and the replayed
conversation diverged ("No cached response" -> 500).

Other SDKs tolerate this incidentally (Go decodes `input` into `any` and
re-marshals, dropping the `.0`); Rust decodes strictly. Type the hook
input `timestamp` fields as `f64` to match the shape the runtime sends.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951

* Fix .NET build break and float hook timestamps for hooks.invoke

CLI 1.0.71 promoted hooks.invoke to an internal client-global RPC method.
The C# codegen still emitted its internal request/result DTOs behind a public
IHooksHandler surface, producing CS0050/CS0051 inconsistent-accessibility
errors that broke the entire .NET build. It also registered a second, unwired
hooks.invoke handler that would shadow the working handwritten one.

Filter internal client-global and client-session methods in the C# code
generator so no generated interface, handler property, or RPC registration is
emitted for internal methods like hooks.invoke. The handwritten
SetLocalRpcMethod(hooks.invoke, ...) registration continues to serve hooks.
This mirrors, for .NET's static typing, the routing fixes already applied to
Node, Python, and Go.

Also tolerate hook timestamp epoch milliseconds encoded as either JSON
integers or floats in UnixMillisecondsDateTimeOffsetConverter, covering the
CLI 1.0.71 float serialization (matching the Rust fix).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 94a20428-6b0e-4733-a354-0abf2d186320

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Enable issue intents on issue-triage workflow

Recompile issue-triage.lock.yml with gh-aw v0.82.1 to wire
GH_AW_RUNTIME_FEATURES=${{ vars.GH_AW_RUNTIME_FEATURES }}, enabling native
issue intents (rationale/confidence) for the workflow's add-labels safe
output. No behavior change: the trigger, permissions, prompt, and safe
outputs are unchanged, and the source .md is untouched.

The actions-lock.json pin bump (github/gh-aw-actions/setup v0.82.1) is
required by the recompiled lock.

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

* Bump verify-compiled gh-aw pin to v0.82.1 and recompile locks

The verify-compiled workflow pinned gh-aw v0.77.5 while issue-triage.lock.yml
was compiled with v0.82.1, so CI recompiled at v0.77.5 and the byte diff failed
the check. Bump the pin to v0.82.1 to match, and recompile all lock files at
v0.82.1 so they are consistent with the pinned compiler.

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

* chore(aw): upgrade aw workflows with latest pre-release

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

* fix(ci): align verify workflow gh-aw toolchain

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

* Add generated agentics-maintenance workflow (gh-aw v0.82.10)

`gh aw compile` with the v0.82.10 toolchain introduced by this PR emits
`.github/workflows/agentics-maintenance.yml`. Commit the generated file
so it is tracked alongside the recompiled locks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 004ba78d-3cf4-41ab-8647-180e683460f0

* Enable org billing (copilot-requests) for agentic workflows

Add `permissions.copilot-requests: write` to all 11 agentic (gh-aw)
workflows so their Copilot usage is billed to the org, and recompile the
lock files. The compiled workflows now authenticate the Copilot CLI with
the GitHub Actions token and set S2STOKENS=true.

Authored by adding `features.copilot-requests: true`, migrating it with
`gh aw fix --write` (the deprecated flag maps to the permission), and
recompiling with gh-aw v0.82.10.

Rebased onto #1880 (issue-intents), which bumps the pinned gh-aw CLI to
v0.82.10.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 004ba78d-3cf4-41ab-8647-180e683460f0

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Jul 16, 2026
@pull pull Bot added the ⤵️ pull label Jul 16, 2026
@pull
pull Bot merged commit ebc84e3 into ehtick:main Jul 16, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant