Changelog
Version 0.4.0
A maintenance release. The timeline panel stays fast with a full buffer, the live inspector stops walking the whole page, and several failures that used to pass silently now say so. Releases are published from CI now.
Added
- Verbose render layer. lit-html’s per-part debug events (template
instantiation,
set part, each binding commit) go to a new “Lit Render (verbose)” layer. It is off by default, because it fires once per binding on every render. Values are summarized as strings (string:"…",node:<li>,template,function:onClick) and never passed through. - Releases from a version tag. Pushing a
v*tag runs the CI gate, checks the tag againstpackage.jsonandCHANGELOG.md, publishes to npm over trusted publishing (OIDC), and creates the GitHub Release from the changelog section. Prereleases go to thenextdist-tag.
Changed
- The timeline list renders only the visible rows, through
@lit-labs/virtualizer. A 2500-event recording keeps about 75 rows in the DOM instead of one per event. Filtering reruns only when the events or filters change. - Live inspector mode no longer re-walks the page on every mutation. Batches with no custom element or shadow root in them are dropped, and relevant batches walk only the subtrees they added.
- The docs site was rewritten in plain language, with a tutorial, task-sized DevTools guides, a troubleshooting page, screenshots in both themes, and the Lit Design System’s colours and type.
Fixed
- The source overlay’s default hotkey is Ctrl+Shift+S, as documented. The
runtime used to fall back to
e, which also collided with the DevTools pick command. - The source overlay removes its HMR listeners when it disconnects. Moving the element used to register the toggle twice, so the Vite DevTools overlay command did nothing, and a removed overlay kept reacting.
urlSheet()and?css-sheetwarn when a stylesheet fails to load, and treat non-ok responses as failures. A 404 used to hand Vite’s fallback page to the sheet as CSS, with a clean console. The sheet keeps its last good CSS.- An unknown
LIT_PLUGIN_HMR_ON_INCOMPATIBLEvalue logs a warning and falls back to the default, instead of quietly acting asreload. - The Lightning CSS pass over
cssliterals finds them by parsing the module, socss-tagged text inside a string, a comment, or another template literal is no longer rewritten.