Recording drops clicks on links, filters and checkboxes that share a form with a search field
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- tooling
Research direction
Start with apps/extension/src/content/record-capture.ts and read nearbyFillableFromSearchChrome, which the issue identifies as swallowing clicks in containers with search fields. Reproduce with the GOV.UK filter flow described in the issue and check trace.json: clicks on links, disclosures and checkboxes should be recorded while clicks on non-interactive search decoration can still be ignored.
Written by the indexing model from the issue text.
Description
Problem
bsk record drops clicks on real controls when they share a form or search container with a search field. On GOV.UK, the whole result list and filter panel sit inside form#all-content-finder-form, which also holds the search box. As a result, recording a filter flow there produces an empty trace.
Reproduction (real site, installed extension)
Environment:
- Built from
main9084a36e. The recording code is unchanged at a929080d. - Unpacked extension, production
bskCLI and daemon, headed Chrome on Windows 11. - Started with
bsk record start --url https://www.gov.uk/search/all?keywords=passportand stopped withbsk record stop. - Input was trusted CDP mouse events.
| Action | Page reaction | trace.json |
|---|---|---|
Click "Filter and sort" (button), then the "Filter by Type" <summary>, then the "Services" checkbox |
Panel opens, section expands, checkbox becomes checked: true |
0 steps |
| Click the first search result, "Renew or replace your adult passport" | Navigates | No click step, only navigate with cause: "link" |
| Control: click the breadcrumb "Home" link, which is outside the form | Navigates | click link "Home" |
| Control: click the same GOV.UK checkbox on design-system.service.gov.uk, which has no search form | Checked | click checkbox "Waste from animal carcasses" |
Cause
nearbyFillableFromSearchChrome (apps/extension/src/content/record-capture.ts) is meant to ignore clicks on search decoration that only focus the input.
It treats any click inside form, [class*="search"], [id*="search"] or [role="search"] as such decoration when that container holds a textarea, input[type="search"] or input[name="q"]. It does this whatever the click target is. The click then becomes ensureFillSession(searchField) and no step is emitted.
Scope
I ran the same rule as an in-page probe on real pages:
- gov.uk/search: all 19 visible result links, the filter disclosures and the checkboxes are affected.
- Bing results: 3 elements are affected, including the image search
[role=button], labelled "使用图像搜索" in the zh-CN UI. - Unaffected: npm, MDN, GitHub search and html.duckduckgo.com.
Relation to #602
Open PR #602 (for #593) exempts button and submit, reset and image inputs from this rule. Links, <summary>, checkboxes, radios and ARIA controls such as [role=button] stay swallowed, so the GOV.UK filter and result clicks above are still lost with #602.
Expected
A click on a real control is recorded as a click even when the control shares a form with a search field. Clicks on non-interactive decoration around the field can still be ignored.
- Dominant language
- TypeScript
- Stars
- 10.1k
- Forks
- 732
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 97
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Tencent/BrowserSkill
-
录制 contenteditable 多行内容时 fill 值丢失换行Possibly taken @tlysanhuo claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Tencent/BrowserSkill#594 ·
Maintainers usually reply within 1 day
-
录制遗漏 input[type=submit] 和 input[type=reset] 的真实点击Possibly taken @tlysanhuo claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Tencent/BrowserSkill#593 ·
Maintainers usually reply within 1 day
-
[Bug] dsh-plugin skill: the injection-warning sentence added for #286 is itself a prompt-injection match, so the skill body gets blockedMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Tencent/BrowserSkill#390 · 1 comment ·
Maintainers usually reply within 1 day
-
Feature request: allow Agent Window to be created already minimized (chrome.windows.create state)Open
Difficulty 3/5 1-2 days Newbie friendliness 65/100
Tencent/BrowserSkill#649 ·
Maintainers usually reply within 1 day
-
调试网络录制将 application/soap+xml 响应正文误判为 non_text 丢弃Possibly taken @kesmeey claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
Tencent/BrowserSkill#648 ·
Maintainers usually reply within 1 day
All issues in Tencent/BrowserSkill
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
Maintainers usually reply within 2 days
-
Choosing a folder while continuing an Antigravity session submits a history fork the runtime rejectsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
-
ai-handle
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
nextlevelbuilder/dewee-web-v2#138 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
NEARBuilders/citynode.app#512 ·
Maintainers usually reply within 1 day
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day