v0.87.0
Pre-release
Pre-release
·
7 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
π Release Highlights
This release is a major internal hardening pass β dozens of custom linters, security fixes, and refactors β plus one new safe output capability for handling fork pull requests.
β¨ What's New
- Approve fork pull request workflow runs β a new experimental
approve-workflow-runsafe output lets agents unblock GitHub's fork PR approval gate programmatically, with strict guardrails (protected-file checks, allowed-workflow/PR scoping, and required external tokens). See ADR-52541. - Cloud-hypervisor agent runtime enabled on eligible agentic workflows for improved isolation.
- Model inventory refreshed to include Gemini 3.7 Flash and Grok 4.6.
π§ Internal & Security
- Extended confused-deputy protection to
pull_request_targettriggers. - Removed several vulnerable/deprecated container image pins (
gh-aw-firewall,cli-proxy, Serena MCP) and expanded Grant license/CVE exception policies. - Hardened cache-memory git restore by scrubbing persisted
.gitconfig/info state. - Added numerous new custom lint rules (empty-catch handling, invalid-date checks, dynamic regex patterns, hardcoded file paths, mutable slice/map fields) and fixed several existing rule false positives/negatives.
- Refactored long functions and parameter-heavy APIs (
dependabot.go,SafeUpdate, package resolution) to reduce lint backlog. - Fixed inline review comments on centralized reviewer reruns.
- Removed deprecated
SkipInstructionsfromCompileConfig. - Dependency bumps:
golang.org/x/modto v0.40.0, charmbracelet golden pseudo-version.
No community-labeled issues were closed in this release window.> Generated by π Release Β· auto Β· 16.6 AIC Β· β 11.6K
What's Changed
- Enable cloud-hypervisor agent runtime on eligible agentic workflows by @pelikhan with @Copilot in #52932
- Remove vulnerable cli-proxy 0.27.44 container pin by @pelikhan with @Copilot in #52934
- Complete AI crawler allow list in docs robots.txt by @pelikhan with @Copilot in #52930
- Add packagelevelmutableslicemap custom linter by @pelikhan with @Copilot in #52920
- Add repository-level grype ignore policy for no-fix libc6 CVEs by @pelikhan with @Copilot in #52924
- [WIP] Fix failing GitHub Actions job 'Integration: CLI Completion & Other' by @pelikhan with @Copilot in #52927
- Add conformance coverage for spec safeguards and threat optimizer failures by @pelikhan with @Copilot in #52922
- Expand Grant license exceptions for gh-aw-mcpg container scan findings by @pelikhan with @Copilot in #52933
- Remediate vulnerable Serena MCP container image by @pelikhan with @Copilot in #52923
- Remove vulnerable gh-aw-firewall agent 0.27.44 container image pin by @pelikhan with @Copilot in #52947
- Allow Ubuntu 22.04 base OS packages in Grant policy for the gh-aw-firewall agent image by @pelikhan with @Copilot in #52949
- Cover untested Resolver branches in pkg/intent/resolver_test.go by @pelikhan with @Copilot in #52941
- Enforce regexpdynamicpattern linter in CI (cgo.yml) by @pelikhan with @Copilot in #52954
- hardcodedfilepath: include same-package unexported consts in reuse suggestions by @pelikhan with @Copilot in #52948
- Remove deprecated
SkipInstructionsfromCompileConfigand all call sites by @pelikhan with @Copilot in #52955 - fix(httpnoctx): stop enclosing-scope walk at plain FuncLit boundaries by @pelikhan with @Copilot in #52958
- Fast-fail Copilot "No model available" policy error instead of exhausting retries by @pelikhan with @Copilot in #52953
- Detect Date.parse(...) comparisons in require-invalid-date-check-before-compare by @pelikhan with @Copilot in #52961
- deps: bump golang.org/x/mod to v0.40.0 by @pelikhan with @Copilot in #52962
- Fix named string round-trip diagnostic guidance by @pelikhan with @Copilot in #52963
- Harden cache-memory git restore by scrubbing persisted
.gitconfig/info state by @pelikhan with @Copilot in #52944 - Type SafeJobConfig.RunsOn as RunsOnValue instead of any by @pelikhan with @Copilot in #52940
- Consolidate RunSummary and DownloadResult analysis fields by @pelikhan with @Copilot in #52957
- Recognize Number.isFinite(d.getTime()) as a valid invalid-date guard by @pelikhan with @Copilot in #52968
- Fix embedded error-code detection in thrown-error rule by @pelikhan with @Copilot in #52972
- deps: update charmbracelet golden pseudo-version by @pelikhan with @Copilot in #52977
- Require positive timeouts for synchronous child processes by @pelikhan with @Copilot in #52978
- Fix inline review comments on centralized reviewer reruns by @pelikhan with @Copilot in #52960
- eslint-factory: extend no-empty-catch-block to empty Promise
.catchhandlers by @pelikhan with @Copilot in #52979 - eslint-factory: narrow
require-fetch-response-body-try-catchdiagnostic to actual failure mode by @pelikhan with @Copilot in #52981 - Broaden empty-catch intent comment recognition by @pelikhan with @Copilot in #52983
- Refactor dependabot.go long functions to reduce function-length lint backlog by @pelikhan with @Copilot in #52971
- Extend confused deputy protection to pull_request_target by @pelikhan with @Copilot in #52976
- Consolidate duplicate runs-on normalization helpers across config parsers by @pelikhan with @Copilot in #52975
- Refactor parameter-heavy safe-update and package resolution APIs by @pelikhan with @Copilot in #52982
- Add safe output for approving fork pull request workflow runs by @pelikhan with @Copilot in #52541
- Update model inventory for Gemini 3.7 Flash and Grok 4.6 by @pelikhan with @Copilot in #52993
- Fix daily-code-debt-aider workflow failure by removing docker-sbx runtime by @pelikhan with @Copilot in #52995
Full Changelog: v0.86.3...v0.87.0