API Changes
- You can now configure a TaskTemplate with
labelsandannotationsexpressions which will be available on the Task
(#810)
Features
- Add ghproxy caching server to reduce duplicate GitHub API requests across TaskSpawner pods. Deployed automatically as part of the Helm chart. Configure allowed upstream hosts via ghproxy.allowedUpstreams Helm value. (#838)
- Update opencode image from 1.3.2 to 1.3.4 (#812)
- Update gemini image from 0.35.0 to 0.35.3 (#800)
- Update claude-code image from 2.1.81 to 2.1.87 (#799)
- Update codex image from 0.116.0 to 0.117.0 (#811)
- Update cursor image from 2026.03.20-44cb435 to 2026.03.25-933d5a6 (#801)
- Add Prometheus metrics export to kelos-spawner for discovery cycle observability (#821)
- users can now install kelos with helm: "helm install kelos oci://ghcr.io/kelos-dev/charts/kelos"
(#806) - Add Prometheus metrics (kelos_github_api_requests_total, kelos_github_api_request_duration_seconds) for GitHub API calls (#808)
- Restructured Helm values.yaml to use nested
spawner.resourcesandtokenRefresher.resourceskeys instead of flatspawnerResourceRequests/spawnerResourceLimits/tokenRefresherResourceRequests/tokenRefresherResourceLimitsvalues. Also movedspawnerImageandtokenRefresherImageunderspawner.imageandtokenRefresher.imagerespectively. (#798) - Helm chart now includes CRDs as templates, enabling standalone helm install/upgrade without the kelos CLI. CRD installation can be disabled via crds.install=false for users managing CRDs externally. (#832)
Bug Fixes
- Fix Helm chart release to default to release-tagged images instead of :latest (#825)
Other Changes
- Labels on controller-managed resources changed from
app.kubernetes.io/*tokelos.dev/*. Spawner Deployments are migrated automatically by the controller. The controller manager Deployment must be manually deleted before upgrading (kubectl delete deployment kelos-controller-manager -n kelos-system) becausespec.selector.matchLabelsis immutable; it will be recreated by the install process. (#826)