Skip to content

feat: bundle token usage as agent artifact#24315

Merged
pelikhan merged 5 commits intomainfrom
copilot/expose-compiled-token-data-outputs
Apr 3, 2026
Merged

feat: bundle token usage as agent artifact#24315
pelikhan merged 5 commits intomainfrom
copilot/expose-compiled-token-data-outputs

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 3, 2026

The token usage step wrote to $GITHUB_STEP_SUMMARY only — no structured token data was available to third-party tools at runtime.

Changes

  • parse_token_usage.sh — After building the markdown table, runs an additional awk pass to produce /tmp/gh-aw/agent_usage.json with aggregated token totals as structured JSON
  • compiler_yaml_main_job.go — Includes /tmp/gh-aw/agent_usage.json in the unified artifact upload when the firewall is enabled
  • pkg/constants/job_constants.go — Adds TokenUsageFilename = "agent_usage.json" constant; the agent_ prefix distinguishes it from a future detection job artifact of the same shape

Result

An agent_usage.json file is written to /tmp/gh-aw/agent_usage.json and bundled in the agent artifact, providing structured token data for third-party tools without requiring step summary parsing:

{"input_tokens":1234,"output_tokens":567,"cache_read_tokens":890,"cache_write_tokens":0}

- Add ParseTokenUsageStepID constant for the token usage step
- Add step id: token_usage to the parse_token_usage step so outputs are addressable
- Update parse_token_usage.sh to write token totals to GITHUB_OUTPUT
- Add input_tokens, output_tokens, cache_read_tokens, cache_write_tokens to agent job outputs
- Update golden files and recompile lock files

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/3376d0c0-3332-4508-899b-9f4fdd7d82c1

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Expose compiled token data as job outputs feat: expose token usage totals as agent job outputs Apr 3, 2026
Copilot AI requested a review from pelikhan April 3, 2026 14:11
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 3, 2026

@copilot also write a usage.json file in the artifact folder so that it gets packaged

- Add TokenUsageFilename constant ("usage.json")
- parse_token_usage.sh now writes /tmp/gh-aw/usage.json with JSON token totals
- Include /tmp/gh-aw/usage.json in the agent artifact upload when firewall is enabled
- Update golden files and recompile lock files

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/8e8cf92a-1b36-4dfd-b5dd-ba2fd1798bb4

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot also write a usage.json file in the artifact folder so that it gets packaged

Done in a2bc908. parse_token_usage.sh now writes /tmp/gh-aw/usage.json with the aggregated token totals as JSON (e.g. {"input_tokens":1234,"output_tokens":567,"cache_read_tokens":890,"cache_write_tokens":0}), and that path is included in the unified agent artifact upload when the firewall is enabled.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw GO111MODULE 64/bin/go git rev-�� --show-toplevel ls /usr/bin/git /var/log GOPROXY x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw GO111MODULE ache/go/1.25.0/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.0/x--jq /usr/bin/git se 448951/b051/vet.js/fuzz_sanitize_output_harness.cjs cfg git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw GO111MODULE ache/go/1.25.0/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git se 448951/b059/vet.js/fuzz_sanitize_output_harness.cjs cfg git (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha -unreachable=false /tmp/go-build149448951/b094/vet.cfg /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet 2304706/b426/_pkgit GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -ato�� -bool -buildtags /home/REDACTED/.cargo/bin/bash -errorsas -ifaceassert -nilfunc bash (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -json cfg 64/bin/bash GOINSECURE GOMOD GOMODCACHE ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -bool -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git rev-�� --show-toplevel -tests /usr/bin/git /tmp/go-build424git -trimpath 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b035/vet.cfg 448951/b347/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b116/vet.cfg 448951/b340/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x--jq -uns�� -unreachable=false /tmp/go-build149448951/b036/vet.cfg 448951/b352/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b070/vet.cfg 448951/b351/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b135/vet.cfg 448951/b314/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b124/vet.cfg 448951/b367/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b053/vet.cfg 448951/b357/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE ache/go/1.25.0/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE 448951/b137/vet.graphql git (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet r: $owner, name: $name) { hasDiscussionsEnabled } } -unreachable=falgit /tmp/go-build149-C 448951/b369/vet./home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet r: $owner, name: $name) { hasDiscussionsEnabled } } -unreachable=faldocker /tmp/go-build149image /opt/hostedtoolcinspect sh (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0 --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet $name) { hasDiscussionsEnabled } } se 448951/b091/vet.js/fuzz_sanitize_output_harness.cjs ache/go/1.25.0/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet /usr/bin/git se 448951/b272/vet.-C bin/bash git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build149448951/b059/vet.cfg 448951/b358/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha -json cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha -json cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel -tests /usr/bin/git &#34;prettier&#34; --chegit sh 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha &#34;prettier&#34; --cheGOSUMDB node 64/bin/go tierignore --write 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha --show-toplevel ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet $name) { hasDiscussionsEnabled } } se 448951/b224/vet.-C ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows gh api /repos/actions/setup-go/git/ref/tags/v4 --jq /usr/bin/git -json GO111MODULE /opt/hostedtoolc/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha &#34;prettier&#34; --cheGOSUMDB node 64/bin/go tierignore --write 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title feat: expose token usage totals as agent job outputs feat: expose token usage totals as agent job outputs and artifact Apr 3, 2026
@pelikhan pelikhan marked this pull request as ready for review April 3, 2026 14:34
Copilot AI review requested due to automatic review settings April 3, 2026 14:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes aggregated token usage from the firewall proxy available to downstream GitHub Actions jobs by exposing token totals as agent job outputs and by bundling a structured usage.json file into the agent artifact.

Changes:

  • Adds an id to the “Parse token usage for step summary” step so step outputs are addressable (steps.token_usage.outputs.*).
  • Wires aggregated token totals into the agent job’s outputs when the firewall is enabled.
  • Includes /tmp/gh-aw/usage.json in the unified agent artifact upload and updates compiled workflow fixtures/lockfiles accordingly.

Reviewed changes

Copilot reviewed 190 out of 190 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pkg/workflow/compiler_yaml_ai_execution.go Assigns a stable step id for the token usage parsing step so outputs can be referenced.
pkg/workflow/compiler_main_job.go Exposes token totals as agent job outputs (firewall-enabled workflows).
pkg/workflow/compiler_yaml_main_job.go Adds aggregated usage.json to the unified agent artifact paths (firewall-enabled workflows).
pkg/constants/job_constants.go Introduces constants for the token usage step ID and aggregated JSON filename.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden Updates golden output to include the new step id, outputs, and artifact path.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden Updates golden output to include the new step id, outputs, and artifact path.
.github/workflows/*.lock.yml Regenerates locked workflow YAML to include the new step id, job outputs, and usage.json artifact path.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +193 to +197
if isFirewallEnabled(data) {
outputs["input_tokens"] = fmt.Sprintf("${{ steps.%s.outputs.input_tokens }}", constants.ParseTokenUsageStepID)
outputs["output_tokens"] = fmt.Sprintf("${{ steps.%s.outputs.output_tokens }}", constants.ParseTokenUsageStepID)
outputs["cache_read_tokens"] = fmt.Sprintf("${{ steps.%s.outputs.cache_read_tokens }}", constants.ParseTokenUsageStepID)
outputs["cache_write_tokens"] = fmt.Sprintf("${{ steps.%s.outputs.cache_write_tokens }}", constants.ParseTokenUsageStepID)
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the token-usage parsing step is marked continue-on-error: true and the underlying script can exit successfully without writing any $GITHUB_OUTPUT values (e.g., when token-usage.jsonl is missing/empty or AWF is older), these job outputs can end up as empty strings. That can break downstream jobs expecting numeric values. Consider adding expression defaults (e.g., || '0') for each of these outputs so downstream consumers always get a usable number.

Copilot uses AI. Check for mistakes.
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 3, 2026

@copilot rename usage.json to agent_usage.json since detection will have one too

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot rename usage.json to agent_usage.json since detection will have one too

Done in bfc211d. Renamed to agent_usage.json everywhere — the constant, the shell script output path, the artifact collection in the compiler, and all 183 recompiled lock files.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw /tmp/go-build3622715565/b001/importcfg -pack /tmp/go-build3622715565/b001/_testmain.go (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility */*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore --global r: $owner, name: $name) { hasDiscussionsEnabled } } http.https://gitgit (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0 --jq .object.sha (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha ./../pkg/workflo-errorsas ta-outputs $name) { hasDiscussionsEnabled } } (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copy link
Copy Markdown
Collaborator

@pelikhan pelikhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot not expose effective tokens in outputs, the rest is in usage file

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot not expose effective tokens in outputs, the rest is in usage file

Done in efce56e. Removed the four token count entries from the agent job outputs map, dropped the $GITHUB_OUTPUT awk pass from parse_token_usage.sh, removed the id: token_usage step ID, and removed the ParseTokenUsageStepID constant. The agent_usage.json artifact remains the single source of truth for token data.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw /tmp/go-build4248524229/b001/importcfg -pack /tmp/go-build4248524229/b001/_testmain.go (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility */*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore --local r: $owner, name: $name) { hasDiscussionsEnabled } } http.https://gitgit (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0 --jq .object.sha (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha ./../pkg/workflo-errorsas (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title feat: expose token usage totals as agent job outputs and artifact feat: bundle token usage as agent artifact Apr 3, 2026
Copilot AI requested a review from pelikhan April 3, 2026 14:58
@pelikhan pelikhan merged commit 9f4697f into main Apr 3, 2026
82 of 84 checks passed
@pelikhan pelikhan deleted the copilot/expose-compiled-token-data-outputs branch April 3, 2026 15:01
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.

feat: expose compiled token data as job outputs or artifact (not just step summary)

3 participants