Changelog

Version history and release notes.

Version Format

MAJOR.MINOR.PATCH

MAJOR - Breaking API changes
MINOR - New features (backward compatible)
PATCH - Bug fixes (backward compatible)

v0.2.0 (Current - In Development)

Added

FeatureDescription
CLI toolpresentar serve, bundle, deploy, score, gate commands
WebGPU renderingGPU-accelerated primitive rendering via WGSL shaders
Browser routerSPA routing with history API integration
Canvas2D fallbackSoftware rendering for non-WebGPU browsers
Hot reloadLive reload during development with WebSocket
Chart primitivesInterpolation, Bezier curves, arc geometry, histogram binning
Chart examplesScatter/bubble, heatmap, boxplot, area stacked, donut, sparkline, multi-axis
Dashboard examplesPerformance monitoring, pipeline viz, infrastructure, research, alerts
Edge case examplesUnicode/CJK, RTL, numeric edge cases, slow data, high cardinality, theming
Data managementModel version history, dataset lineage tracking, batch upload preview
Test fixturesTAR-based fixture loading for integration tests
BDD testingdescribe(), expect(), TestContext for behavior specs
VirtualizationScroll virtualization for large lists (60fps at 100k items)
Undo/RedoCommand-pattern history with merge and branch support
ClipboardCross-platform clipboard with format negotiation
GesturesTouch gesture recognition (tap, swipe, pinch, pan)
AnimationsKeyframe animations with easing functions
Keyboard shortcutsPlatform-aware shortcut registration
Data bindingTwo-way reactive bindings with validation
Grid layoutCSS Grid-like layout with auto-placement

Improved

AreaEnhancement
Coverage91.18% line coverage, 94.97% function coverage
Tests3,463+ tests across workspace (194 new example tests)
LintAll clippy warnings resolved with targeted allows
YAMLExpression executor with aggregations and transforms
QualityGrade system (F-A) with configurable gates

Architecture

  • WebGPU instanced rendering pipeline
  • Browser event loop integration
  • LocalStorage state persistence
  • WebSocket real-time communication

v0.1.0

Added

FeatureDescription
Core widgetsButton, Text, Row, Column, Stack
Layout engineFlexbox-inspired constraint system
Test harnessZero-dependency visual testing
YAML configDeclarative app definition
A11y checkingWCAG 2.1 AA validation

Architecture

  • Unidirectional data flow
  • Widget trait with measure-layout-paint
  • RecordingCanvas for draw commands
  • CSS-like selectors for testing

Versioning Policy

// Check version at runtime
const VERSION: &str = env!("CARGO_PKG_VERSION");

fn check_compatibility(required: &str) -> bool {
    let current: Vec<u32> = VERSION.split('.')
        .filter_map(|s| s.parse().ok())
        .collect();
    let req: Vec<u32> = required.split('.')
        .filter_map(|s| s.parse().ok())
        .collect();

    // Major version must match
    current.get(0) == req.get(0)
}

Migration Notes

FromToAction
0.0.x0.1.xUpdate Widget trait

Verified Test

#[test]
fn test_changelog_version_parsing() {
    let version = "0.1.0";
    let parts: Vec<u32> = version.split('.')
        .filter_map(|s| s.parse().ok())
        .collect();

    assert_eq!(parts.len(), 3);
    assert_eq!(parts[0], 0);  // Major
    assert_eq!(parts[1], 1);  // Minor
    assert_eq!(parts[2], 0);  // Patch
}