12 Commits
Author SHA1 Message Date
ldm0 ddab89586a fix(layout): keep scrollbar gutters out of overflow 2026-08-23 03:49:48 +08:00
ldm0 897e8e88a2 feat(layout): model physical scrollbar insets 2026-08-23 03:49:48 +08:00
Athul Nambiar 777ae9af36 fix(cli): enforce --obey-robots against robots.txt
`--obey-robots` parsed into `FetchConfig` and stopped there. Its only
consumer was the network trace, which reported the flag's own value back
out; no robots.txt was ever fetched or honored. The webfetch skill
meanwhile told agents to enable it for crawl workloads, so a crawl could
report that it obeyed robots.txt while ignoring it.

Add `moli-robots`, a dependency-light RFC 9309 parser and matcher:

- group parsing, including merged repeat groups and `User-agent` runs;
- user-agent selection by specificity with `*` as the fallback group;
- `Allow`/`Disallow` with `*` and `$`, longest match winning and `Allow`
  taking ties;
- percent-encoding normalization so a pattern and a request target
  compare in one space;
- the RFC 9309 section 2.3.1 response rules, where 4xx publishes no rules
  and 5xx or a transport failure disallows the origin.

Wire it into `moli fetch`. The check runs before the browser starts, so a
refused URL costs one robots.txt request and the target is never
contacted.

Scope is the top-level navigation. Subresource and protocol-server
navigations run through NavigationEngine, whose redirect, service-worker,
and CDP paths need a design decision of their own; `moli serve
--obey-robots` now warns that it is not enforced instead of appearing to
work.

Fixes #79
2026-08-21 02:34:26 +08:00
ldm0 4694c71a84 feat: add browser action batching model 2026-08-18 01:04:04 +08:00
ldm0 ce7fa9cd17 feat: implement Web Bot Auth signing 2026-08-16 15:19:40 +08:00
ldm0 d1f20f66f8 Use a global CSS layout-unit grid 2026-08-13 19:22:29 +08:00
ldm0 48742bb657 refactor: extract protocol server crate 2026-08-13 13:43:26 +08:00
ldm0 91c281d2c7 fix(parser): expose CDATA from xml5ever 2026-08-13 07:07:00 +08:00
ldm0 d785c20317 Use distinct container baselines from Taffy 2026-08-11 19:33:01 +08:00
ldm0 63eb3d6bc2 Fix inline-block baseline propagation 2026-08-11 16:34:44 +08:00
ldm0 bb5c9d0fd3 Refactor intrinsic sizing through Taffy 2026-08-11 13:34:06 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00