Skip to content

feat(browser): within/excludeSelector/list_form_fields + stuck guard (1.8.2) - #19

Draft
Rippy1911 wants to merge 1 commit into
mainfrom
cursor/browser-tools-row-scope-b6a5
Draft

feat(browser): within/excludeSelector/list_form_fields + stuck guard (1.8.2)#19
Rippy1911 wants to merge 1 commit into
mainfrom
cursor/browser-tools-row-scope-b6a5

Conversation

@Rippy1911

Copy link
Copy Markdown
Owner

Summary

Closes the four tooling holes that killed the Base44 “Per-Page Meta Tags” grind (2026-08-03): chat-column noise, unlabeled per-row pencils, no form inventory, and silent observation loops.

Changes

  • F2 get_interactive({ within: { text|selector } }) — post-scan row scope; absolute item.i preserved for click_index
  • F3 excludeSelector on get_page / find_text / get_interactive — prune CSS subtrees (chat sidebars, cookie walls)
  • F4 list_form_fields — fillable field inventory with resolved labels; password hasValue only; same i handles as get_interactive
  • F5 Semantic stuck guard — warn at 6 observation-only calls, block at 9; reset on mutation or URL change
  • F6 Stop checkpoint — on abort with open todo/doing tasks, transcript line: Stopped. Tasks: N/M done; last action: …
  • Version bump 1.8.2

Acceptance matrix

Form Test file Result
get_interactive({within:{text:"Row3"}}) → exactly that row’s pencil with absolute i; click_index works packages/core/src/browser/rowScope.test.ts ✅ pass
find_text({excludeSelector:"aside"}) drops chat hits, keeps workspace packages/core/src/browser/rowScope.test.ts ✅ pass
get_page({excludeSelector:"aside"}) prunes chat column packages/core/src/browser/rowScope.test.ts ✅ pass
list_form_fields maps 3 labeling styles + password never leaks value packages/core/src/browser/rowScope.test.ts ✅ pass
Stuck guard warns at 6 varied reads; mutation resets; changing URL does not trip packages/core/src/agent/repeatGuard.test.ts ✅ pass
Loop: 6-read streak warns; click resets; subsequent read clean packages/core/src/agent/loopGuards.test.ts ✅ pass
Stop checkpoint with open tasks + last mutation packages/core/src/agent/loopGuards.test.ts ✅ pass
pnpm typecheck && pnpm test && pnpm build CI local ✅ green (661 tests)

Hard rules

  • Absolute-index contract preserved (within/excludeSelector are post-scan filters on get_interactive)
  • No new MV3 permissions
  • Tool descriptions updated with concrete examples (models discover params through them)
Open in Web Open in Cursor 

…(1.8.2)

Fixes the Base44 meta-tags grind failure modes: row-scoped get_interactive
(within), CSS subtree pruning (excludeSelector), a one-shot form inventory
(list_form_fields), semantic observation-stuck detection, and a stop
checkpoint summarizing open tasks + last mutation.

Co-authored-by: Rippy1911 <Rippy1911@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants