Skip to content

fix(agents): specialist answers get a configurable 15-minute limit; GPT-profile roles on claude run as a Claude fallback - #338

Merged
hoangsnowy merged 1 commit into
mainfrom
fix/agent-answer-timeout
Nov 3, 2026
Merged

hoangsnowy merged 1 commit into
mainfrom
fix/agent-answer-timeout

Conversation

@hoangsnowy

Copy link
Copy Markdown
Owner

Summary

  • Found on the lab (2026-11-04): WorkflowAppRealAuthTests (live 5-agent pipeline) never completed — every Coding and Testing answer on the paired runner was "stopped by the server" at exactly 5:00. Root cause (read-only investigation, runner log + code): LlmRequest.AgentAnswerTimeout was a hard-coded 5 minutes (since fix(runner): answers never queue behind coding runs; a failed ticket split says so #258), and the roles' gpt-4.1 / gpt-4o-mini models aren't passed to Claude Code, so the CLI's default — a slow thinking model on that machine — ran 3–5+ min per answer. Not a regression from the recent merges.
  • Agents:AnswerTimeoutMinutes (Answer time limit, Settings › Agent profiles; default 15, range 1–60; ADR-0011) replaces the constant, read per call through IAgentProfiles for the Workflow specialists, the Autopilot lead, the ticket decomposer and the retrospective. Board runs keep their own Autopilot:*RunMinutes limits.
  • Runner: a non-Claude profile model on claude runs as REMOTE_AGENT_CLAUDE_FALLBACK_MODEL (default sonnet; empty keeps the CLI default; never a flag-like value; operator --model args still win) instead of silently becoming the machine's default model.
  • docs/CONFIG.md + docs/LAB.md updated.

Test plan

  • AgentProfilesTests (new: default 15 min, tenant value applied per call, no cross-tenant leak, above-Max rejected) + CliModelTests (new: GPT models → fallback, custom fallback, empty fallback, flag-like fallback refused, operator args win) + settings/decomposer/retrospective/orchestrator classes — 217 passed
  • CI green
  • Lab: after update + runner re-pair, lab.ps1 test → WorkflowAppRealAuthTests completes

🤖 Generated with Claude Code

https://claude.ai/code/session_018WAdQ7Rm24xss5QDSvXtJB

…PT-profile roles on claude run as a Claude fallback

The Workflow pipeline's live run on the lab never completed: every Coding and Testing answer was "stopped by the server"
at exactly 5:00. LlmRequest.AgentAnswerTimeout was a hard-coded 5 minutes (since #258), and the roles' gpt-4.1 /
gpt-4o-mini models were not passed to Claude Code, so the CLI's default — a slow thinking model on that machine — took
3-5+ minutes per answer.

- Agents:AnswerTimeoutMinutes (Agent profiles, default 15, 1-60) replaces the constant, read per call through
  IAgentProfiles for the Workflow specialists, the Autopilot lead, the ticket decomposer and the retrospective.
- The runner maps a non-Claude profile model on claude to REMOTE_AGENT_CLAUDE_FALLBACK_MODEL (default "sonnet";
  empty keeps the CLI default) instead of silently running the machine's default model.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018WAdQ7Rm24xss5QDSvXtJB
@hoangsnowy
hoangsnowy merged commit b0a8627 into main Nov 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant