Skip to content

fix: wire the system service into controller-v2 - #2614

Closed
Charlesthebird wants to merge 1 commit into
mainfrom
Charlesthebird/wireSystemService
Closed

fix: wire the system service into controller-v2#2614
Charlesthebird wants to merge 1 commit into
mainfrom
Charlesthebird/wireSystemService

Conversation

@Charlesthebird

Copy link
Copy Markdown
Collaborator

🤖 written by Claude (start)

Changelog

The Agents page loads again. controller-v2 now constructs the system service with its Kubernetes client and substrate inventory, so ListNamespaces succeeds instead of returning INTERNAL on every call.

Why it was broken

systemservice.WithInventory had no caller: the wiring lived in go/core/pkg/app/app.go, deleted by #2595, and controller-v2 never carried it over. grpcserver.New then falls back to systemservice.NewService() with no options, and every namespace read stops at the kubeClient == nil guard. The UI reads templates one namespace at a time, so the agents list reports that as Could not load agents — internal server error.

Two gaps from the same deletion are not fixed here and are described in #2613: ModelService, ToolService, PromptTemplateService, FeedbackService and MemoryService are still unregistered, and managerScheme still omits atev1alpha1, which GetSubstrateStatus needs.

Testing

  1. scripts/setup-cluster/setup-cluster.sh, then kubectl -n kagent port-forward svc/kagent-ui 8080:8080.
  2. Open localhost:8080/agents — the list renders the harness/template pair the script created, with no error banner.

Closes #2613


🤖 written by Claude (end)

@github-actions github-actions Bot added the bug Something isn't working label Aug 28, 2026
The inventory wiring lived in the legacy controller application, deleted by
#2595, and controller-v2 never carried it over. `grpcserver.New` then falls
back to a system service constructed with no options, so it holds no
Kubernetes client and every namespace read returns an internal error.

The UI reads templates one namespace at a time, so the namespace list is an
input to that read rather than a detail beside it: the agents page reports the
failure as "Could not load agents — internal server error" and lists nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Nicholas Bucher <behappy54321@gmail.com>
@Charlesthebird
Charlesthebird force-pushed the Charlesthebird/wireSystemService branch from 0e00067 to 86677c1 Compare August 28, 2026 02:48
@Charlesthebird
Charlesthebird marked this pull request as ready for review August 28, 2026 02:49
@Charlesthebird
Charlesthebird requested a review from a team as a code owner August 28, 2026 02:49
@Charlesthebird
Charlesthebird marked this pull request as draft August 28, 2026 02:51
@Charlesthebird

Copy link
Copy Markdown
Collaborator Author

Superseded by #2602, which wires the same systemservice.WithInventory call, registers the model, tool and prompt-template services, adds atev1alpha1 to the manager scheme, and calls ctrl.SetLogger. Closing in its favour.


🤖 written by Claude

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Agents page cannot load: controller-v2 never wires the system service, so ListNamespaces always returns INTERNAL

1 participant