Skip to content

feat: audit command accepts multiple run IDs for automatic diff mode#28483

Merged
pelikhan merged 7 commits intomainfrom
copilot/update-mcp-tool-wrapper
Apr 25, 2026
Merged

feat: audit command accepts multiple run IDs for automatic diff mode#28483
pelikhan merged 7 commits intomainfrom
copilot/update-mcp-tool-wrapper

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 25, 2026

The audit command only accepted a single run ID/URL, requiring users to explicitly invoke audit diff for comparisons. This change makes multi-run diff mode accessible directly from audit, surfaces the same capability in the MCP tool wrapper, deprecates the audit diff subcommand in its favor, and updates all agent instruction files and documentation to teach the new syntax.

CLI

audit now accepts one or more run IDs/URLs (MinimumNArgs(1)). When 2+ args are given, the first is the base and the rest are comparisons:

gh aw audit 1234567890 1234567891              # diff two runs
gh aw audit 1234567890 1234567891 1234567892   # diff base against multiple
gh aw audit https://github.com/.../runs/123 456  # URLs and IDs mixed
gh aw audit 1234567890 1234567891 --format markdown  # Markdown diff output

Validation (self-comparison, duplicates, invalid IDs) mirrors the audit diff subcommand. The --parse flag is silently a no-op in multi-run mode (single-run only).

Job URLs and step-anchored URLs (e.g. .../job/123 or #step:7:1) are accepted as base or comparison arguments in diff mode — the job/step specificity is silently normalized to the parent run ID, so it is always a run-level diff.

The audit diff subcommand is now hidden (Hidden: true) and kept only for backward compatibility. Users should use audit <base> <compare...> going forward.

MCP tool (audit)

  • Added run_ids_or_urls []string as the new preferred field. Single item → audit report; 2+ items → diff mode.
  • run_id_or_url (string) kept as a deprecated backward-compat fallback.
  • Error envelope now includes run_ids_or_urls instead of run_id_or_url.
{ "run_ids_or_urls": ["1234567890", "1234567891"] }

New flags

  • --format (pretty|markdown, default: pretty) added to the audit command for multi-run diff mode, matching the behavior already present on the hidden audit diff subcommand.

Docs & Instruction Files

  • docs/reference/audit.md: unified into a single audit section covering both single-run and multi-run diff usage; removed the standalone audit diff section; documented job/step URL normalization behavior in diff mode.
  • docs/guides/audit-with-agents.md: updated table and examples to use the new audit <id1> <id2> syntax.
  • debug.md: added multi-run diff examples to Quick Reference and Key Debugging Commands.
  • .github/aw/debug-agentic-workflow.md: updated Key Commands, added "Comparing two runs" guidance in the Audit step, updated agentic-workflows MCP tool hint to mention run_ids_or_urls.
  • scratchpad/dev.md: updated Command Categories and CLI reference table.
  • docs/setup/cli.md: renamed audit diff section to "Multi-run diff mode", updated all examples.
  • docs/troubleshooting/debugging.md, docs/guides/maintaining-repos.md, docs/patterns/monitoring.md, docs/reference/network.md, docs/reference/mcp-gateway.md, docs/reference/glossary.md: replaced audit diff <id1> <id2> with audit <id1> <id2> throughout.

Copilot AI and others added 2 commits April 25, 2026 16:53
- Update NewAuditCommand to accept MinimumNArgs(1); when 2+ args are
  provided the first is used as the base run and the rest as comparison
  runs, delegating to RunAuditDiff (same as 'audit diff' subcommand)
- Add runAuditMulti helper that parses each arg via ParseRunURLExtended,
  validates for self-comparison and duplicates, then calls RunAuditDiff
- Update registerAuditTool MCP wrapper to accept run_ids_or_urls []string
  (new preferred field) while keeping run_id_or_url string for backward
  compat; builds multi-arg audit command when multiple items are supplied
- Update TestAuditToolErrorEnvelopeSetsIsErrorFalse to check run_ids_or_urls
- Add TestAuditTool_MultiRunDiffMode and TestAuditTool_ReturnsErrorWhenNoRunIDProvided

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d520a589-9e48-4171-926c-40d7175d7392

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Simplify RunIDsOrURLs jsonschema annotation (avoid duplicating tool desc)
- Improve error message when no run ID provided to be more descriptive
- Rename TestAuditTool_ReturnsErrorWhenNoRunIDProvided to FailsWhen...
- Add TestRunAuditMulti_Validation covering self-comparison, duplicates,
  and invalid run ID error cases

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d520a589-9e48-4171-926c-40d7175d7392

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

@copilot deprecated audit diff in favor of audit only (hide command), update docs

- Mark NewAuditDiffSubcommand as Hidden:true (deprecated in favor of
  passing multiple run IDs directly to 'audit')
- Remove "(same as 'audit diff')" from audit command long description
- Update docs/reference/audit.md: collapse single-run and diff sections
  into one unified 'audit' section, drop standalone 'audit diff' section
- Update docs/guides/audit-with-agents.md: replace 'audit diff <id1> <id2>'
  references with 'audit <id1> <id2>'

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/2a22e031-c8d1-45e7-a844-87e4695937d5

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

Copilot AI commented Apr 25, 2026

@copilot deprecated audit diff in favor of audit only (hide command), update docs

Done in 161440b:

  • audit diff is now hidden (Hidden: true) — it still works for backward compat but no longer appears in gh aw audit --help
  • docs/reference/audit.md: collapsed into a single unified audit section covering both single-run and multi-run diff usage; removed the standalone audit diff section
  • docs/guides/audit-with-agents.md: updated the table and regression detection example to use gh aw audit <id1> <id2> / audit MCP tool with multiple run IDs

Copilot AI requested a review from pelikhan April 25, 2026 17:12
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot update debug.md and other instruction files to teach the agent about multi run id audit

…un audit

Update all agent instruction files and documentation to replace
`audit diff` references with the new `audit <base> <compare...>` syntax:

- debug.md: add multi-run diff examples to Quick Reference and Key Commands
- .github/aw/debug-agentic-workflow.md: update Key Commands, add multi-run
  note in "Audit the Run" section, clarify agentic-workflows tool usage
- scratchpad/dev.md: update Command Categories and CLI quick-reference table
- docs/troubleshooting/debugging.md: replace audit diff with audit multi-run
- docs/setup/cli.md: rename 'audit diff' section to 'Multi-run diff mode',
  update examples to use new syntax
- docs/guides/maintaining-repos.md: replace audit diff invocations
- docs/patterns/monitoring.md: replace audit diff, add multi-run example
- docs/reference/network.md: replace audit diff
- docs/reference/mcp-gateway.md: replace audit diff reference
- docs/reference/glossary.md: rename 'Audit Diff (gh aw audit diff)'
  entry and update Firewall Analysis entry

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e375d9d1-739e-4744-ab6a-5d9dd4146e28

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

Copilot AI commented Apr 25, 2026

@copilot update debug.md and other instruction files to teach the agent about multi run id audit

Done in b75db83. Updated the following instruction and documentation files to teach agents about multi-run audit:

Agent instruction files:

  • debug.md — added multi-run diff examples to Quick Reference and Key Debugging Commands
  • .github/aw/debug-agentic-workflow.md — updated Key Commands list, added a "Comparing two runs" block in the Audit step, updated agentic-workflows tool hint to mention run_ids_or_urls
  • scratchpad/dev.md — updated Command Categories (notes audit diff is hidden) and CLI reference table

Docs:

  • docs/setup/cli.md — renamed audit diff section to "Multi-run diff mode", updated all examples
  • docs/troubleshooting/debugging.md, docs/guides/maintaining-repos.md, docs/patterns/monitoring.md, docs/reference/network.md, docs/reference/mcp-gateway.md, docs/reference/glossary.md — replaced audit diff <id1> <id2> with audit <id1> <id2> throughout

@pelikhan pelikhan marked this pull request as ready for review April 25, 2026 17:37
Copilot AI review requested due to automatic review settings April 25, 2026 17:37
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

Updates the gh aw audit UX so users can run multi-run diffs directly via audit <base> <compare...>, with corresponding MCP tool/schema updates and documentation/instruction refreshes; keeps audit diff hidden for backward compatibility.

Changes:

  • CLI: audit now accepts 1+ run IDs/URLs and routes 2+ args into diff mode; audit diff is hidden/deprecated.
  • MCP: audit tool adds run_ids_or_urls (preferred) while keeping run_id_or_url as a deprecated fallback; error envelopes now echo run_ids_or_urls.
  • Docs/instructions: replace audit diff usage with audit <id1> <id2> across guides and references.
Show a summary per file
File Description
pkg/cli/audit.go Accept multiple args for audit and add runAuditMulti diff-mode entrypoint.
pkg/cli/audit_diff_command.go Hide/deprecate audit diff while retaining implementation for compatibility.
pkg/cli/mcp_tools_privileged.go Extend MCP audit tool args to support multi-run via run_ids_or_urls and update error envelope.
pkg/cli/mcp_tools_privileged_test.go Update envelope assertions and add MCP multi-run argument passthrough test.
pkg/cli/audit_test.go Add validation tests for runAuditMulti argument handling.
docs/src/content/docs/reference/audit.md Unify docs under audit syntax and document multi-run diff mode.
docs/src/content/docs/setup/cli.md Update CLI setup docs to teach multi-run diffs via audit.
docs/src/content/docs/troubleshooting/debugging.md Update troubleshooting guidance to use audit <id1> <id2>.
scratchpad/dev.md Update scratchpad command tables/examples to new audit diff syntax.
debug.md / .github/aw/debug-agentic-workflow.md Update quick references and agent debugging instructions to new syntax.
docs/src/content/docs/reference/network.md Update network docs to use multi-run audit diff mode.
docs/src/content/docs/reference/mcp-gateway.md Update MCP gateway guidance to new diff invocation.
docs/src/content/docs/reference/glossary.md Reframe “Audit Diff” as multi-run mode under audit.
docs/src/content/docs/patterns/monitoring.md Update monitoring examples to audit <base> <compare...>.
docs/src/content/docs/guides/maintaining-repos.md Replace audit diff examples with multi-arg audit.
docs/src/content/docs/guides/audit-with-agents.md Update agent guidance to use MCP audit tool for diffs.

Copilot's findings

Tip

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

Comments suppressed due to low confidence (2)

pkg/cli/audit.go:174

  • Multi-run diff mode hard-codes the output format to "pretty" and the audit command does not define/plumb a --format flag, so gh aw audit <base> <compare...> --format markdown (documented elsewhere in this PR) will fail and users can’t get Markdown diffs via the new syntax. Consider adding a --format flag to audit (multi-run only) and passing its value through to runAuditMulti/RunAuditDiff (reusing the same validation/allowed values as the hidden audit diff subcommand).
	}

	return RunAuditDiff(ctx, baseComponents.Number, compareRunIDs, owner, repo, hostname, outputDir, verbose, jsonOutput, "pretty", artifacts)
}

pkg/cli/audit.go:162

  • In multi-run diff mode, comparison args parsed from URLs may include a different host/owner/repo than the base (or --repo), but runAuditMulti ignores those fields and always diffs using the base repo context. This can lead to confusing 404s or (worse) comparing a run ID that exists in a different repo. Consider validating that any comparison URL with an explicit host/owner/repo matches the resolved base/--repo values (and similarly reject job/step URLs here if they’re intended to be single-run only).
	for _, arg := range args[1:] {
		c, err := parser.ParseRunURLExtended(arg)
		if err != nil {
			return fmt.Errorf("invalid comparison run %q: %w", arg, err)
		}
  • Files reviewed: 17/17 changed files
  • Comments generated: 2

Comment thread pkg/cli/audit.go Outdated
Comment on lines +136 to +140
// Parse base run
baseComponents, err := parser.ParseRunURLExtended(args[0])
if err != nil {
return fmt.Errorf("invalid base run %q: %w", args[0], err)
}
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

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

audit help text says job/step URLs are supported in single-run mode only, but runAuditMulti currently accepts a base argument that may include /job/<id> and/or #step: and silently ignores that extra specificity. It would be clearer to reject base job/step URLs in multi-run mode with a descriptive error (e.g., require run IDs or run URLs only).

This issue also appears in the following locations of the same file:

  • line 158
  • line 171

Copilot uses AI. Check for mistakes.
| `--parse` | off | Run JavaScript parsers on agent and firewall logs, writing `log.md` and `firewall.md` (single-run only) |
| `--repo <owner/repo>` | auto | Specify repository when the run ID is not from a URL |
| `--verbose` | off | Print detailed progress information |
| `--format <fmt>` | `pretty` | Diff output format: `pretty` or `markdown` (multi-run only) |
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

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

gh aw audit is documented here with a --format flag and --format markdown examples for multi-run diff mode, but the audit Cobra command in this PR doesn’t currently define/support --format (only the hidden audit diff subcommand does). Either add --format support to audit multi-run mode or adjust these docs/examples to match the actual CLI behavior.

Suggested change
| `--format <fmt>` | `pretty` | Diff output format: `pretty` or `markdown` (multi-run only) |

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 100/100

Excellent test quality

Metric Value
New/modified tests analyzed 4
✅ Design tests (behavioral contracts) 4 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 4 (100%)
Duplicate test clusters 0
Test inflation detected No
🚨 Coding-guideline violations None

Test Classification Details

View All Test Classifications
Test File Classification Notes
TestRunAuditMulti_Validation pkg/cli/audit_test.go:999 ✅ Design Table-driven, 4 error-only rows; verifies invalid-input rejection contracts
TestAuditToolErrorEnvelopeSetsIsErrorFalse (modified) pkg/cli/mcp_tools_privileged_test.go:287 ✅ Design Updated to assert new run_ids_or_urls array schema; behavioral contract preserved
TestAuditTool_MultiRunDiffMode pkg/cli/mcp_tools_privileged_test.go:342 ✅ Design Verifies all run IDs are forwarded as positional args and JSON output is correct
TestAuditTool_FailsWhenNoRunIDProvided pkg/cli/mcp_tools_privileged_test.go:390 ✅ Design Verifies missing-parameter error contract

Scoring Breakdown

Component Score Reason
Behavioral Coverage (40 pts) 40 4/4 tests are behavioral contracts
Error/Edge Case Coverage (30 pts) 30 4/4 tests include error paths
Low Duplication (20 pts) 20 No duplicate clusters detected
Proportional Growth (10 pts) 10 audit_test.go: 41/97 = 0.42; mcp_tools_privileged_test.go: 66/42 = 1.57 — both below 2:1 threshold

Language Support

Tests analyzed:

  • 🐹 Go (*_test.go): 4 tests — unit (//go:build !integration)
  • 🟨 JavaScript (*.test.cjs, *.test.js): 0 tests

Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). All four tests verify observable behavioral contracts with proper error-path coverage and descriptive assertion messages. The table-driven TestRunAuditMulti_Validation covers all four validation branches of runAuditMulti in a single, readable test function — exemplary style.


📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does:

  • Assert on observable outputs, return values, or state changes
  • Cover error paths and boundary conditions
  • Would catch a behavioral regression if deleted
  • Remain valid even after internal refactoring

Implementation Tests (Low Value) verify how the system does it:

  • Assert on internal function calls (mocking internals)
  • Only test the happy path with typical inputs
  • Break during legitimate refactoring even when behavior is correct
  • Give false assurance: they pass even when the system is wrong

Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.

References: §24936666712

🧪 Test quality analysis by Test Quality Sentinel · ● 663.8K ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

✅ Test Quality Sentinel: 100/100. Test quality is excellent — 0% of new tests are implementation tests (threshold: 30%). All four new/modified tests verify behavioral contracts with full error-path coverage and proper build tags.

… main command

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

Commit pushed: 852ee50

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions
Copy link
Copy Markdown
Contributor

🏗️ Design Decision Gate — ADR Required

This PR makes significant changes to core business logic (pkg/ directory: 257 new lines across audit.go, audit_diff_command.go, audit_test.go, mcp_tools_privileged.go, mcp_tools_privileged_test.go) but does not have a linked Architecture Decision Record (ADR).

AI has analyzed the PR diff and generated a draft ADR to help you get started:

📄 Draft ADR: docs/adr/28483-unify-audit-multi-run-diff-into-main-command.md

What to do next

  1. Review the draft ADR committed to your branch — it was generated from the PR diff
  2. Complete the missing sections — add context the AI couldn't infer, refine the decision rationale, and list real alternatives you considered
  3. Commit the finalized ADR to docs/adr/ on your branch
  4. Reference the ADR in this PR body by adding a line such as:

    ADR: ADR-28483: Unify Multi-Run Diff Mode into the Main audit Command

Once an ADR is linked in the PR body, this gate will re-run and verify the implementation matches the decision.

Why ADRs Matter

"AI made me procrastinate on key design decisions. Because refactoring was cheap, I could always say 'I'll deal with this later.' Deferring decisions corroded my ability to think clearly."

ADRs create a searchable, permanent record of why the codebase looks the way it does. Future contributors (and your future self) will thank you.


📋 Michael Nygard ADR Format Reference

An ADR must contain these four sections to be considered complete:

  • Context — What is the problem? What forces are at play?
  • Decision — What did you decide? Why?
  • Alternatives Considered — What else could have been done?
  • Consequences — What are the trade-offs (positive and negative)?

All ADRs are stored in docs/adr/ as Markdown files numbered by PR number (e.g., 28483-unify-audit-multi-run-diff-into-main-command.md for PR #28483).

🔒 This PR cannot merge until an ADR is linked in the PR body.

References:

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · ● 162.8K ·

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments

…o audit

- runAuditMulti now rejects base and comparison arguments that contain
  job/step URL specificity (JobID != 0 or StepNumber != 0) with a
  descriptive error; previously these were silently accepted and ignored
- Add --format flag (pretty|markdown, default: pretty) to the audit
  command for multi-run diff mode; previously runAuditMulti hardcoded
  "pretty" and the docs referenced a flag that didn't exist
- Update audit_test.go: fix runAuditMulti call signature and add two new
  test cases for job URL rejection

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/dc34ad55-b9ce-492b-a3ef-52e7c12f274c

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

Copilot AI commented Apr 25, 2026

@copilot review all comments

Addressed both review comments in a1e9963:

  1. Job/step URL rejection (audit.go:136-140): runAuditMulti now checks JobID != 0 || StepNumber != 0 on both the base and each comparison argument and returns a descriptive error. Added two new test cases to cover the new validation.

  2. --format flag (audit.md:43): Added --format (pretty|markdown, default: pretty) to the audit Cobra command and wired it through to RunAuditDiff. The docs and CLI help text now match the actual CLI behavior.

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 gh repo view --json owner,name --jq .owner.login &#43; &#34;/&#34; &#43; .name tartedAt,updatedAt,event,headBranch,headSha,displayTitle -p github.com/segmerev-parse -lang=go1.17 1/x64/bin/node -o /tmp/go-build303565601/b164/_pkg_.a -trimpath /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p crypto/internal/rev-parse -lang=go1.25 /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo -ato�� -bool -buildtags /bin/sh -errorsas -ifaceassert -nilfunc /bin/sh -c git-receive-pack &#39;/tmp/TestParse.artifacts[].name git-receive-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch849866980/001&#39; /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo rev-�� runs/20260425-175638-36174/test-3402364390/.github/workflows QLX65JRSUvpCHrYwEuIi/QLX65JRSUvpCHrYwEuIi /usr/lib/git-core/git l go1.25.8 -c=4 /usr/lib/git-correv-parse --gi�� for-each-ref --format=%(objectname) /usr/bin/git .github/workflowgit GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name graphql er@0.32.0 .yml -f owner=github -f /usr/bin/gh api graphql est me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f iles,SysoFiles,C/tmp/js-hash-test-3336458956/test-hash.js -f 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, .object.type] | @tsv --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git 1816/001/stabiligit bUnDtPSUd ache/node/24.14.--show-toplevel git rev-�� --show-toplevel go /usr/bin/git -U7HTRxJB GO111MODULE ache/go/1.25.8/xinstall git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git k/gh-aw/gh-aw/.ggit GoFiles,IgnoredGrev-parse 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/asm /usr/bin/git k/gh-aw/gh-aw/.gnode config /usr/bin/git git (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, .object.type] | @tsv /tmp/gh-aw-test-runs/20260425-175638-36174/test-3877402605 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel l /opt/hostedtoolcache/node/24.14.1/x64/bin/node k/gh-aw/gh-aw/.ggit config /usr/bin/git /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� steps.test.outputs.result git /usr/bin/git k/gh-aw/gh-aw config ession-insights.--show-toplevel git (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, .object.type] | @tsv b/workflows GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD bis 64/src/math/big/arith_wasm.s env 565601/b039/_pkg_.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git /ref/tags/v9 PSlwfWm62 1/x64/bin/node git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linu--auto /usr/bin/git vaScript38824890git 5rpj/jlujr24UGuYrev-parse iptables git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/infocmp --destination-pogit 53 /opt/hostedtoolc--show-toplevel infocmp -1 xterm-color node /usr/bin/git ons-test19299361git go /usr/bin/git 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, .object.type] | @tsv r-test4175419395/test1.md r-test4175419395/test2.lock.yml /usr/bin/git 33219362/001&#39; 33219362/001&#39; 64/bin/go git -C /tmp/TestGuardPo--json s/test.md /usr/bin/git remote.origin.urgit GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /tmp/TestHashStability_SameInputSameOutput1156209060/001/stability-test.md l /usr/bin/git --get latest yml git -C /tmp/TestGuardPolicyMinIntegrityOnlyCompiledOutput409441356/001 remote /usr/bin/git ithub/workflows config /usr/bin/gh 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, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuremote2 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv 5949-51413/test-2025153533 ^remote\..*\.gh-resolved$ /usr/bin/git /home/REDACTED/worbash rev-parse ache/go/1.25.8/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuTest User /usr/bin/git /ref/tags/v9 show sv git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -goversion go1.25.8 -c=4 -nolocalimports -importcfg /tmp/go-build303565601/b226/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -goversion go1.25.8 -c=4 -nolocalimports -importcfg /tmp/go-build303565601/b178/importcfg -pack env -json go _modules/.bin/sh-lang=go1.25 GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv go1.25.8 -c=4 -nolocalimports -importcfg /tmp/go-build303565601/b254/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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, .object.type] | @tsv --show-toplevel x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_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, .object.type] | @tsv ons-test192993614 go /usr/bin/git -json GO111MODULE 64/bin/go git -C /tmp/compile-instructions-test-1357285050/.github/workflows l /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile 7008732/b404/cli.test _.a GO111MODULE 64/pkg/tool/linu--show-toplevel 7008732/b404/cli.test (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv git-upload-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branch3665802205/001&#39; git-upload-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branch3665802205/001&#39; /usr/bin/git --show-toplevel git me: String!) { --show-toplevel git rev-�� --show-toplevel git /usr/bin/git k/gh-aw/gh-aw/.ggit config ity-sentinel.loc--show-toplevel git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv git-upload-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch849866980/001&#39; git-upload-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch849866980/001&#39; /usr/bin/git -json GO111MODULE 64/bin/go git -C /tmp/gh-aw-test-runs/20260425-175638-36174/test-928972029/.github/workflows remote /usr/bin/git -json GO111MODULE node git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel -pack /usr/bin/git --require erena-mcp-serverrev-parse /usr/sbin/bash git -C /tmp/gh-aw-test-runs/20260425-175949-51413/test-3344447499/.github/workflows remote /usr/bin/git k/gh-aw/gh-aw /tmp/go-handler---version t-tools.lock.yml-lang=go1.25 git (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, .object.type] | @tsv user.name ings.cjs odules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/git 5b5fa5e3..full-m/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile st/suppress-warn-o ules/.bin/node forks.js bran�� -M st/suppress-warnmain _modules/.bin/gi-lang=go1.25 -M full mode test t st/dist/workers//home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv . st/dist/workers/forks.js $name) { hasDiscussionsEnabled } } /tmp/bare-incremgit gin/full-mode-brcommit k/gh-aw/gh-aw/no-m git diff�� --binary (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv . tions/setup/js/node_modules/vite--stdout bin/git /tmp/bare-increm/opt/hostedtoolcache/node/24.14.1/x64/bin/node gin/full-mode-br--experimental-import-meta-resolve ode-gyp-bin/git ZQvRuir/LTCApDOf/home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs diff�� --binary st/suppress-warn--conditions k/node_modules/.development README.md ode_modules/viteapi tions/setup/js/ngraphql st/dist/workers/-f (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch .go test@example.com ules/.bin/go 64/bin/git e/git 90 git bran�� -cwd.go main repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } --is-ancestor k/gh-aw/gh-aw/ac-C 1/x64/bin/node git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch . /opt/hostedtoolcache/node/24.14.owner=github me: String!) { repository(owne-f r/work/gh-aw/gh-git /home/REDACTED/wor-C git /opt/hostedtoolcshow --ex�� k/gh-aw/gh-aw/.github/workflows /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs 1/x64/bin/node node --conditions development go (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, .object.type] | @tsv --show-toplevel x_amd64/vet /usr/bin/git json ]; then \ git GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git _.a GO111MODULE 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/vet /usr/bin/git ithub/workflows show n-dir/node git init�� nfig/composer/ve--show-toplevel git /usr/bin/git k/gh-aw/gh-aw/.ggit show 64/pkg/tool/linu--show-toplevel git (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, .object.type] | @tsv . l /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git ted-objects.md GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv git-receive-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch662329412/001&#39; git-receive-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch662329412/001&#39; /usr/bin/git k/gh-aw/gh-aw/.ggit /home/REDACTED/worrev-parse function-refacto--show-toplevel git rev-�� --show-toplevel /usr/bin/gh /usr/bin/git graphql :latest /usr/bin/infocmp--show-toplevel git (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, .object.type] | @tsv git-upload-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branchremote.origin.urgit l Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle -json GO111MODULE 64/bin/go git -C /tmp/TestGuardPolicyMinIntegrityOnlymin-integrity_only_defaults_repo1977870311/001 remote /usr/bin/git ted-objects.md GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv . -tests /usr/bin/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -c 5638-36174/test-605143122/.github/workflows TE68/Ns65yq8CR2ZxCmVfTE68 ache/go/1.25.8/x64/pkg/tool/linux_amd64/link GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 rg/x/mod@v0.35.0/semver/semver.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD 565601/b013/syma--show-toplevel ache/go/1.25.8/x64/pkg/tool/linuTest User /hom�� 565601/b214/_pkg_.a oYmy/n_pwg_VDfKQLamLkoYmy 565601/b214=&gt; **/*.json g/x/net/http/httrev-parse ../../../.pretti--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name }} {{context.Compiler}} ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet user.email k/gh-aw/gh-aw/acrev-parse -summary.lock.ym--show-toplevel ache/go/1.25.8/x64/pkg/tool/linutest@example.com -C 5949-51413/test-247031330 config /usr/bin/git remote.origin.urgit main oken-audit.lock.--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name om/goccy/go-yaml@v1.19.2/printer/color.go 1/x64/bin/node GOINSECURE fips140/alias GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile t-ha�� SameOutput3961261816/001/stability-test.md 3oGe/PFmiX04DWzK7JGiP3oGe es GOSUMDB /go-yaml/internarev-parse 64/bin/go sh (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 efaultBranchFromLsRemoteWithRealGitmain_branch3633219362/001&#39; At,event,headBranch,headSha,displayTitle GOINSECURE ntio/asm/internarev-parse GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu.github/workflows/test.md -c 565601/b164/_pkg_.a GOPROXY ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOSUMDB boring/bbig 64/bin/go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name rev-parse ache/go/1.25.8/x64/bin/go ithub/workflows git ache/uv/0.11.7/x--show-toplevel git -C 211474439/.github/workflows tPath,Error,Dir,GoFiles,IgnoredGoFiles,IgnoredOtherFiles,CFiles,CgoFiles,CXXFiles,MFiles,HFiles,rev-parse ache/node/24.14.1/x64/bin/node ithub/workflows -m ache/node/24.14.--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name om/goccy/go-yaml@v1.19.2/internal/errors/error.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE 565601/b047/ GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuAdd workflow -c 565601/b127/_pkg_.a GOPROXY ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOSUMDB /go-yaml/internarev-parse 565601/b047/syma--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE ntio/asm/cpu/cpurev-parse GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linustatus -c 5638-36174/test-1743186500/.gith.github/workflows/test.md GOPROXY .cfg GOSUMDB ntio/encoding/jsrev-parse run-script/lib/n--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name config ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile remote.origin.urgit git ptimization-kit.--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -C 211474439/.github/workflows rev-parse 0461835/b333=&gt; test-eKe6wM/textgit uments ion-check.lock.y--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 2e889ca642a5858ed984cd90f41ec1eb0ebfe11bcbc15396b4160abcfb937a5c-d GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url -c 5638-36174/test-605143122/.github/workflows TJ4J/EoB_P8I8HxwDW6KATJ4J 64/pkg/tool/linux_amd64/vet GOSUMDB fips140/nistec 64/bin/go 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 g/gitutil/gitutil.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD 565601/b007/syma--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile ache�� ApprovalLabelsCompiledOutput4045042298/001 **/*.cjs 1/x64/bin/node **/*.json /semver ../../../.pretti--show-toplevel /opt/hostedtoolcache/go/1.25.8/xtest@example.com (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name show ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet user.name uments .yml ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -C dNxR/7UbLNAn6yFfH-IGEdNxR config /usr/bin/git remote.origin.urgit main /home/REDACTED/wor--show-toplevel 5569132/b082/importcfg (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE At,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile t-ha�� SameOutput3961261816/001/stability-test.md HJpH/bR5uMPu5Fr3Cy4PJHJpH 7008732/b404/cli.test GOSUMDB GOWORK 64/bin/go 7008732/b404/cli.test (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 DefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen2917226505/001&#39; ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /hom�� 1272758750 rn9z/FXv0oohNOW0KmEF_rn9z 565601/b251=&gt; **/*.json b/gh-aw/pkg/giturun ../../../.prettilist /opt/hostedtoolc--json (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name rev-parse ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet ithub/workflows k/gh-aw/gh-aw/acrev-parse in/go ache/go/1.25.8/x64/pkg/tool/linuTest User -C /home/REDACTED/work/gh-aw/gh-aw show /usr/bin/git ithub/workflows main /opt/hostedtoolc--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 wSZY/jnOu1kEKMiklYICvwSZY 1/x64/bin/node GOINSECURE sysrand GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile t-ha�� ring1545125512/001/test2.md REzZ/UVSmm-gThuyfG0BeREzZ 565601/b250=&gt; **/*.json b/gh-aw/pkg/acti-1 ../../../.prettixterm-color /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name config ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet remote.origin.urgit s,MFiles,HFiles,rev-parse ache/node/24.14.--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -C 5949-51413/test-247031330 rev-parse /usr/bin/git ithub/workflows s,MFiles,HFiles,rev-parse repository(owne--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name DefaultBranchFromLsRemoteWithRealGitmaster_branch849866980/001&#39; .cfg GOINSECURE 565601/b006/ GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuorigin -c 5638-36174/test-3110073597/.github/workflows GOPROXY ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOSUMDB fips140/hkdf ache/go/1.25.8/x--get-regexp ache/go/1.25.8/x^remote\..*\.gh-resolved$ (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD 565601/b007/syma--show-toplevel ache/go/1.25.8/x64/pkg/tool/linutest@example.com /hom�� 1272758750 taK6/ikh7gQ1RReQdq87ptaK6 565601/b252=&gt; **/*.json b/gh-aw/pkg/semvrev-parse ../../../.pretti--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name tPath,Error,Dir,GoFiles,IgnoredGoFiles,IgnoredOtherFiles,CFiles,unsafe ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet user.email k/gh-aw/gh-aw/acrev-parse me: String!) { --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -C 5949-51413/test-247031330 nstants.go gine_constants.go ature_constants.git b_constants.go ol_constants.go l_constants.go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path 33219362/001&#39; 33219362/001&#39; 64/bin/go GOINSECURE GOMOD GOMODCACHE go env json&#39; --ignore-p-p GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 GOMOD GOMODCACHE x_amd64/compile env -json sonschema/annotations.go x_amd64/compile �� Action pins sgit GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env rtcfg GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.upstream.url (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1657008732/b404/cli.test /tmp/go-build1657008732/b404/cli.test -test.testlogfile=/tmp/go-build1657008732/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true -nolocalimports -importcfg /tmp/go-build303565601/b196/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /tmp/go-build833983199/b404/cli.test /tmp/go-build833983199/b404/cli.test -test.testlogfile=/tmp/go-build833983199/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true l git modules/@npmcli/-out=gosec-report.json git rev-�� k/gh-aw/gh-aw/.g-track-suppressions /bin/sh nt-all-merged.lo./... node /home/runnego ings.cjs t git (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, .object.type] | @tsv -v ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url /usr/bin/git rtcfg GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git Onlyrepos_only_wls aMu6/n6X7R7Av3bG-lh 565601/b206=&gt; git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linurev-parse /usr/bin/gh SameOutput115620git show ache/go/1.25.8/x--show-toplevel gh run download 5 /usr/bin/git test-logs/run-5 tPath,Error,Dir,-lh /usr/bin/git 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, .object.type] | @tsv tion-kit.md GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linurev-parse ache�� _.a GO111MODULE ache/uv/0.11.7/x86_64/sh GOINSECURE (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv ub/workflows rev-parse x_amd64/asm HEAD git x_amd64/link x_amd64/asm api ithub/workflows -f /usr/bin/gh l owner=github -f /usr/bin/gh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv ithub/workflows -f kflows/repo-tree-map.lock.yml -f iles,SysoFiles,C/tmp/js-hash-test-4030860761/test-hash.js -f git 3294�� ithub/workflows config x_amd64/compile remote.origin.urgit st/suppress-warnconfig k/_temp/uv-pythouser.email x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json 1.5.0/internal/util/net.go x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv to pkg/actionpin-errorsas GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE h-aw.wasm; \ AFremote (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env y-frontmatter.md GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows show pt.lock.yml l mp _modules/.bin/gi--get git -C ithub/workflows show /usr/bin/git l false ache/go/1.25.8/x-f 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, .object.type] | @tsv _.a GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE id GOMODCACHE 64/pkg/tool/linustatus env 1743186500/.gith.github/workflows/test.md GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE on ode-gyp-bin/sh 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv ithub/workflows rev-parse x_amd64/link l igFiles,SwigCXXF/tmp/test-expr-434020335.js r: $owner, name:github.actor x_amd64/link -C k/gh-aw/gh-aw/.github/workflows show 1/x64/bin/node user.name 71WJ/.diffsize.t-C tions/node_modul/tmp/shared-actions-test2871142648 -q/ivQULezFjoU4Fconfig (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOSUMDB l 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/cgo -V=f�� 5638-36174/test-1489061247 FnMM/DTE1YZYN5-LgmGb0FnMM es.lock.yml -json GO111MODULE 64/bin/go e/git (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion test-5C1Yjc/compgh --output=/tmp/girun repository(ownelist 1321271/b073/imp--json xpor�� &#39;/tmp/TestParseD--workflow &#39;/tmp/TestParseDnonexistent-workflow 983199/b440/vet.--limit s /opt/hostedtoolcrev-parse /opt/hostedtoolc--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linumyorg (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo _modules/.bin/no-lang=go1.25 GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 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 workflow list --repo owner/repo --json name,path,state /usr/bin/git l golang.org/x/texrev-parse -lang=go1.25 git rev-�� --show-toplevel -dwarf=false /opt/hostedtoolcache/node/24.14.1/x64/bin/node go1.25.8 -c=4 -nolocalimports node (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env json&#39; --ignore-p-p GO111MODULE node GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name /home/REDACTED/wor-- config me: String!) { repository(owner: $owner, name:-f remote.origin.ur/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch list --json /usr/bin/git --repo owner/repo 64/bin/go git rev-�� --show-toplevel l /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch /tmp/gh-aw-test-runs/20260425-175949-51413/test-1782710387/.github/workflows remote /opt/hostedtoolcache/node/24.14.1/x64/bin/node /home/REDACTED/worgit rev-parse alysis-report.lo--show-toplevel node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ai-moderator.md git /usr/bin/git ithub/workflows herFiles,CFiles,repo kflows/mergefestview git (http block)
  • invalid.example.invalid
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git e/git init�� ndor/bin/git git ode_modules/.bin/git =receive test@example.com--git-dir=/tmp/bare-incremental-MFkyH0 /git (dns block)

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

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot in diff mode do not reject job/steps URLs, instead normalize to diffing runs

… of rejecting

Remove the job/step URL rejection added in the previous commit. Job URLs
and step-anchored URLs are now silently normalized to their parent run ID
when used as base or comparison arguments in diff mode. This is consistent
with how ParseRunURLExtended already extracts the run Number from all URL
forms.

- Update test cases: replace "rejected" cases with "normalized" cases
  that prove self-comparison and duplicate detection still fire correctly
  after normalization
- Update docs/reference/audit.md to document the normalization behavior

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/066807a7-7dfd-4fba-8f75-4af6d1b2e3f1

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

Copilot AI commented Apr 25, 2026

@copilot in diff mode do not reject job/steps URLs, instead normalize to diffing runs

Done in 8f1adc4. Removed the rejection — job/step URLs are now silently normalized to their parent run ID in diff mode. Updated tests to confirm self-comparison and duplicate detection still work correctly after normalization (e.g. a job URL for run 1234567890 compared against 1234567890 is correctly caught as a self-comparison). Docs updated to describe the normalization behavior.

@pelikhan pelikhan merged commit d8c03c8 into main Apr 25, 2026
@pelikhan pelikhan deleted the copilot/update-mcp-tool-wrapper branch April 25, 2026 18:55
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.

3 participants