odysseus/specs
Léo 1863de33c2 test(css): pin computed styles against a committed baseline
static/style.css is 51,425 lines in one file. Hundreds of selectors are
declared more than once and !important is used throughout, so the rendered
result is a function of source order. Extracting a block into its own file
changes that order, and nothing in the suite would notice - which makes a
51k-line split unfalsifiable and "looks fine to me" the only available
evidence.

This moves no CSS. It captures getComputedStyle over a fixed inventory of
676 elements across three pages, four viewports, both themes and the three
density modes - 16,224 element snapshots - hashes them, and compares against
tests/css_snapshot/baseline.json. A capture takes about 21 seconds.

The bench page synthesises one element per selector from an evidence-driven
list: every selector declared more than once in style.css that can be
expressed as a static compound chain, plus a curated set per feature area.
Redeclared selectors are the ones a reorder can flip. The bench loads
whatever stylesheets index.html ships, so it keeps measuring the real set
once the file is split. tests/test_css_computed_style_snapshot.py also carries
a self-test that swaps two conflicting .attach-strip declarations and asserts
the digest moves, so the harness cannot silently stop watching.

The second half is the asset-manifest check specs/frontend.md asks for,
scoped to stylesheets: every stylesheet referenced by shipped HTML and by the
sw.js precache exists, and index.html and sw.js agree on the ?v= string. They
hardcode it independently today, so a split that updates one and not the
other ships an offline cache nobody notices until a plane.
2026-09-25 11:32:46 +02:00
..
model-providers docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
_readme.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
agent-tools.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
auth-security.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
calendar-tasks-notes.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
chat.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
compare.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
context-building.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
cookbook-hwfit.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
documents-rag-uploads.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
email-contacts.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
frontend.md test(css): pin computed styles against a committed baseline 2026-09-25 11:32:46 +02:00
gallery-editor-media.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
integrations.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
llm-models.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
memory-skills.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
model-capability-canonical.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
model-quirks.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
persistence.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
research.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
runtime.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
search.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
settings-admin.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
shell-mcp.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
speech.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00
testing-devops.md docs: bootstrap specs ground truth (#5794) 2026-08-25 14:18:44 +02:00