v0.84.3
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
π Release Highlights
This release brings a new shellcheck-based linting phase for run steps, expanded agent job gating controls, and a large batch of security hardening and reliability fixes.
β¨ What's New
- Shellcheck linting for run steps β Compiled workflow run steps are now validated with shellcheck, with a Docker-based fallback for systems lacking a native binary. Enabled by default and opt-out via flags.
- First-class agent job gating β Added
jobs.agent.needsandjobs.agent.ifsupport, giving workflow authors finer control over when the agent job executes. dispatch_workflowrefparameter β Therefinput is now exposed in the per-workflow tool schema whenallowed-refsis configured, enabling more precise cross-workflow dispatch targeting.- Daily arXiv researcher workflow β A new built-in workflow scans recent papers for gh-aw improvement opportunities.
π Bug Fixes & Improvements
- Fixed
on.needsincorrectly leaking into the compiled workflow'son:section, and activation jobneedsnot populating fromengine.envexpressions. - Fixed stale merged PR handling in
update_pull_requestbranch refresh so it no longer fails safe-outputs processing. - Corrected
pull_request_targettrigger to support theready_for_reviewactivity type. - Fixed false-positive credit-ceiling and timeout detections, and rescued Copilot runs incorrectly classified as
authentication_failed. - Restored MCP telemetry observability by moving the Python venv out of the agent artifact upload path.
- Fixed comment-only frontmatter handling in shared workflow parsing.
π Security
- Removed or disabled several container images with unresolved critical/high CVEs, including
mcp/markitdown,mcp/notion,semgrep/semgrep,cli-proxy:0.27.42, and vulnerablegh-aw-firewallpins. - Patched a brace-expansion vulnerability in the
gh-aw-nodenpm overlay (GHSA-mh99-v99m-4gvg). - Pinned
node:lts-alpine,python:alpine, and Serena MCP images to remediated digests.
π Documentation
- Split
developer/SKILL.mdinto task-scoped sub-skills for easier navigation. - Added AI crawler allow-list entries to the docs site
robots.txt. - Documented the
search_repositoriesrepo:qualifier limitation and fixed several frontmatter reference inaccuracies.
π§ Internal
- Added multiple new linters (
uncheckedflushreturn,walkfuncerrshadow,wgdonenotdeferred,contextcancelnotdeferred,stringsindexhasprefix) and enforced them in CI. - Removed dead code and refactored large functions across the CLI and workflow engine for maintainability.
Generated by π Release Β· auto Β· 22.3 AIC Β· β 11.1K
What's Changed
- fix(eslint): gate replaceWithGetErrorMessage suggestion on hasResolvableLocalBinding in no-err-stack-then-string-fallback by @pelikhan with @Copilot in #49501
- eslint-factory: recognize JSDoc
@param {typeof import('@actions/core')}as core-alias signal by @pelikhan with @Copilot in #49502 - Add llms.txt to repo root for AI tool discoverability by @pelikhan with @Copilot in #49560
- [docs] Update documentation for features from 2026-08-01 by @github-actions[bot] in #49568
- Align package READMEs with exported API surface for spec-librarian audit findings by @pelikhan with @Copilot in #49585
- docs: add Applebot-Extended to robots.txt AI crawler allow rules by @pelikhan with @Copilot in #49599
- Allow
add-labelsto opt out ofpull-requests: writeby @pelikhan with @Copilot in #49477 - engine: forward timeout-minutes to execution step for codex, gemini, pi, antigravity by @pelikhan with @Copilot in #49495
- SPDD spec sync: fixture traceability, outcome-eval crosswalk, and OTLP credential redaction norms by @pelikhan with @Copilot in #49596
- Add fixture-driven formal conformance tests for intent attribution compliance by @pelikhan with @Copilot in #49594
- Build(deps): Bump pdfjs-dist from 6.1.200 to 6.2.108 in /docs by @dependabot[bot] in #49550
- fix: use distinct XML marker for threat detection engine errors vs real threats by @pelikhan with @Copilot in #49527
- fix: honour workflow_dispatch + aw_context in checkout_pr_branch.cjs by @pelikhan with @Copilot in #49451
- feat: daily arXiv researcher β scan papers for gh-aw improvement opportunities by @pelikhan with @Copilot in #49609
- [eslint-miner] eslint-miner: add require-rmsync-try-catch rule for actions/setup/js by @github-actions[bot] in #49564
- Build(deps): Bump astro from 7.1.4 to 7.1.5 in /docs by @dependabot[bot] in #49548
- Build(deps): Bump @astrojs/markdown-remark from 7.2.1 to 7.2.2 in /docs by @dependabot[bot] in #49549
- Build(deps): Bump alpine from 3.22 to 3.24 by @dependabot[bot] in #49547
- Remove stale github-mcp-server v1.7.0 container image pin by @pelikhan with @Copilot in #49613
- Update GPT pricing catalog and default detection/evals model routing via aliases by @pelikhan with @Copilot in #49586
- improve: threat detection engine error template with progressive disclosure by @pelikhan with @Copilot in #49497
- Fix create_pull_request rewrite/push parity for excluded files and base drift by @pelikhan with @Copilot in #49474
- fix: target current checkout subdirectory in Configure Git credentials steps by @pelikhan with @Copilot in #49524
- refactor: migrate remaining RunGHWithHost call sites to RunGHContextWithHost by @pelikhan with @Copilot in #49554
- fix: correct Squid access.log path and add runtime presence detection by @pelikhan with @Copilot in #49557
- Drop "cancelled" from FAILURE_CONCLUSIONS in aw-failure-investigator by @pelikhan with @Copilot in #49658
- feat: support sbx bounded-query runtime by @lpcox in #49247
- fix(auto-triage): add missing classification rules for unlabeled report-type issues by @pelikhan with @Copilot in #49679
- fix: normalize report formatting guidance across workflow prompts by @pelikhan with @Copilot in #49677
- Fix credit-ceiling handling: exit 0 when AI credits budget is enforced by @pelikhan with @Copilot in #49614
- fix(safe-outputs): treat stale/resolved review threads as no-ops; allow bot review dismissal by @pelikhan with @Copilot in #49648
- CLI consistency: reject legacy nested
ghfallback under multi-subcommand parents by @pelikhan with @Copilot in #49673 - [instructions] Sync instruction files with release v0.84.2 by @github-actions[bot] in #49739
- [test-parallel] test: add t.Parallel() to TestFormatListWithOr by @github-actions[bot] in #49724
- [docs] docs: fix British spellings in frontmatter reference by @github-actions[bot] in #49706
- Pin Serena MCP image to remediated SHA tag and propagate digest across workflow artifacts by @pelikhan with @Copilot in #49693
- Remove vulnerable
cli-proxy:0.27.42container pin from shared action lock data by @pelikhan with @Copilot in #49692 - docs: document search_repositories repo: qualifier limitation by @pelikhan with @Copilot in #49691
- [docs] docs: unbloat staged mode reference by @github-actions[bot] in #49687
- fix: replace strings.Index == 0 with strings.HasPrefix; enforce stringsindexhasprefix linter by @pelikhan with @Copilot in #49676
- Accept targeted literal
.replace()escapes inrequire-escaped-regexp-interpolationby @pelikhan with @Copilot in #49674 - [log] Add debug logging to five pkg/linters analyzers by @github-actions[bot] in #49707
- Normalize setup-js caught-error logging to use getErrorMessage by @pelikhan with @Copilot in #49686
- [eslint-miner] eslint-factory: extend no-setfailed-then-exit-zero to catch process.exitCode = 0 by @github-actions[bot] in #49740
- fix: move Python venv out of agent artifact upload path to restore MCP telemetry observability by @pelikhan with @Copilot in #49685
- Add walkfuncerrshadow analyzer for filepath.Walk err shadowing by @pelikhan with @Copilot in #49633
- fix: escape MCP env secrets with ${VAR} for non-Copilot engines to prevent heredoc JSON corruption by @pelikhan with @Copilot in #49450
- [aw] Enforce safe-output emission in daily arXiv researcher workflow by @pelikhan with @Copilot in #49749
- enforce: add contextcancelnotdeferred and wgdonenotdeferred to CI linter gates by @pelikhan with @Copilot in #49755
- [docs] Update documentation for features from 2026-08-02 by @github-actions[bot] in #49763
- Split developer/SKILL.md into task-scoped sub-skills; fix npm vulnerabilities by @pelikhan with @Copilot in #49757
- fix(conformance): fix WTD-001/WTD-002 false-positives on centralized threat-detection label string by @pelikhan with @Copilot in #49753
- harden fetch calls with timeouts and try/catch in actions/setup/js by @pelikhan with @Copilot in #49670
- fix: populate safe_outputs in activity/summary.json even when manifest is empty by @pelikhan with @Copilot in #49650
- fix: SC2038 β use
find -print0 | xargs -0in workflow scripts by @pelikhan with @Copilot in #49756 - fix(security): remove vulnerable gh-aw-firewall 0.27.42 container pins (agent, api-proxy, squid) by @pelikhan with @Copilot in #49766
- fix: return no-op for stale review_id 404 in dismiss_pull_request_review by @pelikhan with @Copilot in #49745
- fix(prompt-clustering): add explicit safeoutputs create_discussion call by @pelikhan with @Copilot in #49760
- feat: add shellcheck gate for actions/setup/sh by @pelikhan with @Copilot in #49761
- fix(metrics-collector): restore metrics/latest.json updates broken since Jan 2026 by @pelikhan with @Copilot in #49767
- fix(eslint-factory): extend no-caught-error-interpolation to cover EventEmitter .on('error') handlers by @pelikhan with @Copilot in #49768
- fix(mount_mcp_as_cli): retry tools/list on empty response to handle backend schema-build race by @pelikhan with @Copilot in #49759
- fix: update node:lts-alpine pin to remediate critical/high CVEs by @pelikhan with @Copilot in #49781
- ci: enforce goroutinemissingrecover and trimleftright in lint gate by @pelikhan with @Copilot in #49783
- fix(dispatch-workflow): expose
refparameter in per-workflow tool schema whenallowed-refsis configured by @pelikhan with @Copilot in #49754 - Restore live GitHub MCP tools in toolset mappings and align docs with redistributed search ownership by @pelikhan with @Copilot in #49790
- fix(security): disable semgrep/semgrep container β Critical/High CVEs, no upstream fix available by @pelikhan with @Copilot in #49694
- Address leftover golint findings in CLI init/compile flow, stringsconcatloop analyzer, and actionpins test set usage by @pelikhan with @Copilot in #49752
- Fix false positive AI credits rate limit and agentic engine timeout detections by @pelikhan with @Copilot in #49750
- fix(eslint): require-escaped-regexp-interpolation β const-binding resolution to eliminate false positives by @pelikhan with @Copilot in #49782
- Update
python:alpinecontainer pin to remediated digest in action/workflow lock data by @pelikhan with @Copilot in #49791 - fix: replace hardcoded
claude-haiku-4.5with portablesmallalias in grumpy-coder sub-agent by @pelikhan with @Copilot in #49796 - Merge concurrent experiment state rebases in push_experiments_state by @pelikhan with @Copilot in #49631
- engine/codex: compile error when restricted bash allowlist is configured by @pelikhan with @Copilot in #49758
- [dead-code] chore: remove dead functions β 4 functions removed by @github-actions[bot] in #49801
- security: remove mcp/markitdown container (849 CVEs, no upstream fix) by @pelikhan with @Copilot in #49806
- Fix evals AIC rendering in generated no-op footers by @pelikhan with @Copilot in #49802
- refactor(typeutil): split map-extraction helpers into lookup.go by @pelikhan with @Copilot in #49746
- Rescue completed watchdog-fired Copilot runs from false
authentication_failedclassification by @pelikhan with @Copilot in #49792 - Add full AI crawler allow-list to docs site robots.txt by @pelikhan with @Copilot in #49820
- Disable vulnerable mcp/notion container integration (Critical/High CVEs, no upstream fix) by @pelikhan with @Copilot in #49805
- Add dedicated unit coverage for activation step helpers by @pelikhan with @Copilot in #49800
- feat: add archivx agentic workflows analyzer with glowmotion animated diagrams by @pelikhan with @Copilot in #49816
- Refactor workflow engine execution builders and log parsers to clear largefunc lint slice by @pelikhan with @Copilot in #49793
- feat: shellcheck linting phase for run steps in compile pipeline by @pelikhan with @Copilot in #49762
- Add formal test predicates P16βP21 for otel-observability-spec by @pelikhan with @Copilot in #49809
- Refactor interactive/audit CLI large functions into focused helpers by @pelikhan with @Copilot in #49799
- Require explicit
repofor wildcardpush_to_pull_request_branchtargets in multi-repo workflows by @pelikhan with @Copilot in #49813 - Add first-class agent job gating via
jobs.agent.needsandjobs.agent.ifby @pelikhan with @Copilot in #49814 - [WIP] Fix failing GitHub Actions job for unit tests by @pelikhan with @Copilot in #49844
- Fix read-tool workspace permission scoping regression (daily workflows killed by denial threshold) by @pelikhan with @Copilot in #49840
- Fix SC2015 shellcheck errors in generated "Collect usage artifact files" step by @pelikhan with @Copilot in #49845
- Fix gh-aw-node brace-expansion patch: replace broken npm --prefix overlay with temp-dir copy (GHSA-mh99-v99m-4gvg) by @pelikhan with @Copilot in #49853
- feat: shellcheck Docker fallback for systems without native binary; re-enable in MCP by @pelikhan with @Copilot in #49826
- fix: support
ready_for_reviewactivity type inpull_request_targettrigger by @pelikhan with @Copilot in #49865 - Fix on.needs being emitted into compiled workflow on: section by @pelikhan with @Copilot in #49864
- Fix Codex fetch integration tests and restore timeout-minutes propagation fallback by @pelikhan with @Copilot in #49858
- Extract inline output templates from daily-cache-strategy-analyzer into shared file by @pelikhan with @Copilot in #49861
- Fix activation job needs not populated from engine.env needs expressions by @pelikhan with @Copilot in #49863
- Add skill invocation visibility for APM-restored skills by @pelikhan with @Copilot in #49866
- fix: prevent spurious merge conflicts when source field position differs from canonical end-of-frontmatter by @pelikhan with @Copilot in #49859
- feat(linters): add uncheckedflushreturn analyzer + fix existing violations by @pelikhan with @Copilot in #49862
- [docs] docs: unbloat dependabot rollout example by @github-actions[bot] in #49874
- Handle comment-only frontmatter in shared workflow parsing by @pelikhan with @Copilot in #49875
- Handle stale merged PRs in
update_pull_requestbranch refresh without failing safe-outputs processing by @pelikhan with @Copilot in #49881 - feat: shellcheck disabled by default, opt-in via --shellcheck/--validate, parallel execution by @pelikhan with @Copilot in #49880
- [community] Update community contributions in README by @github-actions[bot] in #49884
- [blog] Weekly blog post β 2026-08-03 by @github-actions[bot] in #49890
- [aw] Raise Semantic Function Refactoring turn budget to prevent invocation-cap failures by @pelikhan with @Copilot in #49886
- [compiler-threat-spec] spec: add CTR-022 (git argument injection) and CTR-023 (bash allowlist illusion) by @github-actions[bot] in #49895
- docs: fix dispatch_workflow default max (3 β 1) in safe-outputs-specification.md by @pelikhan with @Copilot in #49892
- [log] Add debug logging to under-instrumented pkg/ files by @github-actions[bot] in #49896
- docs: multi-scenario evaluation example and failure classification for agentic workflow agent by @pelikhan with @Copilot in #49891
Full Changelog: v0.84.2...v0.84.3