mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
cd02d9f3c0
* Honor the configured request timeout for discovery AI analysis Both discovery services accepted an AIAnalysisTimeout config field, but neither production construction site ever set it, so every AI analysis call ran under the hardcoded 45s fallback. RequestTimeoutSeconds reached the provider HTTP client but never the per-analysis context deadline, so raising it could not help a slow local model: the outer 45s deadline always fired first and surfaced "AI analysis timed out after 45s". Add GetDiscoveryAIAnalysisTimeout, which returns the configured request timeout when one is set and keeps the tighter 45s discovery default otherwise, and wire it into both service constructors. Both services also gain SetAIAnalysisTimeout so a settings change applies live instead of requiring a restart; the timeout is now read through a mutex-guarded accessor since it can be mutated while scans are running. * Inherit the configured request timeout for discovery analysis Returning 45 seconds when RequestTimeoutSeconds is zero left the discovery deadline disagreeing with what operators are shown. Zero is omitted from the settings response, the frontend displays 300 via request_timeout_seconds ?? 300 and states that value applies to discovery, and it only submits the field when the form value differs from the displayed current value. An installation showing 300 seconds therefore still timed out discovery after 45, and saving the visible default did not correct it. GetDiscoveryAIAnalysisTimeout now delegates to GetRequestTimeout so the persisted default canonicalizes to 300 seconds. The discovery services keep their own 45-second fallback for construction without an AI configuration.