v0.81.5
Pre-releaseπ Release Highlights
This release focuses on org-mode maturity, performance optimizations, and sandbox hardening β making gh aw update/upgrade --org more robust and production-ready while delivering meaningful speed improvements across the compiler and validator.
β¨ What's New
-
Action-pin mapping in
aw.json(#41579) β Define action-pin overrides directly in youraw.jsonconfiguration, giving you centralized control over pinned action versions. -
manifest-versionnow optional inaw.yml(#41687) β Reduces boilerplate in new workflow files; the field is inferred when omitted. -
Non-TTY fallback for
gh aw addwizard (#41717) β The interactive add wizard now gracefully falls back to text prompts in non-interactive environments (CI, scripts), unblocking automation pipelines. -
Org-mode improvements for
update/upgrade --org(#41617, #41627, #41719) β Workflow-targeted updates, repo prefiltering, version-tag display, unified repo discovery, and per-repo confirmation prompts (with--yesfor CI). The--orgflag is now significantly more useful for managing fleets of repositories. -
Sandbox hardening at 50% baseline (#41786) β Half of all eligible agentic workflows now run with
sandbox.agent.sudo: false, reducing the blast radius of runaway agent steps. -
Daily detection analysis report workflow (#41802) β New built-in workflow that generates automated detection analysis reports.
β‘ Performance
- Lazy-loaded embedded JSON datasets (#41587) β Embedded compile-time JSON is no longer loaded at startup, reducing memory footprint for CLI commands that do not compile.
- Lazy-loaded GitHub toolset permissions (#41755) β Loaded via
sync.Onceso permission data is only read when needed. - Cached regexp in
applySanitizePattern(#41762) β Eliminates repeated regex compilation on hot code paths. - Faster
ParseWorkflow(#41772) β Model-alias cycle detection overhead reduced.
π Bug Fixes & Improvements
- Secret double-escape fix (#41801) β Custom MCP server env/header secrets are no longer double-escaped in generated lock files.
- Agent-supplied branch accepted in
push_to_pull_request_branch(#41654) β Fixes a regression where agent-provided branch names were rejected. - MODEL_NOT_SUPPORTED detection extended (#41792) β The pattern now catches 404 "Model not found" responses, improving resilience for unsupported model errors.
- Bundle manifest path resolution (#41790) β
.github/paths are now resolved as repo-root-relative in nested bundle manifests. - MCP post-completion relaunch is non-fatal (#41713) β A failed MCP server relaunch after job completion no longer fails the workflow.
- PR Sous Chef cooldown (#41759) β Prevents back-to-back comments by enforcing a 30-minute cooldown.
- Harness exits cleanly (#41675) β Exits with code 0 when expected safe-outputs were already produced, even when subsequent steps encounter permission-denied errors.
GH_AW_POLICY_STRICTenforced at runtime (#41682) β Non-strict compiled workflows now properly respect the strict policy flag at runtime.
π Documentation
- Blog: Custom Linters, Sergo, Linter Miner & LintMonster (#41663) β A new blog post walking through the custom linter ecosystem. Read it β
gh aw envgovernance guide (#41758) β New documentation covering defaults and scope inheritance for environment configuration.
Generated by π Release Β· 41.2 AIC Β· β 8.3K
What's Changed
- Add action-pin mapping support in aw.json by @pelikhan with @Copilot in #41579
- pkg/workflow: lazy-load embedded JSON datasets used only at compile-time paths by @pelikhan with @Copilot in #41587
- feat: add XML markers, deduplication, labels, and release links to org runner PRs/issues by @pelikhan with @Copilot in #41580
- fix: resource lifecycle and context propagation (lint-monster) by @pelikhan with @Copilot in #41589
- Replace lint-monster path literals with repository constants in CLI/workflow codepaths by @pelikhan with @Copilot in #41611
- [UX] Professionalize Architecture Guardian safe-output status messages by @pelikhan with @Copilot in #41612
- [jsweep] Clean update_context_helpers.cjs by @github-actions[bot] in #41608
- fix: accept agent-supplied branch in push_to_pull_request_branch (fixes #41643) by @dsyme in #41654
- fix: replace deprecated gpt-5-mini with gpt-5.4-mini in daily-model-resolution workflow by @pelikhan with @Copilot in #41625
- Enable sandbox.agent.sudo: false on 20 agentic workflows by @pelikhan with @Copilot in #41628
- [docs] Update glossary - daily scan by @github-actions[bot] in #41657
- [spec-extractor] Update package specifications for agentdrain, cli, console, constants by @github-actions[bot] in #41653
- [code-scanning-fix] Fix js/http-to-file-access: validate Content-Type and size for LFS PDF download by @github-actions[bot] in #41635
- Update
gh aw update --orgto support workflow-targeted updates and repo prefiltering by @pelikhan with @Copilot in #41617 - panicinlibrarycode: enforce FuncLit boundaries for init/doc panic exemptions by @pelikhan with @Copilot in #41631
- [instructions] Sync instruction files with release 0.81.4 by @github-actions[bot] in #41644
- Replace AWF runtime Python patch with shared JavaScript helper by @pelikhan with @Copilot in #41623
- Add blog post on custom linters, Sergo, Linter Miner, and LintMonster by @pelikhan with @Copilot in #41663
- reduce instructions-janitor max lines target from 500 to 400 by @pelikhan with @Copilot in #41673
- Retry one completed Copilot BYOK proxy auth failure as a fresh run by @pelikhan with @Copilot in #41629
- Make manifest-version optional in aw.yml by @pelikhan with @Copilot in #41687
- Harden API consumption log collection against continuation timeouts by @pelikhan with @Copilot in #41676
- [spec-enforcer] Enforce specifications for setutil by @github-actions[bot] in #41684
- Refactor duplicated key sorting, engine env assembly, and engine max-* codemods by @pelikhan with @Copilot in #41674
- fix(harness): exit 0 when expected safe-outputs already produced despite numerous permission-denied by @pelikhan with @Copilot in #41675
- improve update/upgrade --org: version tags, current version display, unified repo discovery by @pelikhan with @Copilot in #41627
- Fix go-logger preflight manifest generation failing on jq filter quoting by @pelikhan with @Copilot in #41695
- fix(USE-001): add standardized error codes to pr_review_buffer and set_issue_type handlers by @pelikhan with @Copilot in #41692
- Enforce
GH_AW_POLICY_STRICTat runtime for non-strict compiled workflows by @pelikhan with @Copilot in #41682 - parser: add schema validation tests for sandbox.agent.sudo (regression guard for #41679) by @dsyme with @Copilot in #41681
- logs: populate
messagefield with actionable guidance when no runs found by @pelikhan with @Copilot in #41693 - docs: resolve spec audit β pkg/intent spec, actionpins Mappings field, linters 4 new subpackages by @pelikhan with @Copilot in #41723
- fix: post-completion MCP relaunch failure is non-fatal; audit-diff surfaces removed denied domains by @pelikhan with @Copilot in #41713
- Normalize report-format guidance across non-compliant agentic workflows by @pelikhan with @Copilot in #41728
- Harden Super Linter workflow against generated-summary linting and log artifact permission failures by @pelikhan with @Copilot in #41729
- Ensure centralized status comments are reused via the standard update path by @pelikhan with @Copilot in #41709
- chore(deps): bump golang.org/x/vuln to v1.5.0 by @pelikhan with @Copilot in #41726
- [dead-code] chore: remove dead functions β 5 functions removed by @github-actions[bot] in #41731
- Make banner styling TTY-safe by unexporting
BannerStyleand standardizingShowWelcomeBannerby @pelikhan with @Copilot in #41716 - Add per-repo confirmations for org-mode update/upgrade create actions, with
--yesCI bypass by @pelikhan with @Copilot in #41719 - feat(mattpocock-reviewer): mention @copilot in review comments by @pelikhan with @Copilot in #41756
- Add governance guide for
gh aw envdefaults and scope inheritance by @pelikhan with @Copilot in #41758 - fix(pr-sous-chef): prevent back-to-back comments and add 30-min cooldown by @pelikhan with @Copilot in #41759
- Add non-TTY fallback for interactive add wizard (MultiSelect + text prompts) by @pelikhan with @Copilot in #41717
- Preserve issue-intent label metadata in
add_labelsREST payload behind feature flag by @pelikhan with @Copilot in #41725 - Reduce validation benchmark overhead by deduplicating Copilot permission tip emission by @pelikhan with @Copilot in #41753
- refactor(workflow): split custom job builder module out of compiler_jobs.go by @pelikhan with @Copilot in #41754
- feat: upgrade experiments_command.go manual tables to console.RenderTable() by @pelikhan with @Copilot in #41718
- PR Sous Chef: require
pr-finisherin Copilot nudge by @pelikhan with @Copilot in #41768 - Fix daily-spdd-spec-planner tool denial limit exceeded by @pelikhan with @Copilot in #41770
- fix(compile_stats): replace raw fmt.Fprintf sub-items with console helpers by @pelikhan with @Copilot in #41764
- Align CLI help/grouping and flag semantics for command consistency by @pelikhan with @Copilot in #41727
- Clarify workflow trigger selection and reporting patterns for agentic workflows by @pelikhan with @Copilot in #41769
- Wrap bare error returns in buildActivationJob with context by @pelikhan with @Copilot in #41763
- Use a named constant for the upgrade-org skills sparse-checkout path by @pelikhan with @Copilot in #41774
- Refactor
deploy --orgto run through shared org runner by @pelikhan with @Copilot in #41761 - Cache compiled regexp in applySanitizePattern by @pelikhan with @Copilot in #41762
- PR Triage: include same-repo Copilot PRs in eligibility scope by @pelikhan with @Copilot in #41783
- fix: extend MODEL_NOT_SUPPORTED_PATTERN to catch 404 standalone "Model not found" by @pelikhan with @Copilot in #41792
- Lazy-load GitHub toolset permissions JSON via
sync.Onceby @pelikhan with @Copilot in #41755 - perf(bench): isolate CompileMCPWorkflow benchmark from non-compilation overhead by @pelikhan with @Copilot in #41782
- Add daily detection analysis report workflow by @pelikhan with @Copilot in #41802
- ambient-context: compress shared prompts and fix tone conditional syntax by @pelikhan with @Copilot in #41805
- Fix Copilot log parser for wireApi=responses format; surface tool response previews by @pelikhan with @Copilot in #41767
- Reduce ParseWorkflow overhead by optimizing model-alias cycle detection by @pelikhan with @Copilot in #41772
- Add runtime policy guard for create-pull-request safe outputs by @pelikhan with @Copilot in #41771
- Migrate CLI stderr status output to stderr-aware
pkg/consolehelpers across six commands by @pelikhan with @Copilot in #41773 - chore(deps): bump charmbracelet/x/exp/golden pseudo-version (Jun 2 β Jun 22) by @pelikhan with @Copilot in #41810
- fix: prevent double-escape of custom MCP server env/header secrets in generated lock files by @pelikhan with @Copilot in #41801
- Raise agent sandbox hardening baseline to 50% of eligible workflows by @pelikhan with @Copilot in #41786
- refactor(workflow): consolidate duplicate runtime action repo maps by @pelikhan with @Copilot in #41809
- [docs] Self-healing documentation fixes from issue analysis - 2026-06-27 by @github-actions[bot] in #41816
- fix: treat
.github/paths as repo-root-relative in nested bundle manifests by @mnkiefer with @Copilot in #41790
Full Changelog: v0.81.4...v0.81.5