Commit Graph
9542 Commits
Author SHA1 Message Date
Karl Seguin 255fa247c3 Reduces the size of Telemetry.Lightpanda
32920 -> 8344

We buffer [1024]Telemetry.Event, and the event is unnecessarily large.
2026-04-10 06:51:50 +08:00
Karl Seguin 8eaeafe16c Fix a lot of typos.
I used https://github.com/crate-ci/typos, it worked well.

Also, make sure cdp-initiated KeyboardEvent is freed when no element is in focus
2026-04-10 06:51:10 +08:00
Karl Seguin 4dcb2c997e Better handle v8 callback with no valid context
In https://github.com/lightpanda-io/browser/pull/1885 we added fallback to the
incumbent context when the current context had be released (by us, but not by
v8).

This now handles the case where there is no incumbent context. It's not clear
exactly why this can happen, but we do see it in some WPT tests (e.g.
/html/browsers/the-window-object/named-access-on-the-window-object/navigated-named-objects.window.html)
2026-04-10 06:50:47 +08:00
Karl Seguin a9e7d75272 Merge pull request #2120 from lightpanda-io/memory_test3
run e2e-test with pre-generated snapshot
2026-04-10 06:47:35 +08:00
Adrià Arrufat d19e62ec3c http: add default write callback to prevent stdout pollution 2026-04-09 22:03:09 +02:00
Adrià Arrufat 7aa11c7006 agent: update CLI args and refactor code 2026-04-09 17:51:56 +02:00
Adrià Arrufat 9a8ad8951f agent: rename missing tool calls to semanticTree and eval 2026-04-09 17:08:35 +02:00
Adrià Arrufat a1ef413a9a Terminal: add command completion and hints 2026-04-09 17:02:31 +02:00
Adrià Arrufat 61fd69eaae agent: improve script recording logic and formatting 2026-04-09 16:51:54 +02:00
Adrià Arrufat 91e61905cf tools: remove aliases, normalize names to camelCase, simplify dispatch 2026-04-09 16:19:20 +02:00
Adrià Arrufat 286976a7c7 browser: centralize tool definitions 2026-04-09 16:07:05 +02:00
Adrià Arrufat f431202bbf Merge branch 'main' into agent 2026-04-09 14:27:15 +02:00
Karl Seguin 5c7a665d11 run e2e-test with pre-generated snapshot 2026-04-09 18:54:31 +08:00
Pierre Tachoire afbad07f0f Merge pull request #2114 from lightpanda-io/update-README
Update readme
2026-04-09 11:03:43 +02:00
Pierre Tachoire 9eba3c1463 Merge pull request #2113 from lightpanda-io/add-ip-filters-2
Improvements to IpFilters
2026-04-09 11:01:31 +02:00
Pierre Tachoire 0905306c79 Add skill link in README 2026-04-09 10:57:25 +02:00
Pierre Tachoire cb3cc9cd8c update benchmark 2026-04-09 10:56:08 +02:00
Pierre Tachoire 2d2b1584cf update contribution and why section 2026-04-09 10:56:08 +02:00
Pierre Tachoire d1883ad211 cleanup README, add MCP 2026-04-09 09:56:39 +02:00
Karl Seguin 0253092f20 Improvements to IpFilters
The main change is changing how CidrV4 and CidrV6 are stored, by pre-calculating
their mask and storing their address as integer.

This allows significant simplification of matchesCidrV4 and matchesCidrV6.
2026-04-09 15:40:16 +08:00
Karl Seguin 689fb908ac Merge pull request #2110 from lightpanda-io/test-cache-filter
cache: add log filter to garbage file test
2026-04-09 07:55:07 +08:00
Karl Seguin 795b0affe2 Merge pull request #2102 from lightpanda-io/non-utf8-encoding
Use encoding_rs on non-UTF-8 html to convert to utf-8
2026-04-09 07:25:48 +08:00
Adrià Arrufat 182447c907 cache: add log filter to garbage file test 2026-04-08 19:36:29 +02:00
Adrià Arrufat d2a4d388b1 agent: consolidate findNodeIdByText tests 2026-04-08 19:29:54 +02:00
Adrià Arrufat ad13eb76e2 agent: improve element lookup in CommandExecutor
Replaces heuristic string search with JSON parsing and case-insensitive
matching across multiple fields. Adds unit tests for verification.
2026-04-08 19:21:07 +02:00
Adrià Arrufat ffb38f268b agent: add --self-heal flag to control self-healing 2026-04-08 18:15:34 +02:00
Adrià Arrufat 8d3d3a2c67 agent: improve command parsing and selector reliability
- Support single quotes in commands for nested CSS selectors.
- Mask password values in interactive element output.
- Update system prompt and recorder for better reproducibility.
- Try CSS selectors first in click actions.
2026-04-08 18:10:04 +02:00
Trevin Chow 574264aaff fix: update page URL and location on pushState/replaceState
history.pushState() and replaceState() updated the navigation entry
but did not update page.url or reinitialize window.location. This
caused location.pathname to return the old value after pushState,
breaking SPA routing detection in automation scripts.

Both methods now set page.url and re-init the Location object after
updating the navigation history.

Fixes #2081
Ref #2043
2026-04-08 08:34:08 -07:00
Adrià Arrufat c242e324f3 browser: auto-resolve env vars in fill tool 2026-04-08 17:17:23 +02:00
Adrià Arrufat b8ae185cad tools: support CSS selectors for click and fill actions 2026-04-08 16:56:10 +02:00
Adrià Arrufat 796a17ff81 agent: update default AI models 2026-04-08 16:35:10 +02:00
Adrià Arrufat 7ca289ece6 Config: support user agent for agent mode 2026-04-08 16:34:47 +02:00
Adrià Arrufat f8497ca090 Merge branch 'main' into agent 2026-04-08 16:15:07 +02:00
Adrià Arrufat 08ec5a645a tools: wait for navigation in execPress 2026-04-08 15:48:14 +02:00
Adrià Arrufat 0c51c6f174 browser: wait for navigation after click in tools 2026-04-08 15:45:37 +02:00
Adrià Arrufat 73f0e0456b tools: add getUrl and getCookies tools 2026-04-08 15:10:23 +02:00
Pierre Tachoire 6ef518438b fix custom cidrs mem leak 2026-04-08 15:09:01 +02:00
Adrià Arrufat 701836be88 browser: add consoleLogs tool to capture page logs 2026-04-08 15:04:08 +02:00
Pierre Tachoire e57b5c645b remove deadcode libcurl.CurlOpenSocketFunction 2026-04-08 14:06:17 +02:00
Karl Seguin 077b8b1481 Merge pull request #2106 from lightpanda-io/simplify_nodelist_foreach
Simplifies NodeList.foreach
2026-04-08 19:51:15 +08:00
Pierre Tachoire 9915f0f19d Merge pull request #2100 from lightpanda-io/osc/2029-user-agent-override
Allow user agent override with restrictions
2026-04-08 13:20:32 +02:00
Adrià Arrufat ee2fd70dea Merge branch 'main' into agent 2026-04-08 13:06:12 +02:00
Adrià Arrufat babe3c68ca tools: add getEnv tool to read environment variables 2026-04-08 13:01:21 +02:00
Adrià Arrufat 9f932e69d6 Session: skip pages without queued navigation
Prevents panics in processQueuedNavigation by using orelse continue
instead of force unwrapping the queued navigation.
2026-04-08 13:01:01 +02:00
Karl Seguin 077263bae4 Simplifies NodeList.foreach
Removes 2 layers of indirection (including 1 allocation) that is unnecessary for
an internal call.
2026-04-08 18:32:47 +08:00
Karl Seguin 763927c352 Use encoding_rs on non-UTF-8 html to convert to utf-8
Using our existing MIME type detection, this uses encoding_rs to convert non-
UTF-8 content to UTF-8, which can then be passed to html5ever.

Issue: https://github.com/lightpanda-io/browser/issues/2089
2026-04-08 18:32:08 +08:00
Pierre Tachoire f884b562ba user-agent ovveride must not contain mozilla 2026-04-08 12:11:09 +02:00
Pierre Tachoire efb2fa9c22 Send Sec-Ch-Ua http header 2026-04-08 12:11:09 +02:00
Pierre Tachoire ae9b4d3fc6 stricter user-agent rule 2026-04-08 12:11:09 +02:00
Trevin Chow f0aacad52e feat: add --user-agent flag for full User-Agent override
When --user-agent is set, the provided string replaces the entire
User-Agent header instead of appending to "Lightpanda/1.0".
The existing --user-agent-suffix behavior is unchanged.

Fixes #2029
2026-04-08 12:11:08 +02:00