Commit Graph
9802 Commits
Author SHA1 Message Date
Adrià Arrufat 8702e06167 Merge pull request #3630 from lightpanda-io/prompt-audit-cleanup
agent: drop dated prompt patterns, bump zenai
2026-09-25 11:35:59 +02:00
Adrià Arrufat efc239bbe8 Merge pull request #3613 from lightpanda-io/scroll-text-extent
Measure wrapped text in an element's content height
2026-09-25 11:20:28 +02:00
Adrià Arrufat ec31d4b711 Merge branch 'main' into prompt-audit-cleanup
# Conflicts:
#	build.zig.zon
#	src/browser/tools.zig
2026-09-25 11:13:12 +02:00
Adrià Arrufat 3ba2a5fffa Merge pull request #3597 from lightpanda-io/agent-fixes
Agent and tool-layer fixes found by a decision-model loop
2026-09-25 10:58:32 +02:00
Adrià Arrufat b5896c259b Merge branch 'main' into agent-fixes
# Conflicts:
#	build.zig.zon
#	src/SemanticTree.zig
2026-09-25 10:44:05 +02:00
Karl Seguin 3d74a90f71 Merge pull request #3633 from lightpanda-io/v8-string-writeutf8
v8: update for changes to v8__String__WriteUtf8
2026-09-25 12:11:42 +08:00
Karl Seguin db98e85ce3 v8: update for changes to v8__String__WriteUtf8
https://github.com/lightpanda-io/zig-v8-fork/pull/211
2026-09-25 11:52:42 +08:00
Karl Seguin a720a51987 Merge pull request #3631 from lightpanda-io/orderfile-regen
orderfile: regenerate the hot-code profile
2026-09-25 09:37:48 +08:00
Karl Seguin ddda5a4bc6 Merge pull request #3612 from lightpanda-io/cascade-box-size
Resolve width and height from stylesheet rules
2026-09-25 09:37:29 +08:00
Karl Seguin 140b0bc908 Merge pull request #3626 from lightpanda-io/style-groups
Split the style cascade into property groups
2026-09-25 09:30:42 +08:00
Karl Seguin 070ece06bb Merge pull request #3483 from lightpanda-io/cors-store
Cors Store
2026-09-25 09:17:04 +08:00
github-actions[bot] 07880245b2 orderfile: regenerate the hot-code profile
hot set 16652KB resident at 4KB fault-around: 21492 text, 21950 rodata symbols
2026-09-25 01:01:57 +00:00
Karl Seguin 722241fe0d Merge pull request #3622 from lightpanda-io/keep-preload-script-errors
http: preserve preload script errors
2026-09-25 06:14:25 +08:00
Karl Seguin 2bd46136dc Merge pull request #3621 from lightpanda-io/legacy-constructors
webapi: Legacy constuctor API
2026-09-25 06:13:23 +08:00
Karl Seguin bfbc34bffa Merge pull request #3619 from lightpanda-io/sanitizer-usage
webapi: Sanitizer API usage
2026-09-25 06:13:06 +08:00
Karl Seguin 1950a81753 Merge pull request #3617 from lightpanda-io/iterative-semantic-tree
mem: SemanticTree and AXNode recursive walk -> iterative
2026-09-25 06:12:53 +08:00
Muki Kiboigo acd71e5f29 collect allowed headers from response 2026-09-24 12:30:44 -07:00
Muki Kiboigo 6aa0fffab3 collectAuthoredHeaders just once in CorsGate 2026-09-24 12:29:57 -07:00
Muki Kiboigo 4957d109d3 use coversRequest everywhere in CorsStore 2026-09-24 12:26:24 -07:00
Muki Kiboigo ee2b97d9f8 fix ordering of store help entries 2026-09-24 12:24:54 -07:00
Adrià Arrufat 6d6f19d6ed tools: fill out under-described tool descriptions
tree, interactiveElements, structuredData, detectForms and scroll were
one or two sentences, and evaluate's script parameter had none. MCP
clients that drop the server instructions only see these, so state what
each returns (fields, shapes, empty cases), when to reach for it over
its neighbours, and scroll's absolute-position semantics.
2026-09-24 20:47:29 +02:00
Adrià Arrufat b5a30be076 build: bump zenai
Picks up effort=none sending thinking disabled to Anthropic (zenai#19)
and the reasoning max_tokens floor on every provider (zenai#18).
ErrorDetail now carries the parsed error message instead of the raw
body.
2026-09-24 20:43:11 +02:00
Adrià Arrufat ff6a54ba22 agent: drop dated prompt patterns
- Synthesis prompt: drop the one-word/one-phrase answer clamp (a
  benchmark format applied to every budget-exhausted REPL turn) and the
  no-more-tools line the request already enforces; keep the
  report-don't-confabulate rule.
- Driver guidance: drop the HN/Reddit source heuristic, which also
  reached every MCP client.
- Save prompt: state the comment rule once instead of repeating it in
  the output-format line.
- goto: describe when it returns, what it returns, and when a url-taking
  read is the better call.
2026-09-24 20:38:39 +02:00
Adrià Arrufat 20b0943a21 Trim comments 2026-09-24 13:40:01 +02:00
Adrià Arrufat 822eb1c2f6 Measure wrapped text in an element's content height
A box whose content is only text had no content extent, so its scroll
offset never clamped. With an explicit width, direct text children now
wrap at it and add their lines to the content height.
2026-09-24 13:40:01 +02:00
Adrià Arrufat 20b7325e13 Resolve width and height from stylesheet rules
An element sized by a stylesheet rule had no explicit size, so its scroll
offset never clamped. The geometry group now tracks width and height, and
getElementAxis reads them from the cascade, which already folds in the
inline style. html and body read only their inline size, without
materializing the style object. Removes the now unused
CSS.parseDimensionViewport.
2026-09-24 13:39:55 +02:00
Adrià Arrufat 2ce2fe94df Reset the groups in a loop and trim comments
rebuildIfDirty walks group_fields like the other per-group code, so a new
group needs no change there. Capacities moves out of Group since it
doesn't depend on the spec. Also updates the ownProps and compute call
sites to the (el, frame) order.
2026-09-24 13:39:25 +02:00
Adrià ArrufatandKarl Seguin e547657ab0 Apply batched suggestions from code review
Co-authored-by: Karl Seguin <karlseguin@users.noreply.github.com>
2026-09-24 13:36:45 +02:00
Karl Seguin 7f4387b9c7 Merge pull request #3623 from lightpanda-io/delete-fs-cache
chore: delete FsCache.zig, it isn't being used
2026-09-24 15:29:08 +08:00
Karl Seguin 40cf2b28c3 Merge pull request #3624 from lightpanda-io/response-header-normalization
http: lowercase response headers
2026-09-24 15:28:59 +08:00
Karl Seguin 7e2fcec7c7 Merge pull request #3625 from lightpanda-io/speed-up-slow-tests
dev: speed up some slow tests
2026-09-24 15:28:48 +08:00
Karl Seguin 606089f5a8 Merge pull request #3620 from lightpanda-io/new-options
webapi: add new Option() support
2026-09-24 15:28:28 +08:00
Karl Seguin b8175662df Merge pull request #3606 from lightpanda-io/default-indexer-query
webapi: give every indexer implementation a query handler
2026-09-24 15:27:54 +08:00
Adrià Arrufat 8d62739503 Split the style cascade into property groups
Each group owns its rule buckets, its memo and its cascade priorities, so a
rule only joins the groups it declares something in. Visibility keeps
display, visibility, opacity and pointer-events; overflow and
overscroll-behavior move to a geometry group. A visibility probe no longer
matches overflow-only rules, and its memo entry shrinks to 6 bits.
2026-09-24 09:24:28 +02:00
Karl Seguin e3912ba208 dev: speed up some slow tests
-TCP_NODELAY on test clients,
-WebDrive tests poll for completion with a short sleep, instead of 1 long one
-reduce isolated world redirect delay
2026-09-24 13:59:34 +08:00
Karl Seguin e5ecdf1fe3 http: lowercase response headers
Response headers get lower cased once, upfront. Any consumer of a transfer's /
response's headers is now `mem.eql` rather than `ascii.eqlIgnoreCase`. This
fixes 1 or 2 WPT cases (e.g. XHR's `getAllResponseHeaders`), it also mergers
values in some cases (which is generally correct) - we need a follow up PR
to correctly merge in all cases.
2026-09-24 13:51:41 +08:00
Karl Seguin 1b38dd16b7 chore: delete FsCache.zig, it isn't being used 2026-09-24 13:08:39 +08:00
Karl Seguin 5b994c10cd http: preserve preload script errors
Preloaded modules would discard errors in the hope that re-fetching the script
when it was needed, might work. This reverses that decision and stores the
error state. When a preload fails, that failure sticks.

This does mean that a transient failure doesn't get a second chance.

But it also means we don't log the failure multiple times (I noticed this when
using adblocking and seeing duplicate failures for the same endpoint). Since we
don't keep trying, it cuts down the CDP flow too.
2026-09-24 12:51:51 +08:00
Karl Seguin 0f44c3ec51 webapi: Legacy constuctor API
We previously supported the legacy constructors via new Image() and new Audio()
and https://github.com/lightpanda-io/browser/pull/3620 adds support for
new Option(). In most cases, that was good enough, but it wasn't quite up to
spec, e.g. new HTMLImageElement() still worked and HtMLImageElement showed up
in window.

This PR cleans it up by giving each one a distinct constructor for their legacy
function and NOT creating the default one bridge.constructor would otherwise
create.
2026-09-24 11:24:10 +08:00
Karl Seguin b09049cbf3 webapi: add new Option() support 2026-09-24 10:06:15 +08:00
Karl Seguin 54b0d114ad Merge pull request #3618 from lightpanda-io/orderfile-regen
orderfile: regenerate the hot-code profile
2026-09-24 09:38:58 +08:00
Karl Seguin eba58d7d57 webapi: Sanitizer API usage
Builds ontop of https://github.com/lightpanda-io/browser/pull/3604 to actually
use a Sanitizer across 6 apis (some of which we didn't have at all, and some
of which were incomplete). Namely setHtml and setHTMLUnsafe for Element,
ShadowRoot and Document.
2026-09-24 09:38:34 +08:00
github-actions[bot] a01a554000 orderfile: regenerate the hot-code profile
hot set 16948KB resident at 4KB fault-around: 21535 text, 21860 rodata symbols
2026-09-24 01:05:29 +00:00
Karl Seguin 1151eaebf3 mem: SemanticTree and AXNode recursive walk -> iterative
Following https://github.com/lightpanda-io/browser/pull/3573 and
https://github.com/lightpanda-io/browser/pull/3602 this makes the two recursive
walks iterative, preventing a SO on deep trees.
2026-09-24 07:24:15 +08:00
Karl Seguin 160bce3ee6 GetterQuery now compilerError on an non-option getter 2026-09-24 07:15:09 +08:00
Karl Seguin 4bada6d3df Batch option creation 2026-09-24 07:10:43 +08:00
Karl Seguin ff10756ee6 Merge pull request #3607 from lightpanda-io/cleanup-abandoned-document-parsers
mem: Track / Free abandoned html5ever parsers
2026-09-24 06:37:10 +08:00
Karl Seguin 578acc9040 Merge pull request #3587 from lightpanda-io/nikneym/polymer-changes
Changes for `<template>` content
2026-09-24 06:24:14 +08:00
Karl Seguin 6debc4dd71 Merge pull request #3608 from lightpanda-io/webdriver-input
WebDriver: add input (click, clear and sendKeys)
2026-09-24 06:17:35 +08:00
Karl Seguin 4d16a0c4b6 document cleanup after bad parse start 2026-09-24 06:17:00 +08:00