API Changes
- Add GitHub Checks API reporting for TaskSpawners. Setting
reporting.checkson agithubPullRequestsorgithubWebhook(with PR events) source creates GitHub Check Runs that reflect task status, enabling branch protection rules and merge queue integration. An optionalchecks.namefield overrides the default check name. (#1016, @knechtionscoding) - TaskSpawner GitHubWebhook filters now support a
commentOnfield (IssueorPullRequest) that scopesissue_commentevents to comments on plain issues or pull requests. Empty matches both (existing behavior). (#1081, @app/kelos-bot) - Add Slack as a TaskSpawner source with a centralized kelos-slack-server that connects via Socket Mode and routes messages to matching agents.
(#1002, @jkahuja) - Add
bodyPatternandexcludeBodyPatternsregex filter fields to GitHub webhook filters. DeprecatebodyContainsin favor ofbodyPattern. (#1058, @knechtionscoding) - Add CommentBody and CommentURL template variables for GitHub comment webhook events (issue_comment, pull_request_review, pull_request_review_comment). (#931, @knechtionscoding)
- Add reporting support to GitHubWebhook-based TaskSpawners. Setting
reporting.enabled: trueon a webhook source posts status comments back to the originating issue or PR, matching the behavior already available for polling-based sources. (#966, @app/kelos-bot) - Added
Workspace.spec.setupCommand: an optional exec-form command run in the agent container before the agent starts (e.g.["sh", "-c", "npm ci"]). A non-zero exit fails the Task. Useful for repo-specific dependency installs and code generation that depend on the cloned lockfile. (#1056, @app/kelos-bot) - Expand
PodOverrides(used by bothTaskandTaskSpawner) withvolumes,volumeMounts,podSecurityContext, andcontainerSecurityContext. This lets callers attach extra volumes, mount them into the agent container, and declare security contexts so spawned pods can land in PSS-restrictednamespaces. (#1041, @JustinElst) - feat: Adds support for agentConfigReferences allowing for a list to be built up and shared across taskSpawners
(#1014, @knechtionscoding)
Features
- Update cursor image from 2026.04.29-c83a488 to 2026.04.30-4edb302 (#1072, @app/kelos-bot)
- Update gemini image from 0.40.0 to 0.40.1 (#1071, @app/kelos-bot)
- Update codex image from 0.125.0 to 0.128.0 (#1070, @app/kelos-bot)
- Update claude-code image from 2.1.123 to 2.1.126 (#1069, @app/kelos-bot)
- Update cursor image from 2026.04.17-787b533 to 2026.04.29-c83a488 (#1046, @app/kelos-bot)
- Update opencode image from 1.14.28 to 1.14.30 (#1045, @app/kelos-bot)
- Update gemini image from 0.39.1 to 0.40.0 (#1044, @app/kelos-bot)
- Update claude-code image from 2.1.121 to 2.1.123 (#1043, @app/kelos-bot)
- Generated release notes now include the PR author's GitHub handle alongside the PR number (e.g.
(#42, @octocat)). (#1055, @gjkim42)
Bug Fixes
- Fix the GitHubWebhook-driven TaskSpawner reporter posting duplicate status comments when a Task transitions phases faster than the informer cache propagates the persisted comment-ID annotation. (#1065, @gjkim42)
Documentation
- Document the
spec.when.webhook(GenericWebhook) TaskSpawner source: integration guide, field reference, template-variable table, and an end-to-end Sentry example underexamples/13-taskspawner-generic-webhook/. The generic webhook endpoint is currently unauthenticated — restrict access at the network layer until per-source HMAC validation lands (tracked in #1040). (#1035, @app/kelos-bot)