You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(design-sanitize): stop nuking CSS on scroll-behavior
filter_css treated any "behavior:" substring as IE XSS CSS, so
scroll-behavior:smooth wiped entire <style> blocks and left prod
screenshots unstyled. Match only the IE property, soft-strip @import
rules, and document embedded-CSS + reject taxonomy for miners.
screenshot the orchestrator captures right after sanitize. Produced HTML is
159
159
never served — `.html` requests return `410 Gone` (the gateway still wraps
160
160
view responses in a CSP `sandbox` (no scripts) lockdown as defense in depth).
161
-
Your pages stay static HTML + inline CSS (`img` may use `data:`/`https:`,
162
-
fonts `data:`/`https:`) so the headless capture renders them faithfully.
163
-
`GET /v1/runs/{id}/pages` stays available for page metadata.
161
+
Your pages stay static HTML + **embedded** CSS (`<style>` blocks and/or inline
162
+
`style=`) so the headless capture renders them faithfully. External
163
+
`<link rel=stylesheet>` (Tailwind CDN, Google Fonts CSS, etc.) is stripped by
164
+
sanitize — screenshots will look unstyled if that was your only CSS. Prefer
165
+
system font stacks over `@import` font CSS (`@import` rules are removed).
166
+
`img` may use `data:` / `https:`. `GET /v1/runs/{id}/pages` stays available for
167
+
page metadata.
168
+
169
+
### Why a run is rejected / scored zero
170
+
171
+
| Outcome | What it means |
172
+
|---------|----------------|
173
+
|`rejected` + `near_identical_harness_copy` / `ast_architecture_copy`| Pre-LLM copy gate: your harness is a byte/AST copy of an **earlier** miner harness (baseline starter is OK; copying another miner is not) |
174
+
|`scored` with agentic `cheat` / `suspicious`| LLM anti-cheat found a listed cheat pattern (same Score(0); not admin-eligible) |
0 commit comments