v0.6.6
Consolidation pass from the 2026-06-10 multi-agent audit: two real PDF-export
defects fixed and gated, the reporting hub routed to every shipped leaf, and
the drift-prone hand lists in the gates derived from registries. No breaking
changes, no MIGRATIONS.json entry.
Fixed
- Print overprint (the big one) — Chromium-class print engines restart
grid tracks at each page break, printing new rows over the running content.
css/report.css@media printnow demotes the vertical document-flow
wrappers (.ui-report,__section,__figure,__actions,
.ui-evidence-ledger) to block flow with margin-emulated gaps; the column
grids (.ui-compare,.ui-meter__row,.ui-report__decision-item,
.ui-evidence-grid) keep their tracks. Gated by a promoted multi-page
fixture (test/e2e/_report-print.fixture.html) whose PDF is parsed with
pdfjs-dist and asserted overlap-free (test/e2e/report-print.spec.mjs). - Silent module-figure drop in PDFs — reports that render figures from
relative<script type="module">imports lose them overfile://(CORS).
scripts/render-pdf.mjsgains--serve(loopback HTTP + the report's
data-report-readysignal), forwards page/console errors to stderr, and
warns when a module report is rendered overfile://. - Demo class drift —
demo/index.htmlstill used the renamed
ui-inspector__header(now__head), anddemo/version-history-report.html
carried a never-registered cover-mark class; both were silent no-ops. The
generated reference's analytical-leaves note now namesui-annotation
(singular, the real class). scripts/smoke-example.mjsimports Chromium from@playwright/test(the
installed devDependency) instead of the hoisting-dependent bare
playwrightspecifier.
Added
- Reporting hub routing —
docs/reporting.md's analytical-toolbox table
now routes ALL report-relevant leaves (spark, bullet, diff, code, sidenote,
textref, term, glossary, contents rail, tree, dot surfaces) and states
precisely whatanalytical.cssdoes and does not bundle. New convention in
CONTRIBUTING: a new report-relevant leaf ships in the same PR as its
routing row. npm run release:prep -- X.Y.Z— one-shot release prep: version + lock
bump, CHANGELOG heading dating, and re-pinning every@ponchia/ui@X.Y.Z
literal across the gated shipped docs AND the ungateddemo/*.htmlpages
(which had already drifted a version behind).- Cross-engine e2e on merge-to-main — pushes to
mainthat touch
engine-sensitive surfaces (css/,dist/,behaviors/,fonts/,
tokens/,test/e2e/, the Playwright config) now run the firefox/webkit
pass too, instead of deferring it to the release tag. demo/dots.html— the dot data surfaces (waffle, activity, level,
dotgauge, readout, spark--dots, halftone, dotfit) get a specimen page,
axe/guard coverage indemos.spec, and render-geometry boundingBox
assertions (their only possible executable gate — they ship no JS).- jsdom coverage for
initDisabledGuard(activation blocking, Tab
pass-through, root scoping, cleanup).
Changed
check:reportandcheck:packderive their scan/entrypoint lists from
registries (package.jsonfiles/exportsviascripts/lib/css-leaves.mjslib/shipped-docs.mjs) instead of hand lists that had drifted behind the
post-0.6.0 leaves. The broadened scan immediately caught the demo/reference
class defects above.core.cssimports are now closed over an explicit
CORE_BUNDLE allowlist in both directions.
ROADMAP.md/docs/frontier-primitives.mdreconciled to 0.6.5: the
report/provenance/explanation lane is named the proven core; ui-job,
ui-conflict, ui-splitter, the tree roving-focus kernel, and
command/workbench follow-ons are explicitly dormant until a real app
consumer exists; the 2026-06-09 scout keeps (ui-interval, ui-clamp,
ui-highlights) are recorded as report-lane candidates gated behind the
routing hub. The adoption stance is stated in ROADMAP.