Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.
Unreleased¶
v0.8.0 - 2026-09-26 (a200371)¶
Highlights¶
- Specification-driven UI composition platform: pages are declarative PageSpec JSON (apiVersion ui.plexusone.dev/v1) validated against a versioned component registry, with Go types as the source of truth and generated JSON Schemas
- Two fully parallel renderers — React and standard web components via Lit — emitting an identical data-uiforge-* DOM vocabulary, verified by fixture-driven cross-renderer conformance suites
- Async data-source runtime in both renderers: pluggable connectors, loading/error states, per-component caching, and cache invalidation via the component.refresh interaction action
- Design-system integration built on design-system-spec (DSS): components consume a fixed semantic token vocabulary, and the theme adapter maps any DSS document onto it — including white-label var() references to the host brand's own CSS custom property prefix
Added¶
- UISpec core Go types: PageSpec, ComponentInstance, LayoutSpec (responsive-grid, stack, split-pane, tabs, application-shell), Binding, Interaction, NavigationSpec, VisibilityRule, ThemeRef, and profile constraints (
8ff0a3c) - Component registry with ComponentSpec manifests and page validation, builtin core/analytics/assistant/application namespaces (25 manifests), external manifest loading (file and directory), version compatibility checking (exact, prefix, and caret forms), and instance property validation against manifest schemas (
a47ec45) - Runtime engines: ${...} expression evaluation, hierarchical page state store, event-to-action interaction engine, and PageSpec tree diffing (
0d3113c) - JSON Schema generation from the Go types (draft 2020-12) with schemas embedded via go:embed for runtime validation (
6f6d6c7) - theme package: adapts design-system-spec documents into UIForge themes — semantic token bindings, light/dark mode selection, scoped stylesheet generation, and configurable source-prefix var() references for white-labeling (
16c51b4) - @plexusone/uiforge-spec: shared TypeScript package holding the UISpec types and the framework-free expression/state/interaction/datasource/data engines consumed by both renderers (
b266f93) - @plexusone/uiforge-renderer: React renderer with all five layouts, sidebar navigation, error boundaries, visibility rules, theme tokens, the async data runtime, and core/analytics/application component packs (18 components) (
b274c6c) - @plexusone/uiforge-renderer-lit: Lit web-components renderer (
) with layout, navigation, children/slot, engine, and component-pack parity with the React renderer ( 971e60d) - Browser demo of the Lit renderer: a full sales dashboard from one inline PageSpec with a live async data source, served with no bundler via import maps (
abdd1f1)
Changed¶
- theme package migrated to design-system-spec v0.7.0's first-class modes: colorValue and FromDesignSystemWithModes now read ColorToken.EffectiveModes()/DesignSystem.Modes directly instead of deriving light/dark overlays by diffing three generated theme variants; overlays are generated for every mode a document declares, not just light/dark
- BREAKING: ThemeRef.density replaced the closed comfortable/compact enum (uispec.DensityComfortable/DensityCompact/IsValidDensity removed) with an open ID/scale pair: density selects a key in the new densities map, resolved from a DSS document's Foundations.Densities by theme.FromDesignSystemWithModes. Validation is now structural (density must be a key in densities) instead of a fixed two-value check. Both renderers read densities[density] for --uiforge-density identically; component packs are unchanged since they only ever consumed the resolved CSS variable
Dependencies¶
- 1 dependency update
Documentation¶
- Product and technical specs (PRD, TRD, PLAN, ROADMAP with RMI-UIFORGE-101+ numbering), README, and repository CLAUDE.md (
dd26ff1)
Tests¶
- Go unit and golden tests: five PageSpec fixtures validated through the registry, covering all builtin namespaces and the application profile (
1c5804d) - React renderer suite (33 tests) plus fixture-driven conformance tests asserting the shared DOM vocabulary (
ffdcc6a) - Lit renderer suite (39 tests): layouts, application components against the customer-record fixture, async data runtime, and conformance (
10e4879) - Shared engine suite (44 tests) running under plain Node in @plexusone/uiforge-spec (
b266f93)