From 2d2944b25c8c7e914e9eaae1912afea886f218f3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 3 Apr 2026 20:29:29 +0000
Subject: [PATCH 1/2] fix: wrap token usage step summary in a details section
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/835f9989-d5ae-42b5-846b-8f6fdd4cc6e4
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/parse_mcp_gateway_log.cjs | 7 ++++++-
actions/setup/js/parse_mcp_gateway_log.test.cjs | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/actions/setup/js/parse_mcp_gateway_log.cjs b/actions/setup/js/parse_mcp_gateway_log.cjs
index 90f102e4b8..a4fe85327a 100644
--- a/actions/setup/js/parse_mcp_gateway_log.cjs
+++ b/actions/setup/js/parse_mcp_gateway_log.cjs
@@ -124,7 +124,9 @@ function generateTokenUsageSummary(summary) {
if (!summary || summary.totalRequests === 0) return "";
const lines = [];
- lines.push("### ๐ Token Usage\n");
+ lines.push("");
+ lines.push("๐ Token Usage
\n");
+ lines.push("");
lines.push("| Model | Input | Output | Cache Read | Cache Write | ET | Requests | Duration |");
lines.push("|-------|------:|-------:|-----------:|------------:|---:|---------:|---------:|");
@@ -162,6 +164,9 @@ function generateTokenUsageSummary(summary) {
lines.push(`ET weights: input=${w.input} ยท cached_input=${w.cached_input} ยท output=${w.output} ยท reasoning=${w.reasoning} ยท cache_write=${w.cache_write}`);
}
+ lines.push("");
+ lines.push(" \n");
+
return lines.join("\n") + "\n";
}
diff --git a/actions/setup/js/parse_mcp_gateway_log.test.cjs b/actions/setup/js/parse_mcp_gateway_log.test.cjs
index 41dc72d1cc..908475669e 100644
--- a/actions/setup/js/parse_mcp_gateway_log.test.cjs
+++ b/actions/setup/js/parse_mcp_gateway_log.test.cjs
@@ -1004,7 +1004,8 @@ not-json
test("renders header and table columns", () => {
const summary = parseTokenUsageJsonl(JSON.stringify({ model: "claude-sonnet-4-6", provider: "anthropic", input_tokens: 100, output_tokens: 200, cache_read_tokens: 5000, cache_write_tokens: 3000, duration_ms: 2500 }));
const md = generateTokenUsageSummary(summary);
- expect(md).toContain("### ๐ Token Usage");
+ expect(md).toContain("");
+ expect(md).toContain("๐ Token Usage
");
expect(md).toContain("| Model | Input | Output | Cache Read | Cache Write | ET | Requests | Duration |");
expect(md).toContain("claude-sonnet-4-6");
});
From 3ce5f6414f559dd1bdbdb90a849811329ff88c52 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 3 Apr 2026 21:06:14 +0000
Subject: [PATCH 2/2] fix: remove emoji, use core.summary.addDetails for token
usage section
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1d8a78e1-e123-46fd-adb7-4e41cb919cf1
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/parse_mcp_gateway_log.cjs | 6 +-----
actions/setup/js/parse_mcp_gateway_log.test.cjs | 3 +--
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/actions/setup/js/parse_mcp_gateway_log.cjs b/actions/setup/js/parse_mcp_gateway_log.cjs
index a4fe85327a..e91bacf600 100644
--- a/actions/setup/js/parse_mcp_gateway_log.cjs
+++ b/actions/setup/js/parse_mcp_gateway_log.cjs
@@ -124,9 +124,6 @@ function generateTokenUsageSummary(summary) {
if (!summary || summary.totalRequests === 0) return "";
const lines = [];
- lines.push("");
- lines.push("๐ Token Usage
\n");
- lines.push("");
lines.push("| Model | Input | Output | Cache Read | Cache Write | ET | Requests | Duration |");
lines.push("|-------|------:|-------:|-----------:|------------:|---:|---------:|---------:|");
@@ -165,7 +162,6 @@ function generateTokenUsageSummary(summary) {
}
lines.push("");
- lines.push(" \n");
return lines.join("\n") + "\n";
}
@@ -188,7 +184,7 @@ function writeStepSummaryWithTokenUsage(coreObj) {
const parsedSummary = parseTokenUsageJsonl(content);
const markdown = generateTokenUsageSummary(parsedSummary);
if (markdown.length > 0) {
- coreObj.summary.addRaw(markdown);
+ coreObj.summary.addDetails("Token Usage", "\n\n" + markdown);
}
// Export total effective tokens as a GitHub Actions env var for use in
// generated footers (GH_AW_EFFECTIVE_TOKENS is read by messages_footer.cjs)
diff --git a/actions/setup/js/parse_mcp_gateway_log.test.cjs b/actions/setup/js/parse_mcp_gateway_log.test.cjs
index 908475669e..c69b7e1bf3 100644
--- a/actions/setup/js/parse_mcp_gateway_log.test.cjs
+++ b/actions/setup/js/parse_mcp_gateway_log.test.cjs
@@ -288,6 +288,7 @@ Some content here.`;
setFailed: vi.fn(),
summary: {
addRaw: vi.fn().mockReturnThis(),
+ addDetails: vi.fn().mockReturnThis(),
write: vi.fn(),
},
};
@@ -1004,8 +1005,6 @@ not-json
test("renders header and table columns", () => {
const summary = parseTokenUsageJsonl(JSON.stringify({ model: "claude-sonnet-4-6", provider: "anthropic", input_tokens: 100, output_tokens: 200, cache_read_tokens: 5000, cache_write_tokens: 3000, duration_ms: 2500 }));
const md = generateTokenUsageSummary(summary);
- expect(md).toContain("");
- expect(md).toContain("๐ Token Usage
");
expect(md).toContain("| Model | Input | Output | Cache Read | Cache Write | ET | Requests | Duration |");
expect(md).toContain("claude-sonnet-4-6");
});