Skip to content

v0.84.3

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Aug 05:22
Immutable release. Only release title and notes can be modified.
5325893

🌟 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.needs and jobs.agent.if support, giving workflow authors finer control over when the agent job executes.
  • dispatch_workflow ref parameter β€” The ref input is now exposed in the per-workflow tool schema when allowed-refs is 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.needs incorrectly leaking into the compiled workflow's on: section, and activation job needs not populating from engine.env expressions.
  • Fixed stale merged PR handling in update_pull_request branch refresh so it no longer fails safe-outputs processing.
  • Corrected pull_request_target trigger to support the ready_for_review activity 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 vulnerable gh-aw-firewall pins.
  • Patched a brace-expansion vulnerability in the gh-aw-node npm overlay (GHSA-mh99-v99m-4gvg).
  • Pinned node:lts-alpine, python:alpine, and Serena MCP images to remediated digests.

πŸ“š Documentation

  • Split developer/SKILL.md into task-scoped sub-skills for easier navigation.
  • Added AI crawler allow-list entries to the docs site robots.txt.
  • Documented the search_repositories repo: 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-labels to opt out of pull-requests: write by @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 gh fallback 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.42 container 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 in require-escaped-regexp-interpolation by @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 -0 in 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 ref parameter in per-workflow tool schema when allowed-refs is 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:alpine container pin to remediated digest in action/workflow lock data by @pelikhan with @Copilot in #49791
  • fix: replace hardcoded claude-haiku-4.5 with portable small alias 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_failed classification 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 repo for wildcard push_to_pull_request_branch targets in multi-repo workflows by @pelikhan with @Copilot in #49813
  • Add first-class agent job gating via jobs.agent.needs and jobs.agent.if by @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_review activity type in pull_request_target trigger 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_request branch 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