Repository navigation
Conversation
## Summary Reduces the steps from `curl | bash` to a running Codex or Claude agent, based on install feedback from 1.0.0-rc3. ### Defaults that work out of the box - `kagent install` now ships default Harnesses `kagent-default`, `codex-default` and `claude-default` in the release namespace. They use the built-in images, the default WorkerPool and the bundled snapshot bucket. The chart value is `harnesses.enabled`, off in the chart and on in `kagent install`. - The default OpenAI ModelConfig uses `apiFormat: responses` (Codex requires it) and `gpt-5-mini`. Azure OpenAI defaults to `gpt-5-mini` and API version `2024-10-21`. ### Installer - `kagent install --provider <name>`: choosing a provider no longer needs a CLI config file. - `kagent install` prints next steps when it finishes. - `kagent install` enables gRPC reflection, so the grpcurl guides work without extra setup. The chart default stays `false`, and an operator values file can turn it off. - gRPC reflection now requires the configured authentication instead of being `AccessPublic`. Insecure mode (the default) still answers anonymous callers. With authentication on, callers must pass credentials, because reflection lists every registered service, including consumer extensions. - `kagent version --client` prints the CLI version without contacting a server. - `scripts/get-kagent`: - installs the release GitHub marks latest, reading its tag from the `/releases/latest` redirect instead of the rate-limited API. `--version` still pins a release. - offers only platforms that are actually published, and fixes the Windows `.exe` name - no longer needs `jq` - has tests, which now run in CI - The release workflow has a "latest" checkbox, on by default, so whoever dispatches a release decides whether a plain install gets it. Release candidates are released as latest until 1.0 is final. Patches to an older line clear the checkbox; `release/v0.10.x` never marks itself latest (#3567). A `-` tag is a prerelease only when it is not latest, because GitHub can't mark a prerelease latest. ### UI - Harness form: - The image is optional for the kagent, Codex and Claude harness types. - The worker pool is a type-ahead list from the new `ListWorkerPools` RPC. - The snapshot location is prefilled and explained. - Harnesses can be edited (new `UpdateHarness` RPC and an edit page). - Agent form: - Harness selection comes first, with a sensible harness preselected. - A "Create harness" dialog keeps the rest of the form intact. - A warning appears when the Harness and ModelConfig are incompatible. - All validation problems are listed together. - ModelConfig form: `apiFormat` and `reasoningEffort` are dropdowns. - The agent page shows a banner explaining why the last update failed. ### Diagnosability - When an image can't be pulled, golden build failures now say "could not pull image <ref>". Previously the status only said `GoldenActorCrashed`. The ref is taken only from the ActorTemplate spec, so the existing redaction still holds. - Every golden build retry is now logged, with its retry number. ## Follow-ups (outside this PR) - kagent.dev docs: - add a `/install` redirect and a favicon - remove the `grpcReflection` and config-file steps from the quickstart (`kagent install` now enables reflection; plain Helm installs still need `config.server.grpcReflection=true`) - mention `--provider` ## Testing - Go unit tests and `make -C go lint` pass. New e2e `TestInstalledDefaultHarnesses`. - `make helm-test` passes (354/354). - UI: typecheck and lint pass, vitest 822/822, Playwright specs added for the new flows. - `scripts/get-kagent_test.sh` passes. - Not run: - The Go e2e suite, including the new `TestInstalledDefaultHarnesses`. It's left to CI. - Playwright was run on each part of the change separately, not on the combined branch. - `make proto-generate` was rate-limited by Buf, so the generated code came from a local `buf generate`. CI's generation check will confirm it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 7dfd5f7) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Contributor
I'm wondering if we should keep the defaults the same on 1.0.x and just set the model and 🤖 AI finding: The bigger risk is installs that already set |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #3566 to
release/v1.0.x.Description
Cherry-pick of
7dfd5f72c2f903307acb3b851ff27f754aefe636without changes. It applied with no conflicts.This is opened as written so we can decide here what 1.0.x should take. #3566 is a feature PR, and the backport policy asks for explicit maintainer approval before backporting features or API changes.
Decisions for reviewers
These parts change behaviour for existing 1.0.0 installs:
helm upgrade. Installs on chart defaults have their OpenAI ModelConfig moved fromgpt-4.1-minitogpt-5-miniwithapiFormat: responses. Azure OpenAI moves togpt-5-miniand API version2024-10-21.codex-defaultneedsapiFormat: responseson the default OpenAI ModelConfig, so dropping this entirely leaves Codex not working out of the box.AccessPublic. With authentication on, anonymousgrpcurlreflection stops working.kagent installcreates default Harnesses. A re-run createskagent-default,codex-defaultandclaude-defaultin the release namespace. A Harness a user already created under one of those names will likely make Helm fail on resource ownership. This is not tested.kagent installenables gRPC reflection unless a values file turns it off.The rest is additive:
--provider,version --client,UpdateHarness,ListWorkerPools, the UI changes, the image-pull diagnostics, and thelatestinput intag.yaml.Change Type
/kind feature
Testing
Run locally on this branch's content:
go build ./...core/internal/grpcserver,core/cliandcore/pkg/install, and the golden-retry controller teststsc --noEmitand vitest (822/822)make helm-test(354/354)scripts/get-kagent_test.shNot run locally, left to CI:
TestInstalledDefaultHarnessesChangelog
🤖 Generated with Claude Code