v0.87.1
Pre-release
Pre-release
·
12 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
π Release Highlights
This release focuses on hardening the workflow compiler and sandbox runtime, expanding safe-output capabilities (stacked pull requests, pre-created PR mode), and shipping a big batch of security, reliability, and documentation improvements across the agentic workflow ecosystem.
β¨ What's New
- Stacked pull request support for the
create-pull-requestsafe output, enabling multi-commit workflows to build PR chains. - Pre-created pull request safe output mode, giving workflows more flexibility in how PRs are opened and managed.
- Source-to-destination mappings in
aw.ymlincludes, making shared workflow imports more flexible. gh aw initnow validates generatedcopilot-setup-steps.yml, catching setup issues earlier.- Continued rollout of the cloud-hypervisor sandbox runtime across dozens of agentic workflows for improved isolation.
- New
secret-scanning-alertspermission support intools.github.github-app.permissions, with automatic token input. - Polished workflow prompt wizard, plus docs now redirect to the hosted wizard experience.
π Bug Fixes & Improvements
- Fixed
gh aw updatedropping object-form (uses/with) imports. - Fixed Timeout type drift between
BoundedQueriesConfigandAWFBoundedQueriesConfig. - Hardened git argument construction against option injection and path traversal.
- Fixed silent truncation of the Agent Job Health Monitor's 24h log cache due to a default
--countcap. - Fixed Copilot CLI toolcache hits not creating
/usr/local/bin/copilot. - Fixed transient curl connection-reset failures in setup install scripts.
- Hardened Copilot CLI release installation against transient CDN failures.
- Rejected digest-qualified container pin references for tighter supply-chain safety.
- Numerous safe-output reliability fixes (PR trigger context forwarding, stdin JSON payload validation, MCP tool guidance, artifact upload fallback survival).
π Documentation
- Reconciled contradictory max-turns engine-support tables in
engines.md. - Expanded WIF (Workload Identity Federation) guidance and clarified frontmatter ordering.
- Documented explicit Docker sandbox runtime behavior and repository shorthand for secrets bootstrap.
- Added
review-agentic-workflowsskill for security-first workflow review and optimization triage.
π§ Internal
- Large-scale refactors: decomposed safe-output compiler helpers, split the custom job compiler into focused modules, refactored the experiments CLI, and hoisted duplicated linter analyzer helpers into shared utilities.
- Continued Go test parallelization (
t.Parallel()) acrosspkg/cliand codemod test suites for faster CI.> Generated by π Release Β· auto Β· 26.4 AIC Β· β 11.7K
What's Changed
- Add experimental DeepSeek Harness engine by @pelikhan with @Copilot in #53002
- Refactor AWF command builders to reduce function-length lint backlog by @pelikhan with @Copilot in #52999
- Fix ECONNREFUSED driver_exit failures in Copilot SDK engine by gating on api-proxy listener readiness by @pelikhan with @Copilot in #52994
- [docs] docs: unbloat cost management reference by @github-actions[bot] in #53001
- Fix DeepSeek smoke harness npm install cooldown by @pelikhan with @Copilot in #53009
- Avenger: enforce 8-minute runtime budget and failure-driven repair flow by @pelikhan with @Copilot in #53021
- Add restricted-tool triage guidance for tool denials by @pelikhan with @Copilot in #53025
- Use cached logs for daily firewall reporting by @pelikhan with @Copilot in #53024
- Fix tool denial guardrail failure in Daily Regression Audit workflow by @pelikhan with @Copilot in #53030
- [compiler-threat-spec] docs: sync CTR-025 framework self-prompt misattribution spec by @pelikhan with @Copilot in #53037
- Gate mapclearloop findings on loop-body coverage by @pelikhan with @Copilot in #53034
- Eliminate shared mutable builtin virtual FS state in parser registration path by @pelikhan with @Copilot in #53019
- [code-simplifier] Simplify purity_scan.go by extracting resolveObj and ensureDir helpers by @pelikhan with @Copilot in #53036
- Fix Code Scanning Fixer tool denials by @pelikhan with @Copilot in #53038
- Increase Safe Output Health Monitor turn budget by @pelikhan with @Copilot in #53042
- Increase Step Name Alignment turn budget to prevent guardrail-aborted runs by @pelikhan with @Copilot in #53035
- Use run-scoped authentication for Aider workflows by @pelikhan with @Copilot in #53044
- Harden Avenger against transient Claude harness failure exhaustion by @pelikhan with @Copilot in #53043
- Refactor shared value formatting and unify GitHub error/SHA classification paths by @pelikhan with @Copilot in #53018
- Use default runtime for GitHub Docs SEO optimizer by @pelikhan with @Copilot in #53047
- Make agent failure log rendering
::add-mask::aware by @pelikhan with @Copilot in #53048 - Document ESLint factory rules and prevent README drift by @pelikhan with @Copilot in #53061
- Detect split-index numeric parses wrapped in fallbacks and ternaries by @pelikhan with @Copilot in #53063
- Accept unavailable upstream Grafana MCP vulnerability fixes by @pelikhan with @Copilot in #53079
- [test-parallel] Add t.Parallel() to safe Go test subtests (batch 1) by @github-actions[bot] in #53083
- [instructions] Sync instruction files with release v0.87.0 by @github-actions[bot] in #53092
- Refresh Serena MCP container pin by @pelikhan with @Copilot in #53078
- [rendering-scripts] Render message/reason fields in safe-outputs step-summary preview by @github-actions[bot] in #53087
- Fix TestFormal_TestIDFormatWellFormed for shared CTR test ID allocation by @pelikhan with @Copilot in #53108
- Update approve-workflow-run safe output description by @pelikhan with @Copilot in #53115
- Increase memory headroom for Daily Evals report agent by @pelikhan with @Copilot in #53111
- Handle cold cache state in Claude docs review by @pelikhan with @Copilot in #53122
- Sync GitHub MCP toolset mappings by @pelikhan with @Copilot in #53121
- Enable cloud-hypervisor sandbox runtime for copilot, claude, and gemini smoke workflows by @pelikhan with @Copilot in #53133
- Add ESLint guard for stalled
while (true)pagination by @pelikhan with @Copilot in #53120 - Pre-fetch workflow logs for Workflow Normalizer by @pelikhan with @Copilot in #53128
- Allow
targetinsafe-outputs.create-check-runfrontmatter schema by @pelikhan with @Copilot in #53113 - [purelock] Lock down recommendAuditComparisonAction, prepareNestedMapValueForYAML, gatewayEntryToTimelineEvent with pure-functio
[Content truncated due to length] by @github-actions[bot] in #53123 - [WIP] Debug package specification librarian workflow failure by @pelikhan with @Copilot in #53135
- [avenger] Add required allowed-workflows to approve-workflow-run test fixture by @github-actions[bot] in #53138
- Harden Copilot CLI release installation against transient CDN failures by @pelikhan with @Copilot in #53112
- Stage Pi CLI in the docker-sbx-visible path so Pi agents run under microVM sandboxes by @pelikhan with @Copilot in #53110
- Reject digest-qualified container pin references by @pelikhan with @Copilot in #53139
- Add fallback artifact so safe outputs survive agent artifact upload failures by @pelikhan with @Copilot in #53109
- Don't fail safe_outputs job when a resolve-review-thread ID hits an unrelated repo by @pelikhan with @Copilot in #53124
- [dead-code] chore: remove dead functions β 1 function removed by @github-actions[bot] in #53141
- Fix JSONL corruption in daily CLI performance benchmark history by @pelikhan with @Copilot in #53146
- Fill documentation gaps found by Agent Persona Explorer run (schedule-based compliance audits, PM digests, multi-scenario comparisons) by @pelikhan with @Copilot in #53155
- Fix transient curl connection-reset failures in setup install scripts by @pelikhan with @Copilot in #53154
- Fix Aider engine producing no safe outputs by pinning the diff edit format by @pelikhan with @Copilot in #53160
- Migrate 30 more agentic workflows to the gh-aw-detection feature by @pelikhan with @Copilot in #53162
- Classify Deep Report GitHub Actions preflight outages by @pelikhan with @Copilot in #53161
- Update Serena MCP to the project-maintained image by @pelikhan with @Copilot in #53163
- Fix Linter Miner sub-agent model configuration to avoid Copilot model_not_supported failures by @pelikhan with @Copilot in #53166
- test: strengthen OnceLoader lifecycle coverage by @pelikhan with @Copilot in #53170
- Resolve daily SPDD spec sync gaps by @pelikhan with @Copilot in #53151
- Allow api.sentrux.dev in daily-sentrux-report firewall by @pelikhan with @Copilot in #53186
- Add driver-level stall watchdog log signal for hung agent CLI steps by @pelikhan with @Copilot in #53185
- [safe-output-integrator] Add missing approve-workflow-run test fixture by @github-actions[bot] in #53188
- Provision Go before Linter Miner Serena startup by @pelikhan with @Copilot in #53194
- Use plain ARM smoke test run notifications by @pelikhan with @Copilot in #53195
- docs: reconcile contradictory max-turns engine-support tables in engines.md by @pelikhan with @Copilot in #53187
- [caveman] Optimize instruction verbosity β action-container-substitutions, developer.instructions (2026-08-16) by @github-actions[bot] in #53207
- Handle bare Design Decision Gate workflow dispatch by @pelikhan with @Copilot in #53202
- Harden sandbox.mcp.env key encoding at emission and launch boundaries by @pelikhan with @Copilot in #53171
- Detect and replace heredocs in generated workflow YAML by @pelikhan with @Copilot in #53183
- Extract shared deferred-cleanup tracker for pkg/linters by @pelikhan with @Copilot in #53221
- Collapse sandbox security options into runtime profiles by @lpcox with @Copilot in #53168
- Add typed frontmatter fields for ambient folders and GitHub App fallback by @pelikhan with @Copilot in #53196
- Add schedule heartbeat check to agent-job-health to catch silent scheduling gaps by @pelikhan with @Copilot in #53259
- Add CONTRIBUTING.md guidance on writing prompts for Copilot-assigned issues by @pelikhan with @Copilot in #53257
- Preserve Aider subprocess failure diagnostics by @pelikhan with @Copilot in #53210
- Prevent Claude debug logs from corrupting stream-json transcripts by @pelikhan with @Copilot in #53260
- Fix rpc-messages.jsonl parsing to handle real-world event/_schema format by @pelikhan with @Copilot in #53256
- [blog] Weekly blog post β 2026-08-17 by @github-actions[bot] in #53281
- [WIP] Fix failing GitHub Actions job Integration: CLI Compile & Poutine by @pelikhan with @Copilot in #53274
- Allow Python parsing in Daily Regression Audit by @pelikhan with @Copilot in #53280
- packagelevelmutableslicemap: detect wholesale re-assignment by @pelikhan with @Copilot in #53289
- Refactor intent record construction by @pelikhan with @Copilot in #53277
- Fix cache-memory detection in daily-cache-strategy-analyzer via aw_info.json field by @pelikhan with @Copilot in #53258
- Align Crush and OpenCode install step names by @pelikhan with @Copilot in #53290
- [spec-review] Update Safe Outputs conformance checker for recent spec changes by @github-actions[bot] in #53292
- [avenger] Allow null sandbox.agent in workflow schema by @github-actions[bot] in #53293
- Make PR Description Updater use triggering PR context for
update_pull_requestby @pelikhan with @Copilot in #53301 - Constrain go-logger candidate selection to prevent agent timeout by @pelikhan with @Copilot in #53302
- [docs] Update glossary - weekly full scan by @github-actions[bot] in #53351
- [schema-coverage] feat: Add schema coverage demo for
enclavesfield by @github-actions[bot] in #53325 - [architecture] Update architecture diagram - 2026-08-17 by @github-actions[bot] in #53342
- Split long CLI logs/reporting functions into focused helpers by @pelikhan with @Copilot in #53279
- Fix premature copilot-sdk readiness timeout and unhelpful engine failure context by @pelikhan with @Copilot in #53299
- [test-parallel] test: add t.Parallel() to safe subtests (daily batch) by @github-actions[bot] in #53322
- Document explicit Docker sandbox runtime by @pelikhan with @Copilot in #53374
- Report step-level timeouts as timeouts, raise Go Logger step budget to 30m by @pelikhan with @Copilot in #53360
- Add regression coverage for command argument injection safeguards by @pelikhan with @Copilot in #53359
- Harden daily regression audit against tool-denial loops and prevent premature denial-issue closure by @pelikhan with @Copilot in #53370
- [test-parallel] Add t.Parallel() to safe tuistory integration tests by @github-actions[bot] in #53381
- Provision Go for all serena-go.md consumers, not just Linter Miner by @pelikhan with @Copilot in #53383
- [eslint-miner] add
require-fs-close-syncrule for unclosedfs.openSyncdescriptors by @pelikhan with @Copilot in #53368 - Add
ignore-imagesto.grant.yamland exclude the Serena MCP image from license scanning by @pelikhan with @Copilot in #53369 - Treat stacked-PR
update_branchAPI failures as non-fatal in PR Sous Chef safe outputs by @pelikhan with @Copilot in #53300 - Document why prefer-core-logging's stdout-safety exclusion doesn't extend to log/info/debug by @pelikhan with @Copilot in #53413
- [test-parallel] Add t.Parallel() to safe Go tests in pkg/cli (daily batch) by @github-actions[bot] in #53407
- Update testify to v1.12.0 by @pelikhan with @Copilot in #53425
- Triage aging CodeQL alert #564: prefer gh extension install over curl|bash in README by @pelikhan with @Copilot in #53424
- [test-parallel] test: add t.Parallel() to safe subtest in audit_mcp_tool_usage_test.go by @github-actions[bot] in #53438
- Document repository shorthand for secrets bootstrap by @pelikhan with @Copilot in #53399
- Refactor custom job compiler into focused modules by @pelikhan with @Copilot in #53394
- Reduce recurring runner-guard static-analysis noise by @pelikhan with @Copilot in #53398
- Add stacked pull request support to the create-pull-request safe output by @pelikhan with @Copilot in #53385
- Support issue field activity types in workflow schemas by @pelikhan with @Copilot in #53441
- Simplify TestIsActivationJobNeeded to match unconditional source behavior by @pelikhan with @Copilot in #53447
- [WIP] Fix failing GitHub Actions job Integration: Workflow Features by @pelikhan with @Copilot in #53443
- Fix safe-outputs config assertions in workflow integration tests by @pelikhan with @Copilot in #53468
- [test-parallel] test: add t.Parallel() to safe codemod tests in pkg/cli (batch) by @github-actions[bot] in #53472
- Refine interpolated command lint detection by @pelikhan with @Copilot in #53393
- Consolidate container CVE findings under burn-down tracker by @pelikhan with @Copilot in #53431
- Fix safe-output guidance for MCP tool workflows by @pelikhan with @Copilot in #53453
- Pin setup action in centralized slash-command dispatcher by @pelikhan with @Copilot in #53457
- safeoutputs: fail fast on invalid stdin JSON payload mode instead of falling through to βno argumentsβ by @pelikhan with @Copilot in #53455
- Sync schema/parser/docs drift: typed max-turns/max-runs fields and user-rate-limit docs by @pelikhan with @Copilot in #53469
- Support
secret-scanning-alertsintools.github.github-app.permissionsand emit token input by @pelikhan with @Copilot in #53454 - Patch schema update pipeline so
gh aw validateacceptsissuestype-change activity types by @pelikhan with @Copilot in #53458 - Ensure detection jobs download activation prompt artifacts by @pelikhan with @Copilot in #53485
- Retry model-catalog 429s and stop forwarding unresolved Copilot model aliases by @pelikhan with @Copilot in #53456
- [test-parallel] Add t.Parallel() to safe top-level Go tests in pkg/cli codemod suite by @github-actions[bot] in #53491
- Refresh deep-report data caches every six hours by @pelikhan with @Copilot in #53486
- [squad] Cast your Squad β The Usual Suspects for gh-aw by @github-actions[bot] in #53493
- Add timing summaries to long-running validation workflows by @pelikhan with @Copilot in #53492
- Fix safeoutputs PR trigger context forwarding by @pelikhan with @Copilot in #53475
- Split workflow cache and Dependabot helpers by responsibility by @pelikhan with @Copilot in #53479
- Remove redundant Copilot ripgrep installation by @pelikhan with @Copilot in #53521
- [squad] Implement #53513: Define shared wizard JSON model and schema by @github-actions[bot] in #53527
- Use workflow frontmatter emoji for activation status comments by @pelikhan with @Copilot in #53494
- Document intentional empty catch blocks in setup JS by @pelikhan with @Copilot in #53510
- Remediate setup JS thrown error code coverage by @pelikhan with @Copilot in #53508
- Migrate 30 agentic workflows to the cloud-hypervisor sandbox runtime by @pelikhan with @Copilot in #53543
- [test-parallel] Daily Go test parallelizer: add t.Parallel() to safe subtests in add_interactive_secrets_test.go by @github-actions[bot] in #53544
- Pin Auto-Triage report discussion title to stop near-duplicate threads by @pelikhan with @Copilot in #53546
- Decouple Copilot PR/session cache-memory lookups from the current date by @pelikhan with @Copilot in #53547
- Print explicit window_start/window_end UTC timestamps in Daily Status and Team Evolution reports by @pelikhan with @Copilot in #53545
- Add Pydantic AI agentic engine sample by @pelikhan with @Copilot in #53542
- Refactor close_older handlers to shared descriptor-driven orchestration by @pelikhan with @Copilot in #53502
- Fix silent truncation of Agent Job Health Monitor's 24h log cache due to default --count cap by @pelikhan with @Copilot in #53557
- Add gh-aw-detection to Daily Team Evolution Insights and MCP Inspector Agent by @pelikhan with @Copilot in #53556
- Add timeout guards to setup JS child processes by @pelikhan with @Copilot in #53507
- [compiler-threat-spec] docs(spec): daily threat-spec review β extend CTR-005/007/009/012 mappings (2026-08-18) by @github-actions[bot] in #53566
- [test-parallel] test: add t.Parallel() to safe pkg/cli test cases by @github-actions[bot] in #53568
- Remove daily-skill-optimizer agentic workflow by @pelikhan with @Copilot in #53570
- [squad] Implement #53514: Map workflow semantics for WHAT/WHEN/WHERE catalogs by @github-actions[bot] in #53573
- Add missing cache_write pricing for GPT-5.6 Copilot models by @pelikhan with @Copilot in #53571
- Treat Copilot CLI's own retry-exhaustion message as non-retryable in harness classification by @pelikhan with @Copilot in #53569
- Fix named string conversion diagnostics in bytescomparestring by @pelikhan with @Copilot in #53582
- [test-parallel] Add t.Parallel() to safe codemod tests in pkg/cli (batch 2) by @github-actions[bot] in #53584
- [community] Update community contributions in README by @github-actions[bot] in #53562
- refactor(linters): hoist duplicated analyzer helpers into astutil/analyzerutil by @pelikhan with @Copilot in #53564
- Allow
python3in daily regression audit workflow and sync compiled lock permissions by @pelikhan with @Copilot in #53597 - Suppress RGS-016 false positive in agentic_commands.yml by @pelikhan with @Copilot in #53599
- Fix false positive in require-lastindex-reset-before-global-exec-loop for naturally-exhausting nested exec loops by @pelikhan with @Copilot in #53602
- Fix require-page-counter-increment-in-while-true-loop missing counters separated by other declarations by @pelikhan with @Copilot in #53610
- [test-parallel] test: add t.Parallel() to safe codemod tests in pkg/cli by @github-actions[bot] in #53617
- [instructions] Sync instruction files with release v0.87.0 by @github-actions[bot] in #53628
- [spec-extractor] Update package specifications for agentdrain and console by @github-actions[bot] in #53634
- Bump astro from 7.2.0 to 7.2.2 in /docs by @dependabot[bot] in #53639
- Bump starlight-links-validator from 0.25.2 to 0.25.3 in /docs by @dependabot[bot] in #53640
- [squad] Implement #53515: Define prompt assembly contract and UX flow by @github-actions[bot] in #53650
- [tidy] Format code with prettier and gofmt by @pelikhan with @Copilot in #53657
- Require safe-output noop for unchanged CLI versions by @pelikhan with @Copilot in #53660
- docs: expand WIF on first use, define frontmatter earlier, add "Get Started" hero label by @pelikhan with @Copilot in #53655
- Pre-install AgentRx on a portable CPython instead of pip-installing in the sandbox by @pelikhan with @Copilot in #53658
- [squad] Implement #53498: AW wizard in docs by @github-actions[bot] in #53671
- Fix Copilot CLI toolcache hit not creating /usr/local/bin/copilot by @pelikhan with @Copilot in #53490
- Add ESLint rule: no-math-minmax-array-spread by @pelikhan with @Copilot in #53653
- Use charting venv in API consumption report by @pelikhan with @Copilot in #53675
- Remove unsupported top-level frontmatter fields by @pelikhan with @Copilot in #53678
- Harden git argument construction against option injection and path traversal by @pelikhan with @Copilot in #53601
- [test-parallel] Add t.Parallel() to safe top-level Go tests (batch) by @github-actions[bot] in #53692
- Allow PR Sous Chef to approve CJS and CGO action-required runs by @pelikhan with @Copilot in #53679
- Pre-filter upstream-blocked container/image CVE findings before Copilot assignment by @pelikhan with @Copilot in #53709
- Fix Timeout type drift between BoundedQueriesConfig and AWFBoundedQueriesConfig by @pelikhan with @Copilot in #53694
- Prevent issue-intent labels from removing existing labels by @pelikhan with @Copilot in #53672
- Omit CLI-only safeoutputs instructions when bash is disabled; make cli-proxy/bash incompatibility explicit by @pelikhan with @Copilot in #53548
- Surface Copilot CLI execution step exit code as an error annotation by @pelikhan with @Copilot in #53656
- [blog] Agent of the Day β 2026-08-18 by @github-actions[bot] in #53715
- Prevent recurring PR Sous Chef safe-output failures by @pelikhan with @Copilot in #53676
- [test-parallel] test(cli): parallelize safe Go tests in pkg/cli (batch) by @github-actions[bot] in #53721
- Guard CGO/CJS workflow purity by @pelikhan with @Copilot in #53680
- Add pre-created pull request safe output mode by @pelikhan with @Copilot in #53576
- [squad] Implement #53519: Add docs integration, test coverage, and regression checks by @github-actions[bot] in #53750
- [squad] Implement #53518: WHERE inference and generated prompt output by @github-actions[bot] in #53745
- Implement ResolveRisk and Authorizer.AuthorizeTool in pkg/intent by @pelikhan with @Copilot in #53742
- Allow add-wizard to write workflows without creating a PR by @mnkiefer with @Copilot in #53643
- Remove stale copilot-otel.jsonl references from docs and specs by @pelikhan with @Copilot in #53724
- Harden against accidental root binary commits for
actionlint/gosecby @pelikhan with @Copilot in #53764 - Emit queue: max on top-level workflow concurrency groups by @pelikhan with @Copilot in #53731
- Polish the workflow prompt wizard by @pelikhan with @Copilot in #53769
- Add missing safe-output configuration schema coverage by @pelikhan with @Copilot in #53659
- Share MCPServerStatsBase across duplicated MCP server health/stats structs by @pelikhan with @Copilot in #53693
- Refactor experiments CLI into focused modules by @pelikhan with @Copilot in #53706
- Fix
gh aw updatedropping object-form (uses/with) imports by @mnkiefer with @Copilot in #53704 - Warn callers when
logsMCP tool returns stale data with no date range specified by @pelikhan with @Copilot in #53719 - Support source-to-destination mappings in aw.yml
includesby @pelikhan with @Copilot in #53698 - docs: add verification step to ET β AIC migration blog post by @pelikhan with @Copilot in #53797
- Add next step to PR triage failure message by @pelikhan with @Copilot in #53798
- Fix GEO optimizer project-site AI discovery false negatives by @pelikhan with @Copilot in #53800
- Reduce CI noise sensitivity in daily CLI performance benchmarks by @pelikhan with @Copilot in #53777
- Document modelcontextprotocol/go-sdk module review findings by @pelikhan with @Copilot in #53778
- Decompose safe-output compiler helpers by @pelikhan with @Copilot in #53720
- Validate generated copilot-setup-steps.yml in
gh aw initby @pelikhan with @Copilot in #53780 - Add blocked-by dependencies to create-issue by @pelikhan with @Copilot in #53733
Full Changelog: v0.87.0...v0.87.1