perf: fix ParseWorkflow regression — ~18% faster, ~22% fewer allocations#25990
perf: fix ParseWorkflow regression — ~18% faster, ~22% fewer allocations#25990
Conversation
…iltin cache Replace the json.Marshal/json.Unmarshal roundtrip in validateWithSchema with a direct recursive type normalization function (normalizeForJSONSchema). This avoids the serialization/deserialization overhead while still converting YAML-native types (uint64/int64) to JSON-compatible float64 for schema validation. Also optimize import field extraction for builtin virtual files (engine definitions) by using the process-level frontmatter cache (ExtractFrontmatterFromBuiltinFile) instead of re-parsing the same YAML content that was already parsed during processIncludedFileWithVisited. BenchmarkParseWorkflow results: - Before: ~320,000 ns/op, 170,000 B/op, 2,661 allocs/op - After: ~261,000 ns/op, 142,200 B/op, 2,081 allocs/op - Speed: ~18% faster - Memory: ~16% less - Allocations: ~22% fewer Agent-Logs-Url: https://github.com/github/gh-aw/sessions/cb3dee46-6a28-4a88-952e-7fc85d445324 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/cb3dee46-6a28-4a88-952e-7fc85d445324 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
|
Hey One gap before this is review-ready:
If you'd like a hand, here's a ready-to-use agentic prompt:
|
|
@copilot review all comments |
There was a problem hiding this comment.
Pull request overview
Improves ParseWorkflow performance by removing an expensive JSON marshal/unmarshal “type normalization” step during schema validation and by avoiding redundant YAML parsing for builtin engine imports.
Changes:
- Added a recursive
normalizeForJSONSchemahelper to coerce YAML-decoded numeric types into JSON-schema-friendly types without a JSON roundtrip. - Updated
validateWithSchemato use the new normalization helper instead ofjson.Marshal→json.Unmarshal. - Updated import field extraction to reuse the builtin frontmatter cache when re-parsing builtin files without inputs.
Show a summary per file
| File | Description |
|---|---|
pkg/parser/schema_compiler.go |
Replaces JSON roundtrip normalization with a recursive type coercion helper for schema validation. |
pkg/parser/import_field_extractor.go |
Uses cached builtin frontmatter parsing to avoid redundant YAML parses for builtin imports without inputs. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 2
| // normalizeForJSONSchema recursively converts YAML-native Go types to JSON-compatible | ||
| // types for JSON schema validation. goccy/go-yaml produces uint64 for positive integers | ||
| // and int64 for negative integers, but JSON schema validators expect float64 for all | ||
| // numbers (matching encoding/json's unmarshaling behavior). This avoids the overhead | ||
| // of a json.Marshal + json.Unmarshal roundtrip. |
There was a problem hiding this comment.
The comments say this is an “in-place normalization”, but normalizeForJSONSchema allocates new maps/slices and returns a copied structure instead of mutating the input. Please update the wording to avoid implying callers’ maps (including cached builtin frontmatter) are mutated.
| // normalizeForJSONSchema recursively converts YAML-native Go types to JSON-compatible | |
| // types for JSON schema validation. goccy/go-yaml produces uint64 for positive integers | |
| // and int64 for negative integers, but JSON schema validators expect float64 for all | |
| // numbers (matching encoding/json's unmarshaling behavior). This avoids the overhead | |
| // of a json.Marshal + json.Unmarshal roundtrip. | |
| // normalizeForJSONSchema recursively returns a normalized copy of v with YAML-native | |
| // Go types converted to JSON-compatible types for JSON schema validation. It does | |
| // not mutate the caller's maps or slices. goccy/go-yaml produces uint64 for | |
| // positive integers and int64 for negative integers, but JSON schema validators | |
| // expect float64 for all numbers (matching encoding/json's unmarshaling behavior). | |
| // This avoids the overhead of a json.Marshal + json.Unmarshal roundtrip. |
| @@ -217,27 +264,19 @@ func validateWithSchema(frontmatter map[string]any, schemaJSON, context string) | |||
| return fmt.Errorf("schema validation error for %s: %w", context, err) | |||
| } | |||
|
|
|||
| // Convert frontmatter to JSON and back to normalize types for validation | |||
| // Handle nil frontmatter as empty object to satisfy schema validation | |||
| var frontmatterToValidate map[string]any | |||
| // Normalize YAML-native Go types to JSON-compatible types for schema validation. | |||
| // goccy/go-yaml produces uint64/int64 for integers, but JSON schema validators | |||
| // expect float64 for all numbers (matching encoding/json's behavior). | |||
| // This in-place normalization avoids the overhead of a json.Marshal/Unmarshal roundtrip. | |||
| var normalized any | |||
| if frontmatter == nil { | |||
| frontmatterToValidate = make(map[string]any) | |||
| normalized = make(map[string]any) | |||
| } else { | |||
| frontmatterToValidate = frontmatter | |||
| } | |||
|
|
|||
| frontmatterJSON, err := json.Marshal(frontmatterToValidate) | |||
| if err != nil { | |||
| return fmt.Errorf("schema validation error for %s: failed to marshal frontmatter: %w", context, err) | |||
| } | |||
|
|
|||
| var normalizedFrontmatter any | |||
| if err := json.Unmarshal(frontmatterJSON, &normalizedFrontmatter); err != nil { | |||
| return fmt.Errorf("schema validation error for %s: failed to unmarshal frontmatter: %w", context, err) | |||
| normalized = normalizeForJSONSchema(frontmatter) | |||
| } | |||
|
|
|||
| // Validate the normalized frontmatter | |||
| if err := schema.Validate(normalizedFrontmatter); err != nil { | |||
| if err := schema.Validate(normalized); err != nil { | |||
| schemaCompilerLog.Printf("Schema validation failed for %s: %v", context, err) | |||
There was a problem hiding this comment.
This new normalization path is performance-sensitive and changes validation behavior for numeric types; there are existing unit tests for validateWithSchema, but none asserting that YAML-style ints (e.g., int64/uint64) are accepted against number/integer schema types. Please add coverage that exercises normalizeForJSONSchema via validateWithSchema (including nested maps/slices) to prevent regressions.
|
@copilot Review all comments |
Address review feedback: - Fix misleading "in-place" wording in normalizeForJSONSchema comment (it returns a copy, not mutating the caller's maps) - Add TestNormalizeForJSONSchema with table-driven coverage of all integer types, float types, and passthrough types - Add TestNormalizeForJSONSchema_NestedMap and _Slice for recursive cases - Add TestValidateWithSchema_YAMLIntegerTypes for end-to-end validation of YAML-native integer types against number/integer schema types - Add TestExtractAllImportFields_BuiltinCacheHit and _BuiltinWithInputsBypassesCache for cache path coverage Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f93d819e-783c-48c8-ba3e-3adafe779d6e Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Addressed all review comments in
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:
If you need me to access, download, or install something from one of these locations, you can either:
|
All review comments were already addressed in
No outstanding review items remain. |
|
@copilot review all comments and fix https://github.com/github/gh-aw/actions/runs/24347347426/job/71092313201 |
…lect fallback Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c863009f-265a-4560-90d8-92bf669bda0c Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed the CI failure in All prior review comments remain addressed — no outstanding items. 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:
If you need me to access, download, or install something from one of these locations, you can either:
|
BenchmarkParseWorkflowregressed 10.8% (1.32ms → 1.19ms historical). Profiling identified two hotspots.JSON roundtrip elimination in
validateWithSchemaSchema validation was normalizing YAML types via
json.Marshal→json.Unmarshalon every call. Replaced with a direct recursivenormalizeForJSONSchemathat convertsuint64/int64→float64in-place:Redundant YAML parse for builtin engine files
extractAllImportFieldsparsed builtin virtual files (e.g.@builtin:engines/claude.md) twice — once inprocessIncludedFileWithVisited(populating the process-level cache), then again via uncachedExtractFrontmatterFromContent. Now usesExtractFrontmatterFromBuiltinFilefor the second call, hitting the cache.Results
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/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 efaultBranchFromrev-parse ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git 1461288476 stmain.go 1/x64/bin/node git(http block)/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 git /usr/bin/git /opt/hostedtoolcache/node/24.14.--package-lock-only /tmp�� /usr/bin/git git /usr/bin/git --show-toplevel git /usr/bin/git git(http block)/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 git /usr/bin/git git 2824�� --show-toplevel git ache/go/1.25.8/x64/bin/node --show-toplevel git ptables git(http block)https://api.github.com/orgs/test-owner/actions/secrets/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node /opt�� prettier --check 64/bin/go **/*.ts **/*.json --ignore-path /bin/sh(http block)https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel x_amd64/vet /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� Secret: ${{ secrets.TOKEN }} go /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --noprofile 53 ache/node/24.14.1/x64/bin/node ACCEPT ache/go/1.25.8/xrev-parse /usr/bin/git ache/node/24.14.1/x64/bin/node 2784��(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v3/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha se 0050491/b111/vet.cfg /usr/bin/git 1059840875/001' 1059840875/001' 64/bin/go git rev-�� --show-toplevel 2504610/b418/impGOPROXY om/upstream/repo.git k/gh-aw/gh-aw/pkgit k/gh-aw/gh-aw/pkrev-parse 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel ortcfg /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v5/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 01/001/test-complex-frontmatter-with-tools.md GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -test.paniconexit0 -test.v=true /usr/bin/git -test.timeout=10git -test.run=^Test -test.short=true--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/link /usr/bin/git 4144306482/001 GO111MODULE ortcfg.link git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel go /usr/bin/git orts2795610404/0git GO111MODULE /opt/hostedtoolc--show-toplevel git rev-�� --show-toplevel go /usr/bin/git ithub-script/gitgit GO111MODULE(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v8/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel ache/node/24.14.-f1 /usr/bin/infocmp git rev-�� --show-toplevel infocmp /opt/hostedtoolcache/node/24.14.1/x64/bin/node xterm-color git /usr/bin/git /opt/hostedtoolcache/node/24.14.1/x64/bin/node(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v9/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq .object.sha tem ]; then /usr/lib/php/sessionclean; fi(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq .object.sha(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq .object.sha GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE go env hSDQ/Y9jyDvf0xHeGOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE 2504610/b397/impGO111MODULE(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha remove origin /usr/bin/git b/workflows GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/grep --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git grep -B2 FAIL\s /tmp/copilot-tool-output-1776064621063-r85ujy.txt /opt/pipx_bin/bash --show-toplevel git /usr/bin/git bash(http block)https://api.github.com/repos/actions/setup-node/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha add resolved$ /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/bash --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git bash --no�� --noprofile git /snap/bin/bash --show-toplevel /bin/sh /usr/bin/git bash(http block)https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha /tmp/go-build1200050491/b395/_pkg_.a -trimpath ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p github.com/githurev-parse -lang=go1.25 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet unpa�� --pack_header=2,3 -q /usr/bin/git -c=4 -nolocalimports -importcfg git(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha --show-toplevel git 86_64/bash --show-toplevel go /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel go /usr/bin/git git(http block)https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v7/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha 1708-31591/test-577487126/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go ortc�� -json stmain.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/link(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha ExpressionCompiledOutput4236302171/001 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet env -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v7 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git cal/bin/bash git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git p/bin/bash git(http block)/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha ch git /usr/bin/git --show-toplevel git sh git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git(http block)https://api.github.com/repos/docker/build-push-action/git/ref/tags/v7/usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v7 --jq .object.sha install --package-lock-oowner=github /usr/bin/git -t security /home/REDACTED/worgraphql git rev-�� --show-toplevel bash /usr/bin/git --noprofile owner /opt/hostedtoolc/home/REDACTED/work/gh-aw/gh-aw git(http block)/usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v7 --jq .object.sha install --package-lock-only $name) { hasDiscussionsEnabled } } -t security /home/REDACTED/.lographql git rev-�� --show-toplevel bash r: $owner, name:-f --noprofile conntrack /opt/hostedtoolc/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha /tmp/gh-aw-test-runs/20260413-071708-31591/test-1461288476 rev-parse /opt/hostedtoolcache/node/24.14.1/x64/bin/node @{u} GO111MODULE 64/bin/go node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ai-moderator.md go /usr/bin/git -json GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha --show-toplevel git /snap/bin/bash --show-toplevel bash /usr/bin/git bash --no�� --noprofile git /usr/bin/bash --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git bash(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha -aw/git/ref/tags/v2.0.0 -buildtags ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -errorsas -ifaceassert -nilfunc ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -c 0050491/b449/_pkg_.a git-receive-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen1236448034rev-parse 0050491/b449=> -json GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel go /usr/bin/git git rev-�� heckout/git/ref/tags/v5 git 1/x64/bin/node --show-toplevel go /usr/bin/git git(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha ithub/workflows/agentic-observability-kit.md g/typeutil/convert_test.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -s b/gh-aw/pkg/strirev-parse -buildmode=exe ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile 9040�� vwQI/NMpLmQ7z83YDrqtkvwQI my-default /usr/bin/git -json GO111MODULE 64/bin/go 0050491/b434/importcfg(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel go /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel go /usr/bin/git git(http block)https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 3191579503 GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE stants.test GOINSECURE GOMOD GOMODCACHE stants.test(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE util.test GOINSECURE GOMOD GOMODCACHE util.test(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 3191579503 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env " GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 3191579503 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE n-dir/bash GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 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/runs/4/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 260061488/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE 86_64/bash GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/workflows/usr/bin/gh gh workflow list --json name,state,path 57056889/001' 57056889/001' -importcfg /tmp/go-build1200050491/b411/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go /opt�� prettier --check 64/bin/go **/*.ts **/*.json --ignore-path golangci-lint(http block)/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 .prettierignore 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/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 go env -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel go(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/node/24.14.-c /usr/bin/git git(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha nly git /usr/bin/git /home/REDACTED/worbash rev-parse /opt/hostedtoolc--noprofile git rev-�� --show-toplevel node /usr/bin/git /tmp/TestHashConbash go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha "prettier" --che-test.timeout=10m0s sh 64/bin/go tierignore 64/pkg/tool/linuinit 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha --check scripts/**/*.js 64/bin/go .prettierignore 64/pkg/tool/linu-c 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE iE8t3kR/-pSRkXIpconfig(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha echo "��� JavaSc-test.timeout=10m0s node 64/bin/go -d scripts/**/*.js 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha -json GOMOD 64/bin/go -d scripts/**/*.js 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha --check scripts/**/*.js 64/bin/go .prettierignore scripts/**/*.js 64/bin/go go env 056889/001 056889/002/work 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/githubnext/agentics/git/ref/tags/-/usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha i-inference/git/ref/tags/v1 git /usr/bin/git rt git 1/x64/bin/node git rev-�� --show-toplevel 1/x64/bin/node /usr/bin/git --show-toplevel git /usr/local/sbin//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/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha edOutput4236302171/001 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env plorer.md GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --show-toplevel nly /usr/bin/git /home/REDACTED/worbash rev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git ../../../.prettibash l /usr/bin/git git(http block)https://api.github.com/repos/nonexistent/repo/actions/runs/12345/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/cgo env -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE node /opt�� prettier --check 64/bin/go **/*.ts **/*.json --ignore-path go(http block)https://api.github.com/repos/owner/repo/contents/file.md/tmp/go-build1200050491/b397/cli.test /tmp/go-build1200050491/b397/cli.test -test.testlogfile=/tmp/go-build1200050491/b397/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node(http block)https://api.github.com/repos/test-owner/test-repo/actions/secrets/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE node /opt�� prettier --check 64/bin/go **/*.ts **/*.json --ignore-path node(http block)If you need me to access, download, or install something from one of these locations, you can either: