Releases: klarlabs-studio/scout
Releases · klarlabs-studio/scout
v1.11.1
Changelog
- 919e7fd Merge pull request #37 from klarlabs-studio/ci/adopt-shared-workflow
- 6b15ee6 chore(release): require signed release git operations
- ebbdc7f chore(release): v1.11.1
- ac7c64f ci(security): drop gosec — nox owns code-level security (#41)
- f31e348 ci(security): enable nox taint-analysis SAST (#40)
- 98a5c2c fix(agent): re-attach network capture across page swaps (#43)
- 236d215 fix: adopt golden golangci-lint config and resolve gocritic/gosec findings
v1.11.0
v1.10.0
Added
- Shadow DOM piercing across every action surface. v1.9.0 landed
piercing in form discovery + `resolveSelector`; v1.10.0 finishes
the job by extending the deep-find walker to every remaining
selector lookup so any Lit / Stencil / Web Components UI is fully
driveable. - `wait.ForSelector` / `ForVisible` / `ForHidden` poll through
a `__scoutFind` walker that descends into open shadow roots.
Fixes `click`, `type`, and every higher-level action that called
`Page.WaitForSelector` first — they used to time out for 60s on
shadow-rooted nodes because the wait predicate evaluated against
the document scope only. - `Session.DispatchEvent` routes `submit`, `click`, and the
generic custom-event branch through the same piercing find.
Lit form submission via `dispatchEvent("form", "submit")` now
works end to end. - `Session.AnnotatedScreenshot` + `ClickLabel` enumerate
interactive elements via a shadow-DOM walker so the annotated
label list includes buttons / inputs / anchors inside custom
elements.
Why this matters
After v1.10.0, scout drives Lit / Stencil / Web Components admins
end-to-end without per-app `data-test` escape hatches. `click`,
`type`, `fill_form_semantic`, `dispatch_event`,
`annotated_screenshot`, and `click_label` all pierce.
Upgrade
```
brew upgrade felixgeelhaar/tap/scout
```
v1.9.0
Added
- Shadow DOM piercing in form discovery + fill. `DiscoverForm`,
`FillFormSemantic`, and every interaction tool that routes through
`resolveSelector` (`type`, `click`, batch actions) now walk into
open shadow roots. Inputs inside Lit / Stencil / Vue / React custom
elements are discovered and fillable without changing call shape.
Discovered inputs are tagged with a stable `data-scout-id` so
subsequent fills round-trip across shadow boundaries. - Attribute selectors in `QuerySelectorPiercing`. The flat-node
matcher now handles `[attr="value"]` and `tag[attr="value"]` in
addition to `#id`, `.class`, and bare tags. Lets piercing resolve
the `data-scout-id` selectors emitted by form discovery without
another evaluate round-trip. - `resolveSelector` falls back to piercing before invoking the
text / natural-language paths. Any selector that fails standard
`document.querySelector` automatically retries against the flat
DOM tree before the slower fallbacks run.
Tests
- New `agent/shadow_dom_test.go` covers the full discover → fill →
click → submit loop against a custom element that wraps its form
in an open shadow root.
Why this matters
Every Lit / Stencil / web-components admin UI (and every modern
design system that relies on shadow encapsulation) becomes
scout-drivable without per-app `data-test` escape hatches.
v1.8.0
Changelog
- 5d27ab1 chore(ci): bump nox to v0.10.0 (#34)
- cc6cadb chore(release): v1.8.0
- 4c86c64 chore(security): refresh nox badge [skip ci]
- a5bd065 feat(agent): network_summary rolls up capture into one call (#31)
- 8c35ba6 feat(agent): observe_scoped tool with section filter + caps (#29)
- b51cfc3 feat(agent): stable node_handle for annotated_screenshot + click_handle (#32)
- ba6f69d feat(agent): submit_outcome diagnostic tool for silent submit failures (#30)
- 48f76d4 feat(agent): wait_for_navigation + aria_violations tools (#33)
- 7ab38fd feat(cmd/scout): per-tool watchdog guarantees MCP returns on hang (#27)
- e8b311d fix(agent): ensure unique selectors + expose match confidence in fill_form_semantic (#25)
- a6ea22c fix(agent): handle Vue/React hydration race + return committed value in Type (#26)
- 14c2554 fix(agent): link text fallback for card-style anchors in Observe (#28)
- 6b4665b fix(browse): NewPageAt waits for load before returning (#35)
v1.7.0
v1.6.1
Changelog
v1.6.0
Changelog
- 7445f15 chore(roady): track GitHub issues #5-#12 as features
- 46d82a8 chore(security): expand nox baseline to cover 0.9.5 SEC-574/SEC-697 false positives
- 6b9283f ci(security): fix nox install asset filename and SARIF guard
- e2bbdc8 ci(security): isolate nox outputs to /tmp to prevent self-scan loop
- 1ff1ed7 ci(security): normalize sarif filename and refresh baseline
- 8d86f78 ci(security): wire nox into CI and replace dependabot with nox-remediate
- 4bbc9a4 feat(agent): add click_text shortcut for visible-text matching
- ca0e68c feat(agent): checkbox/radio support and post-mutation state echo in fill_form_semantic
- 6d81ba4 feat(agent): cookie management tools (list, clear, set)
- da9f664 feat(agent): structured diagnostics on selector failure
- 3336cdb feat(agent): surface active tab and navigation in observe
- 6be8c95 feat(agent): surface network 4xx/5xx in console_errors
- 786cbe2 fix(mcp): tighten screenshot default budget to 80KB JPEG q=60
v1.5.0
Changelog
- fdbf824 docs(landing): reposition as polyglot Playwright alternative
- fecabe5 docs(readme): align positioning with landing — polyglot Playwright alternative
- 9b3794b feat(agent,mcp): add screen recording and private-IP toggle
- 2c4a78c feat(agui,ui): budget signal, repeated-call guard, motion + keyboard a11y
- fd57843 fix(agent): ReplayPlaybook hangs navigating the initial about:blank tab
- a71ed4d fix(agent): screen recording now works in headless via captureScreenshot polling
- 0a1c868 fix(agent): screen recording survives navigation and tab switches
- 6358596 fix(hooks): correct stale browse-go path in pre-commit settings
- 47962bb fix(security): eliminate vulnerabilities and improve scanner hygiene
- 0d69f3f fix: address top-priority findings from multi-expert review
- 30010ef test(agent): skip WebM screen-recording assertions when ffmpeg is absent