Skip to content

Fix error message quality: prevent duplicate suggestions, strip redundant path prefix, improve YAML error IDE navigation#24766

Merged
pelikhan merged 4 commits intomainfrom
copilot/daily-syntax-error-analysis-2026-04-05
Apr 5, 2026
Merged

Fix error message quality: prevent duplicate suggestions, strip redundant path prefix, improve YAML error IDE navigation#24766
pelikhan merged 4 commits intomainfrom
copilot/daily-syntax-error-analysis-2026-04-05

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 5, 2026

Three error-quality issues identified by the daily syntax error analysis: duplicate permission scope lists in validation errors, redundant position info in single-failure messages, and YAML parse errors falling back to file:1:1: in IDEs.

Duplicate valid-scopes output (schema_errors.go / schema_compiler.go)

appendKnownFieldValidValuesHint and generateSchemaBasedSuggestions could both emit a full "Valid permission scopes: …" list for the same error. Fixed by changing appendKnownFieldValidValuesHint to return (string, bool) — the caller skips generateSchemaBasedSuggestions when the hint was already added.

// Before — both functions emitted a scopes list
Unknown property: issuess (Valid permission scopes: read, write, none…). Did you mean 'issues'? See: … Valid fields are: actions, administration, checks, contents, issues…

// After — hint added once
Unknown property: issuess (Valid permission scopes: read, write, none…). Did you mean 'issues'? See: …

Redundant path+position prefix for single-failure errors (schema_compiler.go)

formatSchemaFailureDetail prepends 'path' (line N, col M): to every detail line so multi-failure output is navigable. For a single failure this is redundant — the IDE-format header already encodes position. Added stripDetailLinePrefix and applied it in validateWithSchemaAndLocation for the single-failure case only.

// Before
workflow.md:3:1: error: 'engine' (line 3, col 1): value must be one of 'claude', 'copilot'…

// After
workflow.md:3:1: error: value must be one of 'claude', 'copilot'…

YAML syntax error IDE position fallback (frontmatter_error.go)

Both fallback paths in createFrontmatterError returned a plain fmt.Errorf, causing IDEs to default to file:1:1:. Both now return a FormattedParserError pointing at minimum to the frontmatter start line. Also extracted frontmatterParseErrPrefix as a named constant and replaced strings.Index slicing with strings.Cut.

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://un5my6tpgjf94hmrq01g.julianrbryant.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw git ache/node/24.14.--show-toplevel git rev-�� --show-toplevel erignore /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw 001' /usr/bin/git git rev-�� --show-toplevel git /usr/lib/git-core/git --show-toplevel git /usr/bin/git /usr/lib/git-core/git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw ^remote\..*\.gh-rev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git tmatter-with-nesgit git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name /tmp/TestHashSta--ignore-path -tests ache/node/24.14.--log-level=error (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name --show-toplevel git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 --git-dir iptables /usr/bin/git ithub/workflows/git security tions/setup/js/n--show-toplevel git rev-�� --show-toplevel ache/node/24.14.1/x64/bin/node /usr/bin/git LsRemoteWithRealgit LsRemoteWithRealrev-parse n-dir/node /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� 0706-27268/test-3141959821/.github/workflows git /usr/bin/git 72/001/stability/usr/bin/git git /usr/bin/mkdir git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha /opt/hostedtoolc--show-toplevel git /usr/bin/sed --show-toplevel node /usr/bin/git sed -ne s/^session\.gc_maxlifetime=\(.*\)$/\1/p git /usr/bin/git --get remote.origin.urrev-parse /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 for-each-ref --format=%(objectname) /usr/bin/git ntent.md -c=4 -nolocalimports git rev-�� --show-toplevel /tmp/go-build2967401585/b405/_testmain.go /usr/bin/infocmp bility_SameInputgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel /tmp/go-build222rev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel stants.test /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha (.*\)$/\2/p git ache/node/24.14.1/x64/bin/node runs/20260405-18git git /usr/bin/git git _cod�� --show-toplevel git ache/node/24.14.1/x64/bin/node . git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 g_.a 64/pkg/tool/linu-test.timeout=10-w ck --local til 1/x64/bin/node BB/DhPXKBUjWYAJ4repos/{owner}/{repo}/actions/runs/12345/artifacts sRem�� Si1MNtBjD ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet k/gh-aw/gh-aw/node_modules/.bin/sh vaScript18247439git 0519027/b085/vetrev-parse erignore ortcfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha xterm-color bash /usr/bin/git .js' --ignore-pagit 64/pkg/tool/linurev-parse ache/node/24.14.--show-toplevel git rev-�� --show-toplevel bash /usr/bin/git 1424878787 64/pkg/tool/linurev-parse x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel sh /usr/bin/git auto-triage-issugit '/tmp/TestParseDrev-parse 1/x64/bin/node git rev-�� --show-toplevel sh /usr/bin/git ithub/workflows/git ache/go/1.25.8/xrev-parse Name,createdAt,s--show-toplevel git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 run --auto /opt/hostedtoolcache/node/24.14.1/x64/bin/node --detach -tags 1/x64/bin/node node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ai-moderator.md ache/go/1.25.8/xremote.origin.url /usr/bin/git ../pkg/workflow/git x_amd64/vet x_amd64/link git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -m resolved$ /usr/bin/git orts3676741124/0git x_amd64/vet 1/x64/bin/node git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linu/tmp/go-build2967401585/b372/vet.cfg /usr/bin/git ../pkg/workflow/git x_amd64/vet ache/node/24.14.--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel ache/go/1.25.8/x-tests /usr/bin/git github.actor ache/go/1.25.8/xrev-parse 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 7401585/b424/_pkgit x_amd64/vet 7401585/b424=> git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 -bool -buildtags ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm -errorsas -ifaceassert -nilfunc ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm /tmp�� h ../../../.prettierignore -tests 86_64/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha sistency_GoAndJavaScript743935119/001/test-inlined-imports-enabled-with-env-template-expressions/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha sistency_WithImports1349192711/001/main.md (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 --show-current vL9a24R/kExe3dXfrev-parse /usr/bin/git 345 x_amd64/vet 1/x64/bin/node git conf�� user.email test@example.com /usr/bin/git ../pkg/workflow/git x_amd64/vet x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --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 /opt/hostedtoolcrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha /usr/bin/git git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node js/f�� /home/REDACTED/.do--show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node 64/bin/node bash /usr/bin/git node (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 -b resolved$ /usr/bin/git SameOutput425910git x_amd64/vet odules/npm/node_--show-toplevel git init�� x_amd64/vet ache/go/1.25.8/x--json /usr/bin/git ../pkg/workflow/git x_amd64/vet x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha ache/node/24.14..github/workflows/test.md git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node js/f�� /home/REDACTED/.co--show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node -aw-actions/git/git bash /usr/bin/git node (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 999 x_amd64/compile /usr/lib/git-core/git ctor }} /tmp/go-build231rev-parse 64/pkg/tool/linu--show-toplevel /usr/lib/git-core/git pack�� --all-progress-implied l 7401585/b420/vet.cfg --thin --delta-base-offrev-parse -q git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha --stat bc80b5b4e495a3ff034c74c2e7239be52b75c49e..HEAD /usr/bin/git --show-toplevel ache/node/24.14.rev-parse /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --depth 1 /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha ace-editor.md e/git 1/x64/bin/node --show-toplevel git /usr/bin/git git cjs --show-toplevel (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 -m Initial commit /usr/bin/git vaScript14450274git x_amd64/vet 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git ../pkg/workflow/git k/gh-aw/gh-aw/pkrev-parse 64/bin/bash git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� 3141959821/.github/workflows git /usr/bin/git -test.md /opt/hostedtoolcrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha sistency_WithImports2573824241/001/main.md git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node js/f�� /usr/bin/git git /opt/hostedtoolcache/node/24.14.1/x64/bin/node d /opt/hostedtoogit git /usr/bin/git node (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 k/gh-aw/gh-aw/pkg/repoutil/repoutil.go k/gh-aw/gh-aw/pkg/repoutil/repoutil_test.go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile ignore-path ../.git -buildtags 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -o /tmp/go-build2967401585/b420/_pkg_.a -trimpath /usr/bin/git -p github.com/githurev-parse -lang=go1.25 git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha h git /usr/bin/git --show-toplevel bash /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel ache/node/24.14.rev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git cjs --show-toplevel git 1/x64/bin/node 0706-27268/test-git git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 k/gh-aw/gh-aw/.github/workflows -parallel=4 ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -run=^Test ./... -short ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /tmp�� 7401585/b443/_pkg_.a 64/pkg/tool/linux_amd64/compile 1/x64/bin/node 2186/001/stabiligit -run modules/@npmcli/--show-toplevel 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha agentic-observability-kit.md git /usr/bin/git --git-dir bash /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/node/24.14.rev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git cjs --show-toplevel git 1/x64/bin/node licyBlockedUsersgit git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linu-trimpath ache/node/24.14.1/x64/bin/node 7514/001/stabilinode --local 64/pkg/tool/linu/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/archie.md prop.prop.prop.prop.prop.prop.pr-trimpath t-78�� *.json' '!../../../pkg/workflow/-p 64/pkg/tool/linu-goversion x_amd64/compile ).get('engine', git .cfg 64/pkg/tool/linu--show-toplevel x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 -buildtags tions/node_modules/.bin/node -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x-trimpath tion�� k/gh-aw/gh-aw/.github/workflows/-p -tests son ignore .cfg 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/node/24.14.-dwarf=false (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel node /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git es.md git x_amd64/asm }} ${{ github.actor }} ${{ github.actor }} ${{ rev-parse (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linux_amd64/vet de_modules/.bin/sh 35/001/test-frongit .cfg 64/pkg/tool/linu--show-toplevel ache/go/1.25.8/x64/pkg/tool/linuconfig --no�� b/workflows l_test.go 64/pkg/tool/linux_amd64/compile ed-imports-enablgit .cfg 64/pkg/tool/linu--git-dir 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 -buildtags 86_64/sh -errorsas -ifaceassert -nilfunc /opt/hostedtoolctest@example.com t-99�� *.json' '!../../../pkg/workflow/-test.timeout=10m0s -trimpath x_amd64/vet -p github.com/githurev-parse -lang=go1.25 x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel git /usr/bin/gh git rev-�� --show-toplevel gh /usr/bin/git /repos/actions/cgit --jq /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 mLsRemoteWithRealGitbranch_with_hyphen1471414846/001' tions/node_modules/.bin/sh re re 64/pkg/tool/linu--show-toplevel ache/go/1.25.8/x64/pkg/tool/linurev-parse --no�� b/workflows ne_constants.go x_amd64/link matter-with-arragit .cfg 64/pkg/tool/linuuser.email x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 LsRemoteWithRealGitbranch_with_hyphen1471414846/001' n-dir/sh 35/001/test-inligit .cfg 64/pkg/tool/linuuser.name /opt/hostedtoolcTest User t-29�� *.json' '!../../../pkg/workflow/-test.timeout=10m0s -trimpath 64/pkg/tool/linux_amd64/link -p github.com/githuconfig -lang=go1.25 64/pkg/tool/linuremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linu-trimpath ache/node/24.14.1/x64/bin/node 7514/001/stabiligit .cfg 64/pkg/tool/linu-lang=go1.25 bash t-27�� til.go o x_amd64/compile OKEN }} .cfg 64/pkg/tool/linu--show-toplevel x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 -buildtags tions/setup/js/n-nolocalimports -errorsas -ifaceassert -nilfunc gcc tion�� 126805538 c son ignore .cfg 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel docker /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linu-buildtags ndor/bin/sh 01/main.md --local 64/pkg/tool/linuuser.name bash t-24�� l.go l_test.go ache/uv/0.11.3/x86_64/node md .cfg 64/pkg/tool/linu--show-toplevel node (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 c ache/node/24.14.-importcfg - .cfg 64/pkg/tool/linu--show-toplevel /opt/hostedtoolc/home/REDACTED/work/gh-aw/gh-aw/scripts/lint_error_messages_test.go tion�� 126805538 64/pkg/tool/linux_amd64/vet son ignore .cfg 64/pkg/tool/linux_amd64/vet /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel node /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git es.md git /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linu-trimpath ache/node/24.14.1/x64/bin/node 01/main.md --local 64/pkg/tool/linuuser.email bash t-31�� *.json' '!../../../pkg/workflow/js/**/*.json' ---errorsas 64/pkg/tool/linu-goversion x_amd64/vet md .cfg 64/pkg/tool/linu-importcfg x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 64/pkg/tool/linux_amd64/vet ules/.bin/node auto-triage-issugit .cfg 64/pkg/tool/linu--git-dir /opt/hostedtoolcache/go/1.25.8/x--jq tion�� k/gh-aw/gh-aw/.github/workflows/agent-persona-ex-p -buildtags son ignore -ifaceassert -nilfunc /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git x_amd64/compile git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 64/pkg/tool/linu-buildtags ache/node/24.14.1/x64/bin/node 01/test1.md --local 64/pkg/tool/linu--git-dir bash t-22�� 1424878787 64/pkg/tool/linu-tests x_amd64/link d .cfg 64/pkg/tool/linu--git-dir x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 -test.timeout=10m0s de_modules/.bin/node -test.run=TestVagit .cfg 64/pkg/tool/linuuser.email /opt/hostedtoolctest@example.com tion�� k/gh-aw/gh-aw/.github/workflows/agent-persona-ex-test.timeout=10m0s -importcfg son ignore -w -buildmode=exe /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name git /usr/bin/git e-analyzer.md /tmp/go-build296rev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git x_amd64/cgo git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path /tmp/TestHashSta--ignore-path -tests ache/node/24.14.--log-level=error (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 (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 .cfg 64/pkg/tool/linuremove /opt/hostedtoolcmyorg 1/x6�� (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel Egba5hMFdlhDs/V9si2NAyGs7LdFX4AKremote /usr/bin/git 56114739/001 64/pkg/tool/linurev-parse 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git g_.a 64/pkg/tool/linu-c k/gh-aw/gh-aw/nogit-upload-pack 'origin' git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel head /usr/bin/git artifacts-summargit /usr/bin/git /usr/bin/git git rev-�� /ref/tags/v8 git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel git ache/node/24.14.1/x64/bin/node user.email test@example.comrev-parse /usr/bin/infocmp--show-toplevel ache/node/24.14.1/x64/bin/node 5405�� --show-toplevel infocmp /usr/bin/git xterm-color /opt/hostedtoolc-c /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 e-analyzer.md 64/pkg/tool/linux_amd64/vet x_amd64/compile son --local 64/pkg/tool/linu--git-dir x_amd64/compile 3628�� .prop.prop.prop.prop.prop.prop.p-test.timeout=10m0s 64/pkg/tool/linux_amd64/vet p/bin/sh nore e_includes_test./tmp/test-process-965170365.js .cfg grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git /tmp/go-build296git -trimpath ache/node/24.14.--show-toplevel git rev-�� --show-toplevel /bin/sh /usr/bin/git bility_SameInputgit git-upload-pack rev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha /lib/php/sessionclean; fi Test User /usr/bin/git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 agent-persona-ex-p security 1/x64/bin/node OUTPUT -d 168.63.129.16 1/x64/bin/node -c json' --ignore-p-c=4 f() { test "$1" -nolocalimports 1/x64/bin/node 0 -j ACCEPT 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git 1/x64/bin/node _bra�� d git ache/node/24.14.1/x64/bin/node --show-toplevel sh /usr/bin/git ache/node/24.14.remote (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 archie.md security 1/x64/bin/node -nxv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha blog-auditor.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha --noprofile (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 artifacts-summar-p (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/go/1.25.8/x64/bin/bash --show-toplevel node r: $owner, name:--show-toplevel bash 7411�� --noprofile git /usr/bin/git --show-toplevel sh /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 edOutput859480991/001 64/pkg/tool/linux_amd64/vet x_amd64/link son --local 64/pkg/tool/linu--show-toplevel x_amd64/link s-11�� .repository }}, Run: ${{ github.run_id }} 64/pkg/tool/linux_amd64/vet sh nore pull.rebase .cfg Lh/KVdc6Eu-CQtSe--json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link /usr/bin/git /tmp/go-build296git -importcfg ache/node/24.14.--show-toplevel git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu--json /usr/bin/git bility_SameInputgit -trimpath /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha nly git /usr/bin/git --show-toplevel git /usr/bin/git git remo�� cal/bin/node git /usr/bin/git LsRemoteWithRealnode LsRemoteWithRealjs/fuzz_sanitize_output_harness.cjs /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion get .cfg 64/pkg/tool/linu--show-toplevel ache/node/24.14.1/x64/bin/node 7407�� uts.branch 64/pkg/tool/linux_amd64/vet x_amd64/compile --local .cfg de/node/bin/bash x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion 034c74c2e7239be5git /opt/hostedtoolcremote /opt/hostedtoolcache/go/1.25.8/xuser.name git sRem�� --show-toplevel node /usr/bin/git install --package-lock-orev-parse /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -importcfg /tmp/go-build2967401585/b413/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/gitutil/gitutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/gitutil/gitutil_test.go _sch�� ll 2>&1 (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 86_64/bash (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /usr/bin/git --show-toplevel fig_helpers.go /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel 7401585/b402/conrev-parse /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build2967401585/b396/cli.test /tmp/go-build2967401585/b396/cli.test -test.testlogfile=/tmp/go-build2967401585/b396/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true -errorsas -ifaceassert -nilfunc node /tmp�� /tmp/TestHashSta--ignore-path -tests ache/node/24.14.--log-level=error (http block)
    • Triggering command: /tmp/go-build1149061323/b373/cli.test /tmp/go-build1149061323/b373/cli.test -test.paniconexit0 -test.timeout=10m0s -test.count=1 t-ha�� ithub/workflows/agent-persona-explorer.md git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� --show-toplevel git ache/node/24.14.1/x64/bin/node --show-toplevel erignore /usr/bin/git git (http block)
  • https://un5my6tpgjf94hmrq01g.julianrbryant.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 /tmp/TestHashStability_SameInputSameOutput330088-s -tests modules/@npmcli/run-script/lib/node-gyp-bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --show-toplevel git (http block)

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

Copilot AI and others added 3 commits April 5, 2026 18:10
…-failure path prefix, improve YAML error fallback

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/963e3158-9f25-4ca1-b15a-b0adf04ceacb

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…Hint, add constant, use strings.Cut, fix ineffassign

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/963e3158-9f25-4ca1-b15a-b0adf04ceacb

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Update daily syntax error quality analysis for 2026-04-05 Fix error message quality: prevent duplicate suggestions, strip redundant path prefix, improve YAML error IDE navigation Apr 5, 2026
Copilot AI requested a review from pelikhan April 5, 2026 18:21
@pelikhan pelikhan marked this pull request as ready for review April 5, 2026 18:22
Copilot AI review requested due to automatic review settings April 5, 2026 18:22
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

Improves developer-facing error message quality and IDE navigation by de-duplicating schema suggestions, reducing redundant position prefixes for single validation failures, and ensuring YAML frontmatter parse errors always emit IDE-compatible locations.

Changes:

  • Prevent duplicate “valid scopes/fields” suggestions by making appendKnownFieldValidValuesHint report whether it actually appended a hint and skipping schema-based suggestions when it did.
  • Strip the redundant '<path>' (line N, col M): prefix from single-failure schema validation messages (while preserving it for multi-failure output).
  • Ensure YAML frontmatter parse fallbacks return FormattedParserError with a meaningful file/line location and simplify prefix parsing using a constant + strings.Cut.
Show a summary per file
File Description
pkg/workflow/frontmatter_error.go Improves YAML frontmatter error fallback formatting for IDE navigation and avoids redundant parsing logic via a shared prefix constant.
pkg/parser/schema_errors.go Updates appendKnownFieldValidValuesHint to return (message, hintAdded) to support suggestion de-duplication.
pkg/parser/schema_errors_test.go Updates tests for the new appendKnownFieldValidValuesHint return signature.
pkg/parser/schema_compiler.go Removes redundant path+position prefixes for single-failure errors and avoids duplicate suggestions when a known-field hint is already added.
pkg/parser/safe_outputs_error_location_test.go Adds tests for prefix stripping, suggestion de-duplication behavior, and single-failure formatting.

Copilot's findings

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 1

Comment on lines +570 to +580
// "Valid permission scopes: …". Without the guard introduced by the fix,
// generateSchemaBasedSuggestions would also append "Valid fields are: …",
// resulting in the permission list being shown twice.
pathInfo := JSONPathInfo{
Path: "/permissions/completely-unknown-xyz",
Message: "additional properties not allowed",
}
result := formatSchemaFailureDetail(pathInfo, mainWorkflowSchema, "on: daily\npermissions:\n completely-unknown-xyz: read\n", 2)

// Count occurrences of "Valid " — there must be at most one.
count := strings.Count(result, "Valid ")
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

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

TestFormatSchemaFailureDetailNoDuplicateSuggestions doesn’t currently exercise the new guard: with input message "additional properties not allowed" (no property name), rewriteAdditionalPropertiesError won’t produce an "Unknown property" message, so appendKnownFieldValidValuesHint never runs and generateSchemaBasedSuggestions returns no "Valid …" output. Update the test to use a realistic additional-properties error that includes the invalid property name (e.g. "additional properties 'completely-unknown-xyz' not allowed") so the hint is appended and the test would fail if generateSchemaBasedSuggestions were still invoked.

Suggested change
// "Valid permission scopes: …". Without the guard introduced by the fix,
// generateSchemaBasedSuggestions would also append "Valid fields are: …",
// resulting in the permission list being shown twice.
pathInfo := JSONPathInfo{
Path: "/permissions/completely-unknown-xyz",
Message: "additional properties not allowed",
}
result := formatSchemaFailureDetail(pathInfo, mainWorkflowSchema, "on: daily\npermissions:\n completely-unknown-xyz: read\n", 2)
// Count occurrences of "Valid " — there must be at most one.
count := strings.Count(result, "Valid ")
// "Valid permission scopes: …". Without the guard introduced by the fix,
// generateSchemaBasedSuggestions would also append "Valid fields are: …",
// resulting in the permission list being shown twice.
//
// Use a realistic additional-properties message that includes the invalid
// property name so rewriteAdditionalPropertiesError produces an "Unknown
// property" message and the valid-values hint path is actually exercised.
pathInfo := JSONPathInfo{
Path: "/permissions/completely-unknown-xyz",
Message: "additional properties 'completely-unknown-xyz' not allowed",
}
result := formatSchemaFailureDetail(pathInfo, mainWorkflowSchema, "on: daily\npermissions:\n completely-unknown-xyz: read\n", 2)
// Count occurrences of "Valid " — there must be exactly one. Zero means the
// hint path was not exercised; more than one means the suggestion was
// duplicated.
count := strings.Count(result, "Valid ")
if count == 0 {
t.Fatalf("formatSchemaFailureDetail should include a single 'Valid ' hint for unknown permissions; got none in:\n%s", result)
}

Copilot uses AI. Check for mistakes.
@pelikhan pelikhan merged commit 2219048 into main Apr 5, 2026
66 of 67 checks passed
@pelikhan pelikhan deleted the copilot/daily-syntax-error-analysis-2026-04-05 branch April 5, 2026 18:33
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.

[syntax-error-quality] Daily Syntax Error Quality Analysis – 2026-04-05

3 participants