Skip to content

v0.17.2

Choose a tag to compare

@SisyphusZheng SisyphusZheng released this 16 May 10:28
· 2635 commits to main since this release
d35354c

v0.17.2 — SSR Filtering + dsd-report Manifest Decisions

Release date: 2026-05-16

Summary

Implements the two deferred v0.17.0 SOP items: SSR-aware island filtering
(less.ssr: false) and manifest-driven render decisions in dsd-report.json.

Changes

  • SSR Filtering: Islands with less.ssr: false are excluded from SSR
    customElements.define() registration. They render as empty custom element
    tags in SSR HTML and get upgraded client-side via the client entry.
  • ManifestDecision type: New ManifestDecision interface in @lessjs/core
    records per-island render path (ssr+client | client-only) derived from
    manifest flags (ssr, dsd, hydrate).
  • dsd-report.json: New manifestDecisions field populated from
    ctx.phase1.packageIslandDecls + ctx.phase1.packageManifests.
    Empty array when no package manifests are configured.
  • Tests: 6 new tests (4 in entry-renderer, 2 in ssg-report).
    Total: 528 unit + 92 e2e passing.

Breaking Changes

None. This is a patch release — feature completion, no API change.
manifestDecisions is an optional field in DsdBuildReport.

Known Issues

  • 3 JSR unanalyzable-dynamic-import warnings in adapter-vite (expected,
    runtime-only deps, not blocking publish)

Files Changed

File Change
packages/core/src/types.ts Added ManifestDecision interface
packages/core/src/index.ts Export ManifestDecision type
packages/adapter-vite/src/entry-renderer.ts SSR island filter: skip ssr === false
packages/adapter-vite/src/cli/ssg-render.ts Added buildManifestDecisions() + report
packages/adapter-vite/__tests__/entry-renderer.test.ts 4 SSR filtering tests
packages/adapter-vite/__tests__/ssg-report.test.ts 2 manifestDecisions tests
docs/sop/v0.17.2-ssr-filtering-dsd-report.md SOP updated with implementation details
docs/status/STATUS.md Updated to v0.17.2