Skip to content

Releases: github/gh-aw

v0.63.1

24 Mar 16:45
f0a8321

Choose a tag to compare

What's Changed

  • Update fuzzy schedule algorithm with weighted preferred windows and peak avoidance by @Copilot in #22547
  • Upload firewall audit logs as dedicated GitHub Actions artifacts by @Copilot in #22551
  • Add skip-if-check-failing pre-activation gate by @Copilot in #22537
  • fix: create remote branch via REST before using createCommitOnBranch for new branches by @Copilot in #22568
  • fix: use GraphQL mutation to mark pull requests as ready for review by @Copilot in #22572
  • Compiler: inject DIFC proxy for pre-agent gh CLI custom steps by @Copilot in #22563
  • fix: safe-outputs prompt says "exactly one" even when config allows multiple calls by @Copilot in #22576
  • fix: add missing SARIF upload step for create-code-scanning-alert safe output by @Copilot in #22574
  • [docs] docs: unbloat editing-workflows guide (22% reduction) by @github-actions[bot] in #22583
  • Add aw_context parsing from aw_info.json to logs and audit JSON output by @Copilot in #22577
  • fix: surface engine failure reason in conclusion job when agent_output.json is missing by @Copilot in #22575
  • Fix go/unsafe-quoting (CWE-78/89/94) in expression deprecation warning by @Copilot in #22582
  • Improve compiler error messages for YAML syntax errors and permission scope validation by @Copilot in #22581
  • Update MCP Gateway (gh-aw-mcpg) v0.2.2 → v0.2.3 by @Copilot in #22591
  • [jsweep] Clean check_skip_if_match.cjs by @github-actions[bot] in #22596
  • skip-if-check-failing: ignore checks from current workflow run by @Copilot in #22598
  • Fix Upload Safe Output Items capitalization and DIFC filtered summary formatting by @Copilot in #22602
  • Add proxy.golang.org and sum.golang.org to jsweep network allowlist by @Copilot in #22603
  • Update content-moderation.yml by @pelikhan in #22611
  • docs: document --action-tag and --actions-repo compile flags for testing against alternate actions repos by @Copilot in #22607
  • Convert qmd-docs.md and qmd.md to use tools.qmd with GPU runner; remove standalone indexer by @Copilot in #22605
  • Fix untrusted_checkout_exec poutine finding in smoke-workflow-call workflows by @Copilot in #22608
  • Rephrase aw_context input description by @Copilot in #22614
  • ci-doctor: remove workflow_run, stop-after, and if by @Copilot in #22615
  • [docs] docs: remove duplicate MCP config from web-search guide by @github-actions[bot] in #22617
  • fix(create-discussion): prevent double-posting when GraphQL mutation partially succeeds by @Copilot in #22601
  • [code-simplifier] refactor: extract writePromptBashStep helper to deduplicate poutine-suppressed steps (#22608) by @github-actions[bot] in #22618
  • fix: add labels as a valid update field for update_discussion by @Copilot in #22613
  • Remove sandbox.mcp.container from smoke workflows by @Copilot in #22616
  • fix: exclude .git from push_repo_memory size calculation by @Copilot in #22610
  • feat: wrap qmd documentation index step summary in details/summary HTML section by @Copilot in #22623
  • [instructions] Sync github-agentic-workflows.md with release v0.40.1 by @github-actions[bot] in #22649
  • [ca] fix: update wasm golden files for aw_context description change by @github-actions[bot] in #22624
  • [docs] Update glossary - daily scan by @github-actions[bot] in #22644
  • [docs] Update Astro dependencies - 2026-03-24 by @github-actions[bot] in #22650
  • [community] Update community contributions in README by @github-actions[bot] in #22646
  • [docs] Consolidate developer specs into dev.md v4.2 by @github-actions[bot] in #22653
  • build(deps-dev): bump @vitest/coverage-v8 from 4.0.18 to 4.1.1 in /actions/setup/js by @dependabot[bot] in #22643
  • [fp-enhancer] Improve pkg/cli: replace imperative loops with sliceutil.Map/Filter by @github-actions[bot] in #22632
  • Add diagnostic logging to qmd_index.cjs for empty index debugging by @Copilot in #22665
  • fix(safe-outputs): add 🎭 emoji to staged mode preview in PR review handlers (USE-003) by @Copilot in #22621
  • fix: add standardized error codes (USE-001) to four safe-output handlers by @Copilot in #22620
  • fix(sec-004): sanitize body field in assign_to_agent.cjs by @Copilot in #22619
  • Improve glossary-maintainer: allow any bash command and leverage qmd search by @Copilot in #22660
  • refactor: rename codemod_permissions functions for discoverability by @Copilot in #22658
  • [docs] docs: reduce bloat in safe-outputs reference by @github-actions[bot] in #22672
  • fix: align qmd_index test assertion with ERR_CONFIG error message prefix by @Copilot in #22671
  • fix: better diagnostics and messaging in the update command by @Copilot in #22669
  • docs: fix homepage title duplication and disable glow animation on mobile for all themes by @Copilot in #22675
  • fix: correct repository org in smoke cross-repo PR workflows (github → githubnext) by @Copilot in #22677
  • refactor: remove ForInspector wrapper indirection and add dual-path config parity test by @Copilot in #22676
  • feat: add on-demand workflow_dispatch trigger to auto-triage-issues for label backfill by @Copilot in #22688
  • fix: surface full error message in agent failure issue comments by @Copilot in #22689
  • chore: bump MCP Gateway v0.2.3→v0.2.4, APM v0.8.4→v0.8.5 by @Copilot in #22693
  • qmd: replace paths array with pattern string and add ignore for excluded patterns by @Copilot in #22683
  • Remove dual path safe output config generation by @Copilot in #22687
  • Never suggest tools.github mode: remote in agent prompts by @Copilot in #22709
  • fix: update wasm golden files for mcpg v0.2.4 by @Copilot in #22710
  • Fix: vulnerability-alerts incorrectly emitted as job-level workflow permission in compiled lock file by @Copilot in #22708
  • fix: resolve CLI help text consistency issues across 7 commands by @Copilot in #22714
  • Fix filterJobLevelPermissions dropping explicit empty permissions block by @Copilot in #22720
  • feat: update DIFC proxying to also proxy actions/github-script by @Copilot in #22712

Full Changelog: v0.63.0...v0.63.1

v0.63.0

23 Mar 23:45
4248ac6

Choose a tag to compare

🌟 Release Highlights

This release delivers a major new experimental tool for semantic documentation search, two high-priority security fixes applied across all compiled workflows, a firewall and MCP gateway upgrade, and a smarter fuzzy scheduler that reduces queue contention on GitHub Actions.

✨ What's New

qmd documentation search tool (experimental)

Agentic workflows can now perform vector-similarity search over local documentation, GitHub code search results, and issue lists — without requiring contents: read in the agent job. The new built-in qmd tool (powered by tobi/qmd) runs a dedicated indexing job that builds and caches an embedding index, then serves it to the agent via an HTTP MCP server. GPU-accelerated indexing is supported on custom runners.

tools:
  qmd:
    checkouts:
      - name: docs
        paths: [docs/**/*.md]
    searches:
      - name: issues
        type: issues
        max: 500
        github-token: $\{\{ secrets.GITHUB_TOKEN }}

Learn more →

Smarter fuzzy scheduler

The FUZZY:* schedule patterns now guarantee that scattered cron minutes land in [5, 54], avoiding GitHub Actions peak-contention windows (midnight UTC and ±5 minutes around every hour). Existing workflows are automatically updated on next recompile.

Schedule syntax reference →

🔒 Security Fixes

  • github-env HIGH vulnerability eliminated — All 193 compiled workflows now write framework-controlled variables (GH_AW_SAFE_OUTPUTS, GH_AW_AGENT_OUTPUT, GH_HOST) to $GITHUB_OUTPUT instead of $GITHUB_ENV, resolving a zizmor HIGH finding. (#22528)
  • SHA pinning extended to on.steps — Custom steps injected into pre-activation jobs via on.steps are now run through the same SHA-pinning pipeline as steps: and post-steps:, closing a supply chain gap where unpinned action references could pass through verbatim into lock files. (#22529)
  • AWF Firewall upgraded to v0.25.0 — All workflow lock files recompiled against the latest firewall image. (#22508)
  • MCP Gateway upgraded to v0.2.2 — Improved robustness when extracting issue and PR numbers from search results where structured data fields are absent or malformed. (#22538)

🌍 Community Contributions

A huge thank you to the community members who reported issues that were resolved in this release!

@Dan-Co

@dsyme

@lpcox

@samuelkahessay


For complete details, see CHANGELOG.

Note

🔒 Integrity filter blocked 2 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #18569 list_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #22335 search_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
  github:
    min-integrity: approved  # merged | approved | unapproved | none

Generated by Release


What's Changed

  • [q] feat: add Docker mounting limitations to builtin agent prompt (#22074) by @github-actions[bot] in #22076
  • [jsweep] Clean add_reaction_and_edit_comment.cjs by @github-actions[bot] in #22075
  • [docs] docs: document IANA timezone field for schedule cron entries by @github-actions[bot] in #22082
  • fix: add github.event_name to JS allowed expressions list by @Copilot in #22084
  • Extract shared HTTP MCP server lifecycle into mcp_http_server_runner.cjs by @Copilot in #22078
  • Extract agent timeout message to markdown template by @Copilot in #22088
  • perf: replace O(n²) string concatenation with strings.Builder in expression_parser by @Copilot in #22095
  • docs: add .github/aw/memory.md — canonical guide for persistent memory strategies by @Copilot in #22094
  • Add .github/aw/charts.md prompt for Python data visualization workflows by @Copilot in #22093
  • docs: explain intentional lipgloss v1 import in huh_theme.go by @Copilot in #22100
  • Replace hardcoded hex colors in progress.go with adaptive style constants by @Copilot in #22099
  • Add network.allowed reference docs and link from agentic-workflows agent by @Copilot in #22102
  • Drain HTTP response bodies on non-OK paths to enable TCP connection reuse by @Copilot in #22101
  • Adjust outputs written to issues for previous rename of artifact from agent-artifacts to agent by @dsyme in #22127
  • Preserve angle brackets in code blocks and inline code spans during sanitization by @Copilot in #22005
  • Pre-compile heredoc regexp patterns at package level by @Copilot in #22104
  • Rename policyStatuses and getActivationOutputsCodemod for discoverability by @Copilot in #22105
  • Fix: Turns always 0 and ToolCalls always null in run summaries by @Copilot in #22106
  • [actions] Update GitHub Actions versions - 2026-03-21 by @Copilot in #22120
  • feat: dynamic function budget for daily-function-namer (replace fixed 3-file limit) by @Copilot in #22151
  • Fix plugin install TODOs for Claude and Codex: mark both as unsupported by @Copilot in #22153
  • Improve integrity filter footer rendering by @Copilot in #22152
  • Add vulnerability-alerts GitHub App permission for dependabot toolset by @Copilot in #22144
  • fix(smoke-update-cross-repo-pr): remove redundant label constraint causing 100% failure rate by @Copilot in #22157
  • [safe-output-integrator] Add missing safe-output Go compiler tests for assign_to_user, unassign_from_user, missing_tool, missing_data by @github-actions[bot] in #22163
  • docs(charts): suggest importing python-dataviz from githubnext/agentics by @Copilot in #22160
  • Add ready_for_review trigger to CI and grumpy-reviewer; switch grumpy-reviewer to codex by @Copilot in #22155
  • Harden release community attribution with multi-tier GitHub-native linkage and daily updater by @Copilot in #22140
  • Add explicit supportsMaxContinuations: false to Claude, Codex, and Gemini engines by @Copilot in #22158
  • discussion-task-miner: run every 6h, extract 5 items, strengthen duplicate prevention by @Copilot in #22165
  • fix: preserve safe-outputs action inputs/descriptions during update by @Copilot in #22162
  • fix: resolve 40% performance regression in BenchmarkCompileComplexWorkflow by @Copilot in #22159
  • Remove plugins: support in favor of dependencies: + Microsoft/APM by @Copilot in #22156
  • fix: escape handlebars pattern in rendering verifier prompt (#22168) by @lpcox in #22176
  • [dead-code] chore: remove dead functions — 2 functions removed by @github-actions[bot] in #22175
  • fix: update integrity filter blocked message and bold summary headers by @Copilot in #22173
  • feat(community): track external contributor issues as contributions, store in wiki by @Copilot in #22179
  • fix: {{#if ...}} in runtime-imported markdown incorrectly becomes an unresolvable placeholder by @Copilot in #22170
  • [q] q: set min-integrity to none, cookie guard, and spam detection by @Copilot in #22181
  • [code-simplifier] refactor: use shared isTruthy from is_truthy.cjs in render_template by @github...
Read more

v0.62.5

21 Mar 01:44
48d8fdf

Choose a tag to compare

🌟 Release Highlights

This release focuses on security hardening, reliability fixes across safe-outputs and activation, and a significant documentation expansion — with a couple of quality-of-life feature additions along the way.

⚠️ Security

Two important security improvements ship in this release:

  • Supply chain protection: The Trivy vulnerability scanner action has been removed following the discovery of a supply chain compromise (#22007, #22065). Vulnerability scanning has been replaced with an alternative approach.
  • Public repo integrity hardening: GitHub App authentication no longer exempts public repositories from the automatic minimum-integrity guard policy (#21969). This closes a gap where same-repo untrusted content could bypass integrity checks on public repos.

✨ What's New

  • Timezone support for scheduled workflows: on.schedule cron entries now accept an optional timezone field, letting you express schedules in local time rather than UTC (#22018).
  • Boolean expression optimizer: Condition node trees are now optimized at compile time, producing cleaner and more efficient if: expressions in compiled workflows (#22025).
  • Wildcard target-repo in safe-output handlers: Safe-output handlers now accept target-repo: "*" to match any repository, making reusable handler definitions much more flexible (#21877).

🐛 Bug Fixes & Improvements

  • Bot comment activation fixed: slash_command workflows now correctly activate on bot comments that append metadata after a newline separator — a common pattern with GitHub Apps (#22013).
  • Signed commits on new branches: create-pull-request no longer fails when a "Require signed commits" branch ruleset is active and the target branch doesn't yet exist on the remote (#22012).
  • Agent output artifact path: Fixed a nested-path issue where GH_AW_AGENT_OUTPUT artifacts were not found because the file resided outside the /tmp/gh-aw/ artifact root (#21968).
  • GHE: agentics URL resolution: githubnext/agentics now correctly resolves to github.com when a GitHub Enterprise Server host is configured, preventing failed action lookups on GHE (#22014).
  • gh aw new safe-output validation: Safe-output names entered via gh aw new are now validated against the JSON schema, preventing invalid configurations from being written (#21981).
  • Smoke-codex stability: Eliminated a race condition causing intermittent safe_outputs failures on scheduled smoke runs and spurious wrong-PR comments (#22039).
  • Code-push skip no longer triggers fail-fast: When a code-push step is intentionally skipped, the workflow now continues rather than halting with a failure (#21976).
  • MCP Gateway updated to v0.1.20 (#21946).

📚 Documentation

A substantial documentation push accompanies this release:

  • New: Integrity reference guide — covers trust levels, filtering behavior, and policy configuration (#22044).
  • New: GHE Cloud data residency debugging guide — step-by-step troubleshooting for GitHub Enterprise Cloud data residency connectivity issues (#21993).
  • Expanded checkout: frontmatter reference — the checkout section now documents all supported options with examples (#22041).
  • GitHub MCP access control spec v1.1.0 — updated to document blocked-users and approval-labels fields (#22023).
  • Streamlined agentic-authoring guide — reduced size and improved focus for faster onboarding (#22054).

For complete details, see the CHANGELOG.

Generated by Release


What's Changed

  • Update MCP Gateway v0.1.19 → v0.1.20 by @Copilot in #21946
  • fix: allow wildcard target-repo: "*" in safe-output handlers by @Copilot in #21877
  • fix: remove GitHub App auth exemption from automatic public-repo min-integrity guard policy by @Copilot in #21969
  • chore: update golang.org/x/mod v0.33.0 → v0.34.0 by @Copilot in #21970
  • fix(codex): align execute step name to "Execute Codex CLI" by @Copilot in #21972
  • fix: skipped code-push should not trigger fail-fast; retry PR review on unresolvable line by @Copilot in #21976
  • fix: resolve CLI consistency issues in help text and documentation by @Copilot in #21971
  • docs: add GHE Cloud data residency debugging guide by @lpcox in #21993
  • fix: validate safe-output names in gh aw new against JSON schema; fix create-project oneOf by @Copilot in #21981
  • deps: update golang.org/x/crypto v0.48.0 → v0.49.0 by @Copilot in #21980
  • chore: bump trivy-action from 0.33.1 to 0.35.0 by @lpcox in #22003
  • Harden Issue Monster against integrity-filtered issue reads by @Copilot in #21999
  • fix(campaign): prevent duplicate Security Alert Burndown Epic issues by @Copilot in #21998
  • Fix GH_AW_AGENT_OUTPUT nested path by enforcing /tmp/gh-aw/ artifact root by @Copilot in #21968
  • security: remove Trivy action due to supply chain compromise by @Copilot in #22007
  • [code-simplifier] refactor: simplify guard policy setOutput, footer logic, and comment clarity by @github-actions[bot] in #22016
  • Add token budget and context-pruning guardrails to Daily CLI Performance Agent by @Copilot in #21997
  • fix: pushSignedCommits fails on new branches with "Require signed commits" ruleset by @Copilot in #22012
  • Improve sliceutil test coverage from ~29% to ~100% of exported functions by @Copilot in #22015
  • fix: strip redundant resource identifier from integrity filtering note (#21988) by @Copilot in #22019
  • [docs] Self-healing documentation fixes from issue analysis - 2026-03-20 by @github-actions[bot] in #22020
  • docs: update GitHub MCP access control specification v1.1.0 — add blocked-users and approval-labels fields by @Copilot in #22023
  • feat: add timezone field support to on.schedule cron entries by @Copilot in #22018
  • fix: ensure githubnext/agentics resolves to github.com when GHE is configured by @Copilot in #22014
  • Fix slash_command activation for bot comments with newline-separated metadata by @Copilot in #22013
  • [log] Add debug logging to 5 workflow/cli files by @github-actions[bot] in #22026
  • docs: add VEX integration guidance to dependabot prompt by @Copilot in #22027
  • docs(central-repo-ops): replace actions/checkout step with checkout: frontmatter field in worker example by @Copilot in #22038
  • refactor: move misplaced functions to semantically correct files by @Copilot in #22034
  • fix(smoke-codex): eliminate safe_outputs instability on schedule runs and wrong-PR comments by @Copilot in #22039
  • docs: expand checkout: section in frontmatter reference by @Copilot in #22041
  • chore(deps): bump h3 from 1.15.8 to 1.15.9 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #22043
  • [docs] docs: unbloat agentic-authoring guide by @github-actions[bot] in #22054
  • [instructions] Sync github-agentic-workflows.md with v0.40.1 by @github-actions[bot] in #22051
  • docs: add integrity.md reference documentation by @Copilot in #22044
  • feat: add boolean expression optimizer for ConditionNode trees by @Copilot in #22025
  • fix: cache action inputs in actions-lock.json for deterministic smoke-codex compilation by @Copilot in #22048
  • chore: remove trivy by @Copilot in #22065
  • Remove session management from safe outputs MCP HTTP server by @Copilot in #22056

Full Changelog: v0.62.4...v0.62.5

v0.62.4

20 Mar 14:01
a898ed7

Choose a tag to compare

🌟 Release Highlights

A focused patch release bringing improved authentication flexibility for discussion safe outputs and a reliability fix for scheduled smoke runs.

✨ What's New

  • github-token support in update-discussion safe output — The update-discussion safe output handler now accepts a custom github-token, giving workflows greater control over which identity is used when updating GitHub Discussions. This is consistent with the authentication model used by other safe output handlers.

🐛 Bug Fixes & Improvements

  • Smoke-Gemini scheduled runs stabilized — Scheduled Gemini smoke runs were failing due to an unconditional add_comment call. The fix applies the comment step conditionally and recompiles affected lock files, restoring reliable scheduled validation.

For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • Support github-token in update-discussion safe output by @Copilot in #21924
  • fix: smoke-gemini scheduled runs fail due to unconditional add_comment + recompile stale lock files by @Copilot in #21920
  • [ubuntu-image] research: update Ubuntu runner image analysis to 20260309.50.1 by @github-actions[bot] in #21928
  • [architecture] Update architecture diagram scratchpad - 2026-03-20 by @github-actions[bot] in #21932
  • [docs] Update glossary - daily scan by @github-actions[bot] in #21948
  • chore: bump golang.org/x/term v0.40.0 → v0.41.0 by @Copilot in #21945
  • chore(deps): bump protobuf to v1.36.11, grpc already at v1.79.3 by @Copilot in #21914

Full Changelog: v0.62.3...v0.62.4

v0.62.3

20 Mar 06:28
458e90f

Choose a tag to compare

🌟 Release Highlights

This release focuses on extensibility and reliability — bringing custom GitHub Actions into the safe-outputs toolkit, hardening the MCP Gateway, and shaving ~20 seconds off every workflow run.

✨ What's New

  • Custom Actions as Safe Output Tools (#21752)
    Expose any GitHub Action as an MCP tool via the new safe-outputs.actions block. The compiler resolves action.yml at compile time to derive the tool schema and inject it into the agent — no custom wiring required. Learn more

  • trustedBots support in MCP Gateway (#21865)
    Workflows can now pass an allowlist of additional GitHub bot identities to the MCP Gateway via the new trustedBots field, enabling safe cross-bot collaboration in guarded environments.

  • gh-aw-metadata v3 with agent & model tracking (#21899)
    Compiled lock files now embed the configured agent ID/model and detection agent ID/model in the gh-aw-metadata comment, making it easier to audit which model drove each workflow run.

  • Raised update_issue / update_discussion safe output limits to 256 (#21902)
    The previous cap of 100 operations blocked high-throughput workflows. The maximum is now 256, giving busy automation more headroom.

⚡ Performance

  • ~20 seconds faster per workflow run (#21873)
    Bumped DefaultFirewallVersion to v0.24.5, which eliminates a 10-second container shutdown delay for both the main agent and the threat detection container combined.

🐛 Bug Fixes & Improvements

  • MCP Gateway no longer crashes when only min-integrity is set (#21893) — repos now defaults to "all" when the field is omitted, fixing a silent config-generation failure introduced by Gateway v0.1.19.

  • Schema validation errors now show the correct line number (#21853) — Errors like timeout-minutes: -10 previously always reported file.md:1:1. They now point to the actual offending line and use a cleaner message prefix.

  • Staged safe-output handlers no longer acquire write permissions (#21903) — Handlers that only emit step-summary previews were incorrectly merging write permissions; they now run with the minimal permissions they actually need.

  • CLI help text consistency fixes (#21907) — Corrected misleading flag descriptions in add, trial, audit, and mcp inspect commands.

  • Protected Files warning now appears in the correct position (#21841) — When create_pull_request falls back to an issue, the "Protected Files" section is now inserted before the footer rather than after it.

📚 Documentation

  • /gh-aw (no trailing slash) now redirects correctly (#21906) — Previously returned a 404 with a doubled canonical URL.
  • Documentation updated for the new --filtered-integrity logs flag and safe-outputs.actions configuration.

For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • fix: insert Protected Files section before footer in fallback issues by @Copilot in #21841
  • [docs] Self-healing documentation fixes from issue analysis - 2026-03-19 by @github-actions[bot] in #21847
  • [log] Add debug logging to workflow and CLI helper functions by @github-actions[bot] in #21851
  • feat: daily DIFC integrity-filtered events analysis workflow + MCP logs filtered_integrity param by @Copilot in #21855
  • fix: schema validation errors report correct line number and cleaner message prefix by @Copilot in #21853
  • feat: Add schema-feature-coverage agentic workflow for 100% schema field coverage by @Copilot in #21856
  • chore: bump DefaultFirewallVersion to v0.24.5 by @Copilot in #21873
  • feat: mount custom GitHub Actions as safe output tools via safe-outputs.actions by @Copilot in #21752
  • [instructions] Sync github-agentic-workflows.md with v0.40.1 — add safe-outputs scripts field by @github-actions[bot] in #21874
  • [docs] docs: remove redundant content from templating.md by @github-actions[bot] in #21876
  • Fix MCP Gateway failure: default repos to "all" when only min-integrity is set by @Copilot in #21893
  • Add trustedBots field to MCP Gateway spec, schema, and frontmatter by @Copilot in #21865
  • feat: update gh-aw-metadata payload to v3 with agent id/model and detection agent id/model by @Copilot in #21899
  • [jsweep] Clean add_copilot_reviewer.cjs by @github-actions[bot] in #21898
  • [docs] Update documentation for 2026-03-20 changes by @github-actions[bot] in #21904
  • Bump absolute maximum for update_issue and update_discussion safe outputs to 256 by @Copilot in #21902
  • refactor: extract shared renderStandardJSONMCPConfig helper across engine MCP modules by @Copilot in #21901
  • fix(docs): redirect /gh-aw (no trailing slash) to /gh-aw/ by @Copilot in #21906
  • refactor: semantic function clustering — move functions to better-aligned files by @Copilot in #21908
  • fix: resolve 4 CLI consistency issues from automated inspection by @Copilot in #21907
  • Recompile workflows to sync lock files by @Copilot in #21913
  • Skip write permissions for staged safe output handlers by @Copilot in #21903
  • fix(workflow): normalize report formatting in prompt-clustering-analysis by @Copilot in #21915
  • fix: recompile stale lock files and restore Daily Workflow Updater by @Copilot in #21916

Full Changelog: v0.62.2...v0.62.3

v0.62.2

19 Mar 19:15
ffa4a66

Choose a tag to compare

🌟 Release Highlights

This release focuses on reliability and resilience — fixing critical safe-outputs failures, improving signal handling on Linux/WSL, and introducing a new integrity filtering capability for log analysis.

⚠️ Breaking Changes

lockdown: true is replaced by min-integrity: approved

The lockdown: true field under tools.github has been superseded by the min-integrity guard policy. All 13 built-in agentic workflows have been updated automatically, but if you use lockdown: true in your own workflow frontmatter, you must migrate:

# Before (deprecated)
tools:
  github:
    lockdown: true

# After (required)
min-integrity: approved

✨ What's New

  • --filtered-integrity flag for gh aw logs — New flag to filter and surface sessions that contain DIFC-filtered items in the gateway logs, making it easier to audit integrity-controlled workflow runs.

🐛 Bug Fixes & Improvements

  • Safe-outputs artifact 409 conflict resolved — The safe_outputs job was uploading artifacts under the same name ("agent") as the agent job, causing consistent 409 Conflict failures with GitHub Actions v4. Now uses a dedicated artifact name to prevent collisions.
  • Reliable Ctrl-C / signal handling on WSLgh aw commands now properly handle SIGINT/SIGTERM via a top-level context with signal propagation, ensuring graceful shutdown across all commands on Linux and WSL.
  • Self-upgrade no longer fails with ETXTBSY on Linux/WSLgh aw upgrade now uses a try-first-rename strategy to work around the kernel's restriction on overwriting a running executable.
  • Unconfigured app credentials no longer cause workflow failures — The activation-app.md and safe-output-app.md shared workflows had references to unconfigured vars.APP_ID and secrets.APP_PRIVATE_KEY that caused failures; these are now commented out by default.

🌍 Community Contributions

A huge thank you to the community members who reported issues that were resolved in this release:


For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • Replace lockdown: true with min-integrity: approved in workflow frontmatter by @Copilot in #21831
  • fix: proper end-to-end Ctrl-C / signal handling for all gh aw commands (WSL) by @Copilot in #21795
  • fix: retry self-upgrade with binary rename on Linux/WSL to avoid ETXTBSY by @Copilot in #21793
  • refactor: consolidate shared JS constants into constants.cjs by @Copilot in #21835
  • docs: optimize slides.md for readability and presentation crispness by @Copilot in #21837
  • Add --filtered-integrity flag to logs command by @Copilot in #21838
  • Comment out unconfigured app credentials in activation-app.md and safe-output-app.md by @Copilot in #21836
  • Fix safe-outputs artifact 409 conflict by using a dedicated artifact name by @Copilot in #21840

Full Changelog: v0.62.1...v0.62.2

v0.62.1

19 Mar 16:21
6b13509

Choose a tag to compare

🌟 Release Highlights

This release focuses on workflow reliability and developer experience — adding new label command flexibility, stronger safe-output content handling, faster user feedback, and expanded APM dependency configuration.

✨ What's New

  • Label command control — The label_command trigger now supports a remove_label field, giving you the option to disable automatic label removal after an agent processes a command. Useful for workflows that need to preserve labels for auditing or chaining (#21751).
  • APM env support in dependencies — The dependencies configuration now accepts an env block for passing environment variables to dependency setups, alongside an upgrade to microsoft/apm v0.8.2 for improved compatibility (#21687).
  • Integrity filtering notice in workflow footer — Workflows now display a clear notice when integrity filtering is active, improving transparency for contributors on public repositories (#21749).

🐛 Bug Fixes & Improvements

  • Faster user reactions — The reaction step now fires immediately after generate_aw_info, so users see acknowledgment sooner rather than waiting for longer setup steps (#21783).
  • Safer validation error messages — Validation errors that include user-controlled expressions are now quoted with %q, preventing format string injection in error output (#21746).
  • Sanitized safe-output contentsanitizeContent is now injected into the safe-output script wrapper context, ensuring output content is properly sanitized before processing (#21806).
  • Consistent compiler step names — Step names for "Safe Outputs" and "Install Codex CLI" are now consistently pluralized across compiled workflows, fixing visual inconsistencies in Actions run summaries (#21786).

📚 Documentation

Presentation slides have been significantly expanded with new sections on:

  • Agentic engineering principles — "Software Engineer → Agentic Engineer" transition, Agentic Human Processes, and supporting Mermaid diagrams (#21750).
  • Sandbox design principles — What makes a "useful sandbox" with architectural guidance (#21810).
  • Security features — Supply chain integrity and GitHub Guard coverage added to the security slides (#21805).

For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • fix: use %q to safely quote user-controlled expressions in validation error messages by @Copilot in #21746
  • Fix build-wasm: update golden files for mcpg v0.1.19 by @Copilot in #21747
  • slides: add Software Engineer → Agentic Engineer, Agentic Human Processes, and two Mermaid diagrams by @Copilot in #21750
  • [docs] Update glossary - daily scan by @github-actions[bot] in #21768
  • Add env support to dependencies configuration and upgrade microsoft/apm to v0.8.2 by @Copilot in #21687
  • Fix compiler step name inconsistencies: plural "Safe Outputs" and "Install Codex CLI" by @Copilot in #21786
  • Move reaction step after generate_aw_info for faster user feedback by @Copilot in #21783
  • docs(slides): add supply chain integrity and GitHub Guard sections to security features slide by @Copilot in #21805
  • Inject sanitizeContent into safe-output script wrapper context by @Copilot in #21806
  • Add remove_label field to label_command to disable automatic label removal by @Copilot in #21751
  • docs(slides): add "useful sandbox" design principles slides by @Copilot in #21810
  • Add integrity filtering notice to workflow footer by @Copilot in #21749
  • Fix failing integration tests: APM env schema + safe-output-items artifact merge by @Copilot in #21811
  • fix: restore table row text visibility in slides dark theme by @Copilot in #21817

Full Changelog: v0.62.0...v0.62.1

v0.62.0

19 Mar 05:39
f1633bc

Choose a tag to compare

🌟 Release Highlights

This release promotes the GitHub MCP guard policy to general availability, adds inline custom safe-output scripts, and ships several quality-of-life improvements for diagnostics and documentation.

✨ What's New

  • Custom safe-output scripts — Define inline JavaScript handlers in safe-outputs.scripts that run inside the consolidated safe-outputs job, without creating a separate GitHub Actions job. This gives you lightweight extensibility right where you need it. (#21582)

  • GitHub MCP guard policy is now GA — The tools.github repos/min-integrity guard policy is out of experimental status. The noisy "experimental feature" warning has been removed for cleaner workflow logs. (#21717)

  • Collapsible guard policy step summary — The GitHub MCP guard policy step now uses a <details> element for its summary, reducing visual noise in the Actions UI while keeping details accessible. (#21677)

🐛 Bug Fixes & Improvements

  • Guard policy defaults fixed — Specifying only min-integrity under tools.github without a repos field no longer raises a hard validation error; it now correctly defaults to repos: all. (#21718)

  • Audit diagnostics improved — The gh aw audit command no longer shows the contradictory "failed with 0 error(s)" message, and correctly reports workflow_name for pre-activation failures (cancelled runs, infrastructure-level failures). (#21692)

  • Better PR permission error guidance — When PR creation fails due to missing GitHub Actions permissions, diagnostics now include a direct link to the relevant FAQ entry to speed up resolution. (#21694)

  • Corrected default timeout documentation — The documented default timeout was incorrectly listed as 360 minutes; it is 20 minutes. (#21673)

📚 Documentation

  • steps.sanitized.outputs.* is now the canonical form — All documentation has been updated to use $\{\{ steps.sanitized.outputs.text/title/body }} instead of the deprecated $\{\{ needs.activation.outputs.* }} form. The compiler still accepts the old form (with a deprecation warning) for backward compatibility. (#21682)

🌍 Community Contributions

A huge thank you to the community members who reported issues that were resolved in this release:


For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • fix: correct default timeout docs from 360 to 20 minutes (#21663) by @dsyme in #21673
  • [instructions] Sync github-agentic-workflows.md with v0.40.1 by @github-actions[bot] in #21683
  • Use <details> element for GitHub MCP guard policy step summary by @Copilot in #21677
  • Add support for defined custom safe-output scripts by @Copilot in #21582
  • Add DIFC_FILTERED event support to gateway log parsing by @Copilot in #21681
  • fix: add docs/.npmrc to resolve astro-mermaid peer dep conflict with Astro v6 by @Copilot in #21691
  • Deprecate needs.activation.outputs.* in workflow markdown; update all docs to use steps.sanitized.outputs.* by @Copilot in #21682
  • Replace github.lockdown with github.repos/min-integrity guard policies in create prompt by @Copilot in #21705
  • fix(smoke): remove redundant title-prefix from smoke-update-cross-repo-pr by @Copilot in #21712
  • fix(audit): misleading "failed with 0 error(s)" message and wrong workflow_name for pre-activation failures by @Copilot in #21692
  • Add FAQ link to "GitHub Actions not permitted to create or approve pull requests" diagnostics by @Copilot in #21694
  • Remove experimental warning for tools.github guard policy (repos/min-integrity) by @Copilot in #21717
  • fix: default github.repos to all when omitted from guard policy by @Copilot in #21718
  • [docs] Update documentation for features from 2026-03-19 by @github-actions[bot] in #21731
  • Update gh-aw-mcpg to v0.1.19 by @Copilot in #21737

Full Changelog: v0.61.2...v0.62.0

v0.61.2

18 Mar 23:48
d6f6273

Choose a tag to compare

🌟 Release Highlights

This release improves ecosystem domain coverage for broader language support, fixes critical expression evaluation bugs on workflow_dispatch, and enhances private repo compatibility — making agentic workflows more reliable across diverse repository configurations.

✨ What's New

  • Chrome & Deno ecosystem domain groups — Workflows using headless Chrome/Puppeteer or Deno no longer hit blocked domain errors during build and test phases. New chrome and deno groups cover the required Google/gvt1 domains and Deno registries. (#21653)

  • Memory limit passthrough — Set sandbox.memory in your workflow frontmatter to control per-workflow memory limits passed to the AWF sandbox. Previously this field was silently ignored; all workflows defaultly used AWF's default. (#21634)

  • MCP gateway upgraded to v0.1.18 — All workflows have been recompiled against the latest gateway release. (#21660)

🐛 Bug Fixes & Improvements

  • Fixed: expressions left unresolved on workflow_dispatch$\{\{ steps.sanitized.outputs.text }} and similar expressions were rendered literally instead of resolving to an empty string when triggered via workflow_dispatch. (#21633)

  • Fixed: asset URLs in private reposraw.githubusercontent.com URLs fail silently for private repositories. Asset URLs now use the blob?raw=true format that works for both public and private repos. (#21646)

  • Fixed: missing handler registry entriesassign_to_agent, upload_asset, and noop handlers were absent from the safe-outputs handler registry, causing silent failures. (#21623)

  • Fixed: ecosystem domain gaps causing build-test failures — Domain allowlist gaps were identified as the top blocker in the March 2026 v6 build-test run, affecting 35+ repos across Kotlin, Groovy, Java, Scala, Zig, and PowerShell. All gaps have been patched. (#21635)

📚 Documentation

  • New FAQ: Sparse checkout for large monorepos — Added guidance on using the sparse-checkout field under checkout: frontmatter to dramatically speed up workflow execution in large monorepos. (#21655)

🌍 Community Contributions

A huge thank you to the community members who reported issues that were resolved in this release:


For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • build(deps): bump h3 from 1.15.5 to 1.15.8 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #21620
  • Add missing handler registry entries for assign_to_agent, upload_asset, and noop by @Copilot in #21623
  • fix: evaluateExpression resolves steps/needs to empty string on workflow_dispatch by @Copilot in #21633
  • [log] log: add debug logging to filter/engine/permissions functions by @github-actions[bot] in #21650
  • Add memory-limit passthrough from workflow frontmatter to AWF by @Copilot in #21634
  • fix: capitalize "Assets" and "Agent" in workflow step names by @Copilot in #21636
  • [cloclo] docs: add FAQ entry for sparse checkout in large monorepos by @github-actions[bot] in #21655
  • Recompile workflows to sync lock files by @Copilot in #21652
  • build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 in the go_modules group across 1 directory by @dependabot[bot] in #21654
  • Add missing ecosystem domains to fix build-test v6 failures across 10 languages by @Copilot in #21635
  • Add chrome and deno ecosystem domain groups for headless Chrome/Puppeteer and Deno testing by @Copilot in #21653
  • chore: bump MCP gateway version to v0.1.18 by @lpcox in #21660
  • Fix asset URLs to work with private repos by @Copilot in #21646
  • chore: upgrade gh-aw-firewall from v0.24.2 to v0.24.3 by @Copilot in #21672

Full Changelog: v0.61.1...v0.61.2

v0.61.1

18 Mar 17:24
f7437f4

Choose a tag to compare

🌟 Release Highlights

This release focuses on enterprise reliability — bringing signed-commit support for protected branches, improved GitHub Enterprise Server compatibility, and more robust GitHub App authentication across the board.

✨ What's New

  • Signed commits for protected branches — Workflows now use GraphQL-signed commits when pushing to branches protected by required-signatures rulesets, unblocking teams on strict branch policies (#21576, #21584)

  • Self-hosted runner compatibility — Runtime paths migrated from /opt/gh-aw to $\{\{ runner.temp }}/gh-aw, ensuring agentic workflows run cleanly on self-hosted runners where /opt may be read-only (#21443)

  • GitHub App authentication overhaul — Top-level github-app: frontmatter now serves as a universal token-minting fallback, GitHub App-only permission scopes are fully supported, and authentication failures surface as actionable errors in agent failure issues (#21510, #21511, #21424)

  • Weekly blog post writer workflow — A new agentic workflow automates weekly blog post generation, showcasing gh-aw's own self-improvement capabilities (#21575)

  • Lockdown failure visibility — Lockdown check failures now surface directly in agent failure issues, making it easier to diagnose why a workflow was blocked (#21607)

  • Dracula-themed CLI — The interactive CLI now uses a custom Huh theme mapped from the Dracula palette, plus a bubbles v2 library upgrade for a polished terminal experience (#21557, #21520)

  • Temporary ID for assign_milestone — The assign_milestone safe output now supports temporary IDs for cross-referencing milestone assignments within a workflow run (#21578)

🐛 Bug Fixes & Improvements

  • GHES / GH Enterprise fixesGH_HOST is now correctly propagated to custom frontmatter jobs and safe-outputs, fixing token and authentication issues on GHES and data-residency deployments (#21523, #21525, #21527)

  • Incremental patch fallback — When an incremental patch fetch fails, workflows now fall back gracefully to the existing remote-tracking ref instead of erroring out (#21568)

  • APM token & version fixes — GitHub App tokens minted for APM are now properly invalidated after use, and APM version strings are validated before YAML injection to prevent compiler panics (#21508, #21509)

  • safe_items_count in cached runs — Fixed an issue where safe_items_count was missing from workflow results when filtering by workflow_name in cached runs (#21491)

  • setupGlobals in staged mode — Fixed a ReferenceError in the generate_aw_info step when running in staged mode (#21602)

  • Terminal resize handling — List height now updates correctly when the terminal is resized during interactive prompts (#21555)

📚 Documentation

  • Expanded troubleshooting guides — "Write Operations Fail" troubleshooting now includes step-by-step diagnosis, and debugging guides ship with copy-paste agent prompt templates (#21519, #21494)

  • GHES documentation updates — New guide covering automatic GH_HOST injection in custom jobs and Copilot GHES troubleshooting (#21528)


For complete details, see CHANGELOG.

Generated by Release


What's Changed

  • Surface GitHub App authentication failures as explicit errors in agent failure issues by @Copilot in #21424
  • refactor: migrate /opt/gh-aw to ${{ runner.temp }}/gh-aw for self-hosted runner compatibility by @Copilot in #21443
  • Fix non-deterministic map iteration in EngineRegistry by @Copilot in #21474
  • [docs] Consolidate 5 uncovered spec files into dev.md (v3.9) by @github-actions[bot] in #21485
  • refactor: split permissions_validation.go — separate data loading from validation logic by @Copilot in #21492
  • refactor: deduplicate github-app field definitions in main_workflow_schema.json by @Copilot in #21493
  • docs: update debugging guides with copy-paste agent prompt templates by @Copilot in #21494
  • Fix safe_items_count missing from cached runs when filtering by workflow_name by @Copilot in #21491
  • Validate APM version string before YAML injection in compiler by @Copilot in #21509
  • Fix APM GitHub App token never invalidated after use by @Copilot in #21508
  • fix(deep-report): switch discussion data source from MCP to pre-fetched GraphQL by @Copilot in #21507
  • Split strict_mode_validation.go into focused concern-specific files by @Copilot in #21506
  • refactor: split expression_validation.go into three focused files by @Copilot in #21505
  • docs: expand "Write Operations Fail" troubleshooting stub in common-issues.md by @Copilot in #21519
  • fix(docs): tablet hamburger nav + mobile animation/code-wrap improvements by @Copilot in #21513
  • fix: add protected-files: fallback-to-issue to Q workflow by @Copilot in #21521
  • fix: propagate GH_HOST to custom frontmatter jobs and safe-outputs for GHES/GHEC by @lpcox in #21523
  • fix: configure_gh_for_ghe.sh — use GH_HOST instead of gh auth login when GH_TOKEN is set by @Copilot in #21525
  • feat: migrate charmbracelet/bubbles to v2 (charm.land/bubbles/v2) by @Copilot in #21520
  • [docs] Update glossary with GH_HOST and RUNNER_TEMP (daily scan 2026-03-18) by @github-actions[bot] in #21553
  • [docs] Update GHES docs: auto GH_HOST in custom jobs and Copilot GHES troubleshooting guide by @github-actions[bot] in #21528
  • Fix list height not updating on terminal resize by @Copilot in #21555
  • fix(daily-workflow-updater): unblock PR creation by setting protected-files: allowed by @Copilot in #21554
  • chore: bump MCP Gateway v0.1.15→v0.1.17 by @Copilot in #21552
  • feat: custom Huh theme mapped from pkg/styles Dracula palette by @Copilot in #21557
  • Add top-level github-app frontmatter as universal fallback for token minting by @Copilot in #21510
  • feat: add GitHub App-only permissions support by @Copilot in #21511
  • fix: fall back to existing remote tracking ref when incremental patch fetch fails by @Copilot in #21568
  • Add weekly blog post writer agentic workflow by @Copilot in #21575
  • ci: add timeout-minutes to all 25 jobs lacking explicit limits by @Copilot in #21601
  • fix: add setupGlobals in generate_aw_info step to fix staged mode ReferenceError by @Copilot in #21602
  • Disable lockdown mode for weekly blog post generator by @Copilot in #21598
  • fix: replace git push with GraphQL signed commits to satisfy required_signatures rulesets by @Copilot in #21576
  • [blog] Weekly blog post – 2026-03-18 by @github-actions[bot] in #21608
  • Fix threat detection AWF run missing --copilot-api-target and GHE domains on data residency by @Copilot in #21527
  • Add temporary ID support to assign_milestone safe output by @Copilot in #21578
  • feat: Surface lockdown check failures in agent failure issues by @Copilot in #21607
  • [safe-output-integrator] Add missing Go compiler tests for safe-output types by @github-actions[bot] in #21617

Full Changelog: v0.61.0...v0.61.1