You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Workflow child sessions currently derive MODEL_PROGRESS_TIMEOUT_MS from the raw optional httpIdleTimeoutMs fields in project/global settings. When the user has no explicit override, those fields are absent even though Pi's effective setting is its 300-second default. OpenPI therefore applies an undocumented 45-second provider-progress watchdog to every child, which can abort slow but healthy provider turns before Pi's own transport timeout.
This is a focused reliability slice of #424. It does not change tool execution, provider protocol support, or cancellation semantics.
Evidence
Pi 0.85.1 exposes SettingsManager.getHttpIdleTimeoutMs(), returning the effective default of 300000 ms.
extensions/workflows/runner.ts currently reads getProjectSettings()/getGlobalSettings() directly and falls back to 45000 ms when both raw fields are absent.
The existing watchdog remains useful as a bounded child guard, so an explicit Pi timeout of 0 will retain the OpenPI minimum rather than creating an unbounded child.
Acceptance
Resolve the watchdog default from Pi's effective HTTP idle timeout API.
Preserve the 45-second minimum for effective values below that floor, including explicit 0 (disabled transport timeout).
Preserve test-only overrides and existing abort/cleanup behavior.
Add deterministic regression coverage for the effective default, wider values, floor values, and explicit zero.
Problem
Workflow child sessions currently derive
MODEL_PROGRESS_TIMEOUT_MSfrom the raw optionalhttpIdleTimeoutMsfields in project/global settings. When the user has no explicit override, those fields are absent even though Pi's effective setting is its 300-second default. OpenPI therefore applies an undocumented 45-second provider-progress watchdog to every child, which can abort slow but healthy provider turns before Pi's own transport timeout.This is a focused reliability slice of #424. It does not change tool execution, provider protocol support, or cancellation semantics.
Evidence
SettingsManager.getHttpIdleTimeoutMs(), returning the effective default of 300000 ms.extensions/workflows/runner.tscurrently readsgetProjectSettings()/getGlobalSettings()directly and falls back to 45000 ms when both raw fields are absent.0will retain the OpenPI minimum rather than creating an unbounded child.Acceptance
0(disabled transport timeout).