Editorial lab journal
The blog is the public audit trail for openElement: what changed, why the package graph moved, and which standards boundary matters next.
Release posts are product evidence. Architecture posts explain the standards decisions behind DSD, routes, islands, and package boundaries.
Core API surface reduced from 18 to 6 exports, compile-time phase ordering via branded types, virtual module IDs migrated from core to adapter-vite, and CI coverage collection.
Core API surface reduced from 18 to 6 exports, compile-time phase ordering via branded types, virtual module IDs migrated from core to adapter-vite, and CI coverage collection.
Eliminated all module-level state from @openelement/content and @openelement/i18n. Pure functions replace stateful init/getter patterns. Virtual modules become the only data bridge for SSR routes.
v0.6.0 确立 DSD 为核心渲染模型,引入 island() Mixin 替代 monkey-patch,定义三层组件模型(dsd-static / dsd-interactive / pure-island)。v0.6.1 移除 npm 发布,全面转向 JSR。v0.6.2 统一 WithDsdHydration Mixin,消除 DsdLitElement 继承。
Core API surface reduced from 18 to 6 exports, compile-time phase ordering via branded types, virtual module IDs migrated from core to adapter-vite, and CI coverage collection.
Eliminated all module-level state from @openelement/content and @openelement/i18n. Pure functions replace stateful init/getter patterns. Virtual modules become the only data bridge for SSR routes.
Five audit items resolved: structured logging, runtime-shim auto-generation, parse5 nested DSD optimization, advanced feature docs, and Playwright E2E tests. @openelement/blog ships and dogfoods.
P0 审计修复:runtime-shim 一致性、XSS 警告、静默 catch 消除。73 个新测试覆盖 render-dsd.ts 和 island.ts。部署从 GitHub Pages 迁移到 Cloudflare Pages。