Closed
Conversation
Update repo-agent/Makefile to build and push overseer images and deploy overseer manifests from its new top-level location. Fixes gke-labs#650 This PR was generated by the gemini-3-flash-preview model.
Add a standalone Makefile and README for the overseer component. Fixes gke-labs#650 This PR was generated by the gemini-3-flash-preview model.
Update presubmit-repo-agent.yaml to run unit tests, lint, and go-build for the new overseer module. Also add docker-build for overseer image. Fixes gke-labs#650 This PR was generated by the gemini-3-flash-preview model.
1. Update GVK for dev sandboxes listing in repowatch controller to use correct agents.x-k8s.io/Sandbox. 2. Ensure dev sandboxes are created with correct type labels in API handler. Fixes gke-labs#657 Generated by gemini-3-flash-preview model.
[repo-agent] make overseer a top level component
Fixes gke-labs#659 This PR was generated by the gemini-3-flash-preview model.
This moves overseer build, push, and deploy logic to its own Makefile, and updates repo-agent/Makefile to call these targets. Issue gke-labs#661 Generated by gemini-3-flash-preview
When a user logs in, the github-pat secret is updated with their info. Previously, it only updated the email if it was public on their GitHub profile. This caused users with no public email to retain the stale email from the bootstrap process (the cluster deployer's email). This change uses the /user/emails API (requires user:email scope, which we already have) to fetch the primary email if the public email is nil. Fixes gke-labs#663 Generated by gemini-3-flash-preview
…-sandboxes [repo-agent] Fix standalone dev sandboxes visibility in UI
Issue gke-labs#668 This PR increases the sandbox disk size for workspaces-pvc from 10Gi to 20Gi to address 'no space left on device' errors when running tests. This PR was generated by the gemini-3-flash-preview model.
Address review feedback: - Parameterize workspace disk size in RepoWatch CRD (PRReviewSpec, IssueSpec, DevSpec). - Default to 10Gi in both NewAgentSandbox and repowatch_controller. - Set workspaceDiskSize to 20Gi in kcc-repowatch.yaml example. - Added unit tests to verify parameterization.
…makefile [repo-agent] refactor: move overseer make targets out of repo-agent
The State column uses JSONPath .status.taskState (was .status.state) and descriptions for State and Synced refer to sandbox task (was ResourceGraphDefinition instance). Fixes gke-labs#673 This PR was generated by the gemini-3-flash-preview model.
The isCommentValid function was dereferencing comment.Side without a nil check, causing a panic when the LLM omitted the side field. Fixes gke-labs#674 This PR was generated by the gemini-3-flash-preview model.
[repo-agent] Fix panic in review command when Side is nil
…d-printer-columns Fix SandboxTask CRD printer columns — STATE always empty
Extend the Provider interface so Run() returns (*Stats, error) alongside the output bytes. Each provider now captures per-model token and API usage: - gemini: parse --output-format json envelope for stats - claude: extract usage from API response - dummy: return synthetic stats for testing Update all tests and callers for the new 3-return-value signature.
- review.go: accumulate stats across multi-run reviews via mergeStats(), write llm-usage.json to task directory - workflow.go: write llm-usage.json for single-run tasks (issue/dev) - sandboxtask_types.go: add Stats and ModelUsage types to CRD schema - runner.go: read llm-usage.json after task completion, convert to CRD types, pass to status update - k8s.go: accept stats in UpdateSandboxTaskStatus, write to CRD status via server-side apply Also fixes label selector in ListSandboxTasks to use the correct fully-qualified label key (sandbox.gemini.google.com/sandbox-name).
Add Stats and ModelUsage types to the API models package and include them on each Task returned by the PR, issue, and dev sandbox endpoints. Add convertStats() helper to convert CRD types to API models.
…up stats file - Add ThoughtTokens field to CRD, API model, and converters so reasoning tokens from llm.TokenUsage.Thoughts are not dropped - Return usage stats on error paths in dedupeAndCombineText so tokens consumed by failed LLM calls are still counted - Propagate stats conversion error in UpdateSandboxTaskStatus instead of silently proceeding without usage data - Defer cleanup of llm-usage.json after reading to avoid disk accumulation
Add per-task LLM usage stats for review task
…triage workflow - Replace static domain/directory table with OWNERS file references - Replace static kind table and slash commands with prow.k8s.io links - Replace co-SIG table with link to community sig-list.md - Replace active initiatives list with link to enhancements repo - Merge Step 5 (Assign Owners) into Step 3 (Evaluate and Route) - Add /sig and /remove-sig command docs to Step 2 - Allow removing sig/api-machinery for mis-assigned issues - Add sig/api-machinery vs API review distinction - Expand close templates (duplicate, stale, support, needs-KEP) - Replace routing table with OWNERS file lookup guidance - Fix "buggy code" wording to "relevant code"
…isk-size [repo-agent] Increase sandbox disk size to 20Gi
This commit splits the runChore function into runGemini, restoreConfigDirFiles, and commitChanges. It also adds logic to restore files changed by configdir injection before committing changes, preventing these changes from being included in the PR. Fixes gke-labs#793. Generated by Overseer (powered by the gemini-3-flash-preview model).
[overseer] pause agent/chore feature
[overseer] prevent PR creation in chore task for changes caused by configdir injection
…lligent rebase This PR enhances overseer to detect merge conflicts in PRs and trigger an intelligent rebase/conflict resolution task. Key changes: - Added '--prompt' flag to 'overseer-cli' for 'issue' and 'pr' commands to allow passing custom prompts to tasks. - Updated overseer's PR handling prompt to detect merge conflicts and trigger an 'iterate' task with a specific rebase prompt. - Added examples for conflict resolution in the overseer prompt. Fixes gke-labs#795 This PR was generated by Overseer (powered by the gemini-3-flash-preview model).
[overseer] detect merge conflicts and trigger rebase
This commit adds setupGitRepos to the iterate task to ensure the repository is cloned and the correct branch/PR is checked out. It also adds support for PRID and BranchName in the IterateModel and the iterate CLI command. Fixes gke-labs#798
This PR adds an Overseer dashboard to the repo-agent UI for admins. It includes: - Sidebar listing Overseer CRDs and their components (Agent, Chores). - Main view showing pod logs for the Overseer agent. - Main view for Chores showing their sandboxes, tasks, and logs. - Backend API handlers for fetching Overseer resources, chores, tasks, and logs. - Admin-only access control for the Overseer view. Fixes gke-labs#797 This PR was generated by Overseer (powered by the gemini-3-flash-preview model).
[overseer] iterate task to fix merge conflicts failing
… crash
When the backend returns a 500 error for `/api/overseers`, the response
is a JSON object (e.g. `{"error": "Failed to list overseers"}`).
Previously, the code did not check `res.ok`, so it parsed the error JSON
and passed it to `setOverseers()`. This caused a React crash (`overseers.map
is not a function`) because it expected an array, resulting in a blank page.
Changes:
- Checked `!res.ok` in `fetchOverseers`, `fetchChores`, and `fetchChoreTasks`
- Rendered an error banner in the UI when `error` is present instead of crashing
- Explicitly reset arrays (`setOverseers([])`, etc.) on error
- Used optional chaining for labels access (`activeChore?.metadata?.labels`)
- Left-align the logs-container text for better readability. - Update the logs-display font to use a standard terminal monospace font stack (Consolas, Monaco, Courier New).
[overseer] Add UI for overseer
Overseer pods were being evicted due to exceeding 1Gi ephemeral storage limit, especially when cloning large repositories like KCC. This PR: 1. Adds EphemeralStorage field to OverseerSpec. 2. Updates the Overseer sandbox pod template to include ephemeral-storage resources (defaulting to 10Gi). 3. Increases ephemeralStorage to 20Gi in examples/kcc.yaml. This PR was generated by Overseer. Fixes gke-labs#801
[overseer] Increase ephemeral storage for overseer pods
- Redesigned the Overseer sidebar to use a collapsible tree structure, nesting the "Overseer Agent" and chores directly under their respective repository nodes. - Improved the empty state and selection toggling in the Overseer UI, prompting the user to "Select an item" when all nodes are collapsed. - Fixed a 502 proxy error when fetching chore logs by removing the incorrect `devc-` prefix from the chore service DNS resolution in the backend handler.
Overseer UI fixes
Adds a mechanism to view, pause, and resume chores directly from the Overseer page in the review-ui. - Added POST /api/overseers/:name/chores/:choreName/pause endpoint. - Added POST /api/overseers/:name/chores/:choreName/resume endpoint. - Integrated pause/resume endpoints in the UI. - Pausing a chore adds it to the overseer's 'exclude' list and deletes its sandbox. - Resuming a chore removes it from the 'exclude' list allowing overseer to run it again. - Paused chores are listed in the sidebar with a ⏸️ icon. - Hide tasks and terminal views for paused chores.
Support pausing and resuming chores from the Overseer UI
… incompatible change in gke-labs#803
cleanup sandbox and tasks as part of upgrade
update instructions to setup repo-agent in local workspace
… agent-sandbox example
Add support for skipPR in chores
* Update .agents/gemini-model-updates.yaml to check for existing PRs and avoid creating duplicates. * Update repo-agent/pkg/tasks/chore.sh to check for existing open PRs before starting a chore. * Improve PR labeling in chore.sh by splitting creation and labeling. Fixes gke-labs#821
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.
test