{{ message }}
Repository navigation
docs(skill): verified gotchas for headless default, frames, scrolling, tabs, emulation - #488
Closed
Clinton Monteiro (TheLordWizard) wants to merge 1 commit into
Closed
Clinton Monteiro (TheLordWizard) wants to merge 1 commit into
Clinton Monteiro (TheLordWizard) wants to merge 1 commit into
Conversation
…, tabs, emulation Signed-off-by: TheLordWizard <TheLordWizard@users.noreply.github.com>
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.

Why
We run this CLI inside a coding-agent harness (the model reads the skill file and drives the CLI
literally). Over a session on 2026-10-22 we hit a set of behaviours that the skill does not mention, each
of which cost a step or nearly produced a wrong claim. Everything below is measured on 0.1.22 (a few
on 0.1.20, labelled as history), on Windows, and the section is written as documentation, not as a
complaint. The patch is additive: +146 lines, no deletions.
What the patch adds
--headlessin the browser process command line;--headedleaves zero such processes;open --helplists only--browser/--configalthough--headed/--persistent/--profilework;showscreencasts headless sessions too;video-start --cursor/--fps/--size— and--cursorpaces actions by ~800 ms, which is worth knowing before a timing-sensitive run…/sorry/indexafter a handful of requests while the same session's normal search stayed clean; an automated reCAPTCHA click is refused silently (aria-checked:false, no token, no challenge frame); one human solve in a--persistent --profilesurvives close+reopen; “an empty selector is not a wall” (Google News headlines area.JtKRv, there are no<article>elements — 217 vs 0)currentTime 0.76through two clicks because the consent modal's button was inside a frame; iteratingpage.frames()fixes it;frameLocatorfor the CAPTCHA checkboxaria-checked, page verdict text,scrollY,start=10, player state1,matchMedia(...).matches)scroll-down,mouse-wheelandPageDownall leftscrollYat 0 while the page was scrollable (scrollHeight3783 vsinnerHeight1277,window.scrollTo(0,900)moved it);locator.scrollIntoViewIfNeeded()is the reliable routestrict mode violation→.first()/.nth(n); a role/name miss → probe hrefs (slugs differ from titles);find --regex=… --filename=fkeeps matches out of the response (391 ms, 15 KB to file); there is no--limit--rawdiscipline (bulk ~20% smaller than realistic per-call output, ~28% larger than a--rawchain), so the claim is turns, not tokens{action:5e3, navigation:6e4, expect:5e3, settle:500}(read out of the installed bundle);--idle-timeoutdoes not apply to a headed session; outbound links open a new tab and focus stays behind, so a click that changes noPage URLusually succeeded; there is no--new-tabflag (0.1.20 silent no-op, 0.1.22 prints usage and still opens nothing — #486)Not in this patch
Nothing unmeasured, and nothing machine-specific (no local paths, no tuning).
One thing we use that may interest you separately: the six gates above are driven by a small contract
suite for the skill itself — an offline fixture (pointer drag, computed-colour reading, a 3 s press-and-hold,
a click inside an iframe, an answer that exists only in page state, element-based scroll visibility) plus a
15-case runner that drives the real CLI and asserts on page/process state instead of exit codes
(
SKILLCHECK cases=15 pass=15, exit 1 on failure; it serves the fixture over127.0.0.1becausefile:is blocked). If you want it as a CI tool, say so and I'll send it as a second commit — I left it out here
because adding test infrastructure to someone's repo is a bigger ask than documenting what we measured.
Refs: #486 (the
--new-tabno-op, with a 0.1.22 follow-up comment), #487 (clear-*does not revert emulation— that bug is in the same family: a command that succeeds and changes no state).