Skip to content

fix: remove empty parent block after last child is removed by codemod#30216

Merged
pelikhan merged 4 commits intomainfrom
copilot/fix-gh-aw-fix-write-regression
May 5, 2026
Merged

fix: remove empty parent block after last child is removed by codemod#30216
pelikhan merged 4 commits intomainfrom
copilot/fix-gh-aw-fix-write-regression

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 4, 2026

When a codemod removes the last child of a parent block (e.g. features.mcp-cli is the only key under features:), the dangling features: line remains — YAML parses this as null, causing recompilation to fail with error: got null, want object.

Changes

  • yaml_frontmatter_utils.go — Adds a new removeParentBlockIfTrulyEmpty helper and calls it from removeFieldFromBlock after a field is removed. Unlike the existing removeBlockIfEmpty, the new helper treats any nested line — including user-authored comments — as "content", so parent blocks with only comments remaining are preserved rather than silently dropped. Applies to all codemods using removeFieldFromBlock (features.*, sandbox.*, mcp-scripts.*, etc.)

  • codemod_sandbox_mcp_internal.go — The sandbox.mcp.container and sandbox.mcp.version codemods now cascade removeParentBlockIfTrulyEmpty("sandbox") after removeFieldFromBlock. When mcp: is the sole child of sandbox: and becomes empty, sandbox: is also pruned rather than left as a dangling null key.

  • yaml_frontmatter_utils_test.go — Four new table-driven cases: removes empty parent when last child deleted, keeps parent when siblings remain, removes empty parent at end-of-frontmatter, and preserves the parent block header when only a user-authored comment remains under it.

  • codemod_sandbox_mcp_internal_test.go — Three new tests: grandparent sandbox: removal for container-only and version-only mcp: blocks, and a case confirming sandbox: is kept when it still has other children after mcp: is removed.

  • codemod_mount_as_clis_test.go — Adds assert.NotContains(result, "features:") to the removes features.mcp-cli flag case (the direct regression).

  • codemod_sandbox_agent_false_removal_test.go — Updates assertion from Contains("sandbox:") to NotContains("sandbox:"): an empty sandbox: block has the same null-YAML problem and should also be removed.

Before / after:

# Input
features:
  mcp-cli: true

# Before fix — invalid: features: null
features:

# After fix — block pruned entirely
# (no features: key)
# Input — nested case
sandbox:
  mcp:
    container: ghcr.io/example/gateway

# Before fix — both mcp: and sandbox: left dangling
sandbox:
  mcp:

# After fix — all three levels pruned
# (no sandbox: key)

Copilot AI and others added 2 commits May 4, 2026 20:27
…Block

When the last child of a parent block (e.g., features.mcp-cli) is
removed by a codemod, the dangling "features:" key is now also pruned
via the existing removeBlockIfEmpty helper. This prevents a null YAML
parse error ("got null, want object") during post-fix recompilation.

Updates:
- yaml_frontmatter_utils.go: call removeBlockIfEmpty after field removal
- yaml_frontmatter_utils_test.go: add 3 test cases for empty block removal
- codemod_mount_as_clis_test.go: assert features: block is also removed
- codemod_sandbox_agent_false_removal_test.go: update to expect empty
  sandbox: block removal (same null-YAML protection)

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a01531b9-f673-45dd-9c8a-ad74deff2bc4

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a01531b9-f673-45dd-9c8a-ad74deff2bc4

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix gh aw fix --write regression for empty features block fix: remove empty parent block after last child is removed by codemod May 4, 2026
Copilot AI requested a review from gh-aw-bot May 4, 2026 20:29
@pelikhan pelikhan marked this pull request as ready for review May 4, 2026 20:39
Copilot AI review requested due to automatic review settings May 4, 2026 20:39
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

Fixes a codemod regression where removing the last child from a YAML block should also remove the now-empty parent block instead of leaving an invalid key: null frontmatter entry.

Changes:

  • Updates removeFieldFromBlock to prune an empty parent block after deleting a child field.
  • Adds table-driven utility tests covering empty-parent removal and sibling-preservation cases.
  • Tightens codemod regression tests for features.mcp-cli and sandbox.agent: false so empty parent blocks are no longer expected to remain.
Show a summary per file
File Description
pkg/cli/yaml_frontmatter_utils.go Adds automatic empty-parent cleanup after field removal.
pkg/cli/yaml_frontmatter_utils_test.go Adds direct unit coverage for last-child removal behavior.
pkg/cli/codemod_sandbox_agent_false_removal_test.go Updates sandbox codemod regression to expect empty block pruning.
pkg/cli/codemod_mount_as_clis_test.go Adds regression assertion that empty features: is removed.

Copilot's findings

Tip

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

  • Files reviewed: 4/4 changed files
  • Comments generated: 2

Comment thread pkg/cli/yaml_frontmatter_utils.go Outdated
Comment on lines +199 to +200
if modified {
result = removeBlockIfEmpty(result, parentBlock)
Comment thread pkg/cli/yaml_frontmatter_utils.go Outdated
Comment on lines +199 to +200
if modified {
result = removeBlockIfEmpty(result, parentBlock)
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented May 4, 2026

@copilot review all comments

…x cleanup

Issue 1 (nested blocks): sandbox.mcp.container and sandbox.mcp.version
codemods now also cascade removeParentBlockIfTrulyEmpty("sandbox") after
removeFieldFromBlock, so an empty sandbox: grandparent is pruned too
rather than left as a dangling null YAML key.

Issue 2 (comments silently deleted): replace removeBlockIfEmpty with new
removeParentBlockIfTrulyEmpty, which treats any nested line (including
user-authored comments) as 'content'. The parent block header is only
removed when there are genuinely zero nested lines, so comments are
never silently dropped.

New tests added:
- keeps_parent_block_header_when_only_a_comment_remains_under_it
- TestSandboxMCPContainerRemoval_RemovesEmptySandboxGrandparent
- TestSandboxMCPVersionRemoval_RemovesEmptySandboxGrandparent
- TestSandboxMCPContainerRemoval_KeepsSandboxWhenOtherChildrenRemain

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d2df97cd-66ec-4007-ba68-795cd1ad1798

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

Copilot AI commented May 4, 2026

@copilot review all comments

Addressed both review issues in commit e95ddc1:

Comment 1 (nested blocks): The sandbox.mcp.container and sandbox.mcp.version codemods now cascade removeParentBlockIfTrulyEmpty("sandbox") after removeFieldFromBlock — so when container/version is the only field under mcp:, and mcp: is the only field under sandbox:, all three levels are pruned. Added 3 new tests to verify this, including a case that confirms sandbox: is kept when it has other children.

Comment 2 (comments silently deleted): Replaced removeBlockIfEmpty with a new removeParentBlockIfTrulyEmpty helper. The new function treats any nested line — including user-authored comments — as "content". The parent block header is now only removed when there are literally zero nested lines. Added a test case (keeps_parent_block_header_when_only_a_comment_remains_under_it) that verifies comments are preserved.

Warning

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

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

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login &#43; &#34;/&#34; &#43; .name /home/REDACTED/go/bin/node (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 **/*.json --ignore-path /bin/sh -c r/test-repo/actions/secrets (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 h ../../../.prettierignore (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 sh /usr/bin/git npx prettier --wgit resolved$ /usr/bin/make git rev-�� --show-toplevel make /usr/bin/git /ref/tags/v9 (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 user.name Test User /usr/bin/infocmp (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 s/1234567890 copilot/fix-gh-aw-fix-write-regression umber, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPa--show-toplevel (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/node/24.14.1/x64/bin/node (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 tags/v6 git sv infocmp -1 rt infocmp e/git xterm-color bash /usr/bin/gh e/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 /ref/tags/v9 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv . -tests /usr/bin/git ted-objects.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv runs/20260504-215011-8316/test-1383421616 remote.origin.url /usr/bin/git s/test.md (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 xterm-color git /usr/bin/git --get remote.origin.urrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/gh --show-toplevel (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv re --log-level=e!../../../pkg/workflow/js/**/*.json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv re --log-level=error (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9.0.0
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv ty-test.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv ./../pkg/workflow/js/**/*.json&#39; --ignore-path (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 bash /usr/bin/git --noprofile on rkflow/js/**/*.j/repos/actions/github-script/git/ref/tags/v9 git rev-�� --show-toplevel sh /usr/bin/git /ref/tags/v9 (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 user.email test@example.com /usr/bin/git on&#39; --ignore-patgit (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 bash /usr/bin/git Onlymin-integritgit on 1/x64/bin/node git rev-�� --show-toplevel 1/x64/bin/node (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 git /usr/bin/git --show-toplevel (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv run --auto /usr/bin/git --detach (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /ref/tags/v9 config sv remote.origin.urgit (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 xterm-color (http block)
  • https://api.github.com/repos/aws-actions/configure-aws-credentials/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel l /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel (http block)
  • https://api.github.com/repos/azure/login/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git /tmp/gh-aw-test-git remote /opt/hostedtoolc--show-toplevel git rev-�� --show-toplevel node /usr/bin/git /home/REDACTED/worinfocmp (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ErrorFormatting4git rev-parse /usr/bin/git git rev-�� /ref/tags/v9 git sv /tmp/compile-insinfocmp show /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel bash /usr/bin/git 999 on sv git rev-�� --show-toplevel node /usr/bin/git run format:cjs /node_modules/.bxterm-color 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 /ref/tags/v9 ^remote\..*\.gh-resolved$ sv json&#39; --ignore-pgit (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 --show-toplevel 7g-Q4XfQj2Te /usr/bin/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-04-27 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-04-04 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-02-03 (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 committer.name .cfg (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 gpg.program e_modules/.bin/sh (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 pull.rebase 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 pull.rebase .cfg (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1234567890
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, (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 pull.rebase 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 pull.rebase g_.a (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 committer.name in/node (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 committer.email tartedAt,updatedAt,event,headBranch,headSha,displayTitle (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 committer.name ache/node/24.14.1/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 efaultBranchFromLsRemoteWithRealGitmain_branch2487414214/001&#39; 8ec046121d4eb4e453500715ed9c55c7a14f151295a87d84227d39bdef342ea0-d (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 committer.name k/_temp/uv-python-dir/node (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 committer.email .cfg (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 committer.name 108ef27e9de715e8f9abf1a5c3c246a27c513bc85f716c7f4ee2242b63128f97-d (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 sRemoteWithRealGitmaster_branch3577767417/002/work At,event,headBranch,headSha,displayTitle (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path h ../../../.prettierignore (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 (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build3726103006/b404/cli.test /tmp/go-build3726103006/b404/cli.test -test.testlogfile=/tmp/go-build3726103006/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true (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 --show-toplevel git /usr/bin/git /tmp/TestGuardPodu config /usr/bin/infocmp/tmp/gh-aw/aw-feature-branch.patch git rev-�� --show-toplevel infocmp /usr/bin/gh xterm-color (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 (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&#39; --ignore-path ../../../.prettierignore (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 (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 086919217/.github/workflows (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 (http block)
  • https://api.github.com/repos/google-github-actions/auth/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git image:v1.0.0 rev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/infocmp --get remote.origin.urrev-parse /opt/hostedtoolc--show-toplevel infocmp (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 (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 (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 64/bin/git (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/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 led-with-body-content.md (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch runs/20260504-215011-8316/test-3560139265 (http block)

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

Copilot AI requested a review from pelikhan May 4, 2026 21:54
@pelikhan pelikhan merged commit 7d91cb0 into main May 5, 2026
@pelikhan pelikhan deleted the copilot/fix-gh-aw-fix-write-regression branch May 5, 2026 00:29
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.

[deep-report] Fix gh aw fix --write regression: empty features: block after mcp-cli removal

4 participants