docs(screenshots): document the 5s CDP ceiling and the full=True stall - #581
Open
cryptoshrine wants to merge 1 commit into
Open
docs(screenshots): document the 5s CDP ceiling and the full=True stall#581cryptoshrine wants to merge 1 commit into
cryptoshrine wants to merge 1 commit into
Conversation
Two failure modes that both surface as an unexplained TimeoutError. `_send()` opens its socket with `timeout=5.0`, so any CDP call needing longer than five seconds dies. It is not screenshot-specific: a js() expression blocked for 3s returns fine, the same one blocked for 7s fails at exactly 5.0s, and succeeds when given a longer timeout. The traceback ends in _ipc.py rather than naming the call that was made, so it reads like a dropped connection instead of a slow operation. Separately, `full=True` sets captureBeyondViewport, which needs a fresh composited frame for the whole scrollable area. A minimized or fully occluded window never produces one and the call never returns -- still hanging past two minutes with the socket timeout raised to 90s. Viewport-only capture on the same hidden window returns in ~2s, and the same full-page capture takes <1s once the window is visible, so this is a stall rather than slowness. Measured on Windows 11 / Chrome 150. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4CaXBAmveTDABUu8yXYoz
✅ Skill review passedReviewed 1 file(s) — no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two distinct failure modes that both surface as the same unexplained
TimeoutError, so they're easy to mistake for a dropped connection. Both are documented ininteraction-skills/screenshots.md; no code changes.1. Every CDP call has a hard five-second ceiling
_send()inhelpers.pyopens its socket withtimeout=5.0, so any call needing longer than that fails. Not screenshot-specific:js()blocked 3sjs()blocked 7sTimeoutErrorat exactly 5.0sThe traceback ends in
_ipc.pyrather than naming the call that was made, which reads like a dead tab. It isn't — the daemon and tab are both fine, and the next call works.2.
full=Truenever returns when the window is hiddenfull=TruesetscaptureBeyondViewport, which needs a fresh composited frame for the whole scrollable area. A minimized or fully occluded window never produces one:full=Truefull=TrueSo it's a stall, not slowness — and it's invisible to anyone testing with the window on screen.
Measured on Windows 11 / Chrome 150 (Canary), harness at v0.1.8.
Note for maintainers
The 5s value is hard-coded and there's no way to raise it from a script without reaching past
helpers._sendinto_ipcdirectly. If you'd take a patch making it configurable — an env var, or a per-calltimeout=oncdp()— happy to follow up with one. I kept this PR docs-only since that's a behavioral change worth deciding separately.Summary by cubic
Documented two screenshot timeouts/stalls: a hard 5s ceiling on all CDP calls due to
_send()sockettimeout=5.0, andfull=Truenever returning when the window is minimized or fully hidden.Adds guidance to raise the window or use viewport captures, and clarifies the
TimeoutErrorfrom_ipc.pyisn’t a dropped connection.Written for commit 147dd6a. Summary will update on new commits.