Address agent-friction issues from real usage analysis (#30, #31, #32, #33)#34
Merged
Conversation
- #30: click/fill/select accept '[N]' snapshot ref as selector - #31: session new --reclaim + actionable profile-conflict message - #32: eval text()/texts() helpers + missing-await hint - #33: navigate --wait domcontentloaded|load|networkidle Derived from analysis of 5,505 real brow calls across 11 projects. Updates SKILL.md and CHANGELOG. 100 tests pass.
6d90667 to
180d9e6
Compare
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.
Fixes derived from analyzing 5,505 real
browcalls across 11 agent projects. Each fix targets a quantified friction point.Closes
[N]as refChanges
#30
[N]ref-as-selector (25 failed calls)_resolve_selectornow coerces a bare[N]/Nselector to[data-brow-ref="N"]. Agents copy the snapshot token[1]andclick "[1]"just works instead ofSyntaxError: '[1]' is not a valid selector.#31 session profile lock (117 "already in use" errors)
session new --reclaimcloses the stale holder and takes over the profile.... Retry with reclaim, or run: brow session delete N.#32 eval footguns (26 'coroutine' errors)
text(sel)/texts(sel)async helpers in the eval namespace for the common "just get the text" case.#33 weak auto-settle (1,947 manual
sleep N)navigate --wait domcontentloaded|load|networkidle(capped at 10s). Lets agents wait for SPA/network settle instead of guessing sleeps.Not in this PR
#29 (
brow readcontent extraction) — the biggest finding (1,241html+ 1,173evalcalls bypassing snapshot) is a design feature, deferred to its own PR.Verification
text()helper, coroutine hint, profile conflict + reclaim).🤖 Generated with Claude Code