Adrià Arrufat
f84d830ff6
agent: use enum tag for eval tool name
2026-05-05 10:36:46 +02:00
Adrià Arrufat
b3cd77b4b4
agent: unify LLM turn execution into runTurn
2026-05-05 09:44:56 +02:00
Adrià Arrufat
ee398df774
mcp: simplify handleCall parameter handling
2026-05-05 09:34:43 +02:00
Adrià Arrufat
0f2aa3c273
agent: simplify JSON parsing in extractEvalScript
2026-05-05 09:31:57 +02:00
Adrià Arrufat
58b0c1052a
browser.tools: restrict env var substitution to LP_ prefix
2026-05-05 09:28:01 +02:00
Adrià Arrufat
f0a859514c
agent: extract synthesis prompt and clean up comments
2026-05-05 09:13:03 +02:00
Adrià Arrufat
542cd33cf1
agent.mcp: simplify Transport doc comment
2026-05-05 09:04:53 +02:00
Adrià Arrufat
d5f9f12de8
agent: use zenai for provider defaults and api keys
2026-05-05 08:40:34 +02:00
Adrià Arrufat
976d188820
agent: use dupeMessages from zenai library
2026-05-05 08:33:43 +02:00
Adrià Arrufat
80075efd6b
agent: centralize session and node registry resets
2026-05-05 08:16:01 +02:00
Adrià Arrufat
a00161f54c
Merge branch 'main' into agent
2026-05-05 08:05:57 +02:00
Karl Seguin
d360fcc07b
Merge pull request #2352 from navidemad/fix-input-pattern-validation
...
forms: implement HTMLInputElement.pattern + patternMismatch validity
2026-05-05 07:49:18 +08:00
Karl Seguin
91074ea834
Merge pull request #2361 from lightpanda-io/worker_deinit_order
...
Fix potential use-after-free by clearing worker AFTER frame context
2026-05-05 07:34:42 +08:00
Karl Seguin
d1d85e9f5d
Fix potential use-after-free by clearing worker AFTER frame context
2026-05-05 07:21:37 +08:00
Karl Seguin
bc081247e7
update v8 dep
2026-05-05 07:04:02 +08:00
Nikolay Govorov
9c669974e4
Merge pull request #2359 from lightpanda-io/wp/mrdimidium/spli-cdp-http
...
Reorganize Server, Client, CDP and HttpClient
2026-05-04 17:03:19 +01:00
Nikolay Govorov
9a312a4177
Refactor server/client/cdp structure
2026-05-04 16:41:22 +01:00
Pierre Tachoire
0794fbdc68
upgrade zig-v8-fork
2026-05-04 17:27:44 +02:00
Adrià Arrufat
3b99796379
browser.tools: remove google from search fallback chain
2026-05-04 16:28:18 +02:00
Adrià Arrufat
dc441a85a1
browser.tools: add Tavily search support with scraping fallback
...
Integrates the Tavily Search API as the primary search provider when
TAVILY_API_KEY is set. Falls back to scraping Google and DuckDuckGo
on failure or if the key is missing. Updates zenai dependency.
2026-05-04 15:45:51 +02:00
Pierre Tachoire
cf7dbc98de
use v8 RegExp for Input.suffersPatternMismatch
2026-05-04 14:41:38 +02:00
Karl Seguin
112d4d1603
Merge pull request #2356 from lightpanda-io/cdp-audits
...
cdp: rename Audit into Audits
2026-05-04 19:03:35 +08:00
Pierre Tachoire
080e1e6415
cdp: rename Audit into Audits
2026-05-04 12:42:55 +02:00
Karl Seguin
6b896ba243
Merge pull request #2355 from lightpanda-io/worker_timers
...
Extract Window Scheduling and re-use it in Worker
2026-05-04 18:18:31 +08:00
Karl Seguin
d1bf44b686
Extract Window Scheduling and re-use it in Worker
...
Add worker.setInterval, clearInterval, setTimeout, clearTimeout by extracting
the scheduling logic from Window and making it use Execution rather than Frame.
2026-05-04 17:57:05 +08:00
Pierre Tachoire
5aa47f0837
Merge pull request #2354 from lightpanda-io/brew-AUR
...
README: add hombrew and AUR install
2026-05-04 11:42:07 +02:00
Pierre Tachoire
584d817d2e
Merge pull request #2353 from lightpanda-io/remove-archlinux-pkg
...
ci: remove archlinux packaging
2026-05-04 11:40:43 +02:00
Pierre Tachoire
a266ae7c51
README: add hombrew and AUR install
2026-05-04 11:36:52 +02:00
Pierre Tachoire
2fde24c9c1
ci: remove archlinux packaging
...
Better use
```
yay -S lightpanda-bin
```
2026-05-04 11:29:24 +02:00
Adrià Arrufat
8171868ced
browser.tools: use startsWithIgnoreCase for LP_ check
2026-05-04 11:06:25 +02:00
Adrià Arrufat
c0491bd69e
agent: clean up and optimize code
...
- Fix typo in REPL info message.
- Optimize Recorder to avoid unnecessary allocations.
- Simplify field type detection in SlashCommand using stringToEnum.
- Remove unused yellow ANSI constant in Terminal.
- Shorten log message in McpServer.
2026-05-04 10:51:41 +02:00
Adrià Arrufat
03d883b263
agent: improve script healing atomicity and error handling
2026-05-04 10:41:46 +02:00
Adrià Arrufat
a9b3b66802
agent.mcp: prevent path traversal in task attachments
2026-05-04 10:33:46 +02:00
Adrià Arrufat
804b596d5b
agent: block navigation and eval during self-heal
...
Restricts self-heal turns to only allow page-local commands. Commands
like `goto` and `eval_js` are now ignored to prevent the model from
navigating away or executing arbitrary scripts during healing.
2026-05-04 10:21:31 +02:00
Adrià Arrufat
fba00e33cc
agent: ensure atomic message pruning
2026-05-04 10:14:27 +02:00
Karl Seguin
116cc3aee7
Merge pull request #2350 from lightpanda-io/worker_importScripts
...
Worker.importScripts
2026-05-04 16:00:42 +08:00
Karl Seguin
5238799f6c
Merge pull request #2348 from lightpanda-io/window_close_scheduler_reset
...
On window.close, reset the frame's scheduler
2026-05-04 15:56:46 +08:00
Karl Seguin
b25b91447c
Merge pull request #2344 from lightpanda-io/sighandler_threadsafety
...
Make sighandler thread-safe
2026-05-04 15:56:33 +08:00
Karl Seguin
3d8499abe4
Merge pull request #2317 from lightpanda-io/worker_xhr_fetch
...
Make Fetch and XHR usable from Worker
2026-05-04 15:56:10 +08:00
Adrià Arrufat
2ca7550947
agent: restrict getEnv tool to LP_ namespace
...
Limits the getEnv tool to variables starting with LP_ to prevent the
model from probing sensitive system environment variables or API keys.
2026-05-04 09:54:13 +02:00
Pierre Tachoire
65308f01c4
Merge pull request #2297 from lightpanda-io/pending-page
...
keep the existing page active until the pending one is loaded
2026-05-04 09:42:27 +02:00
Navid EMAD
f8f14efe40
forms: implement HTMLInputElement.pattern + patternMismatch validity
...
The `pattern` IDL attribute had no accessor registered on
`HTMLInputElement.prototype` (returned undefined despite getAttribute
working), and `Input.suffersPatternMismatch` was a TODO stub returning
false. As a result, `validity.patternMismatch` never fired for
`<input pattern="…">` and `validationMessage` was always empty for
pattern violations.
This change registers `pattern = bridge.accessor(Input.getPattern,
Input.setPattern, .{})` and rewrites `suffersPatternMismatch` to
evaluate `new RegExp("^(?:" + pattern + ")$", "v").test(value)` via
`ls.local.exec` on the owner frame. Strings are JSON-encoded for safe
interpolation. Per HTML §4.10.5.3.5, the constraint applies only to
text-like input types and skips empty values; an unparseable pattern
is ignored. `ValidityState.getPatternMismatch` now takes a `*Frame` so
the regex evaluation can reach the owner frame's V8 scope.
Closes #2351
2026-05-04 09:04:15 +02:00
Pierre Tachoire
14743e4369
replace pages array from Session to allocated active and pending pages
2026-05-04 08:59:59 +02:00
Pierre Tachoire
f9cdc12bf6
use qn.is_about_blank for check instead of string comparison
...
And fix comment
2026-05-04 08:59:58 +02:00
Pierre Tachoire
6e7398d586
Don't re-init fields w/ default values
2026-05-04 08:59:57 +02:00
Pierre Tachoire
35cecf6fcc
fix lp.assert usage
...
Remove unreachable code and use `comptime IS_DEBUG` check when need.
2026-05-04 08:59:57 +02:00
Pierre Tachoire
3fc5e6d8a5
rename var old_idx into old_active_idx for clarity
2026-05-04 08:59:56 +02:00
Pierre Tachoire
38169fdb52
rename pendingOrCurrentFrame
...
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com >
2026-05-04 08:59:55 +02:00
Pierre Tachoire
e3eb8eba46
typo fix
2026-05-04 08:59:54 +02:00
Pierre Tachoire
ddbdaafa28
refacto Session install and teardown active page
2026-05-04 08:59:54 +02:00