openshift / openshift/lightspeed-agentic-operator

Agent CR configuration does not have custom timeouts

Open
#387 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
12
Forks
25
Avg merge
1d 13h
Merged PRs (30d)
42

Description

Description of issue:

lightspeed-agentic-operator would benefit from allowing custom timeouts w.r.t skill runtime (in our case 10-15 mins). The Agent.spec.timeouts fields (analysisSeconds, executionSeconds, verificationSeconds) are defined on the CRD and the sandbox runtime honors timeout_ms in the request body, but the controller never connects them. The HTTP client uses a hardcoded 5-minute timeout regardless of Agent CR configuration.

Where the gap is:

NewAgentHTTPClient ignores per-step timeouts — client.go#L82-L92:

func NewAgentHTTPClient(endpoint string) AgentHTTPClientInterface {
	return &AgentHTTPClient{
		httpClient: &http.Client{
			Timeout: 5 * time.Minute,  // hardcoded

TimeoutMs is defined on the request struct but never populated — client.go#L33:

TimeoutMs    *int64          `json:"timeout_ms,omitempty"`

This causes the following,

  1. Configured timeouts longer than 5m are silently truncated
  2. Configured timeouts shorter than 5m are silently ignored — resources held until the hardcoded deadline
  3. The sandbox receives no timeout_ms, so it cannot gracefully wind down before the operator drops the connection

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in controller/agenticrun/client.go at NewAgentHTTPClient and the request struct's TimeoutMs field, then trace where Agent.spec.timeouts values enter each request. Verify the configured analysis, execution, and verification timeouts reach the sandbox as timeout_ms and govern the HTTP client deadline; done means values both shorter and longer than five minutes are honored.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.