Repository navigation
fix(lab-ops-hub): fetch timeout for the Worker-fallback crawler (#500) - #501
Conversation
) crawlFallback's fetcher passed no AbortSignal, so a validated public server that stalls, or slow-drips a body under the 2 MB cap, hung the crawl indefinitely. The container crawler times out at 20s (app.py _OPENER.open(timeout=20)) and the container dispatch already uses AbortSignal.timeout(120s); the fallback now mirrors the container's 20s per hop. The signal stays attached to the response, so it also bounds the readResponseTextCapped body read.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 55 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
The aggregator UI (session K, pm/aggregator-ui) consumes a swappable Source behind one interface. Lands the read model (repo-qualified issue/PR refs, the comment projection with PR-interior entries), the pure derivations (execution strip, roadmap timeline lanes, unified comment stream), and a fixture source shaped like the live readers, with the real Grist seed rows and the design record's known refs (#752/#754/#762/#763, nix #501-508, opencode #365).
Fixes #500.
crawlFallback's injected fetcher passed nosignal, so a validated public server that accepts the connection and then stalls — or slow-drips a body under the 2 MB byte cap (#481 caps bytes, not time) — hung the crawl until platform limits killed it. Both sibling paths already protect against this: the container crawler uses_OPENER.open(timeout=20)(app.py:205) and the container dispatch usesAbortSignal.timeout(120_000)(index.ts).Change: every fallback hop now fetches with
signal: AbortSignal.timeout(20_000), mirroring the container's 20 s. The signal stays attached to the response, so it also bounds thereadResponseTextCappedbody read that follows.Verification:
npm run test:ts— 18/18 pass.Need help on this PR? Tag
@codesmith-botwith what you need.