Skip to content

Semiotic v3.10.2

Choose a tag to compare

@github-actions github-actions released this 19 Sep 02:53
· 411 commits to main since this release

Added

  • Stream suggestion for ordinal and value charts — suggestStreamCharts
    now registers BarChart, GroupedBarChart, StackedBarChart, PieChart,
    DonutChart, BigNumber, and GaugeChart. A keyed { brand, revenue } schema
    and a single-row aggregate both return charts instead of an empty list.
  • StreamSchema.shape and keyFields — first-class changelog semantics
    (append / keyed / aggregate) plus a key field role distinct from
    category.
  • Audience, stretch, and exclusions on stream suggestion —
    suggestStreamCharts takes audience, returns
    { suggestions, excluded, stretchSuggestions }, and
    explainStreamCapabilityFit is the diagnostic alias.
  • suggestStreamDashboard and AudienceProfile.dashboard layout policy
    (cell budget, lead families, density, window preference).
  • applyChangelog maps insert/upsert/update/retract batches onto a
    realtime handle. T-digest percentiles and HyperLogLog distinct
    counts
    are opt-in on WindowAccumulator.
  • Staleness source state — StalenessConfig.state / settling so a
    stopped or failed source reads Stopped/Failed, not Stale.
  • Controlled-data SSR for RealtimeLineChart, RealtimeHeatmap,
    RealtimeHistogram, RealtimeSwarmChart, and RealtimeWaterfallChart.
  • RealtimeLineChart.seriesAccessor, top-level pulse / decay /
    staleness on Scatterplot (and Bubble/ConnectedScatterplot), and a
    canvas linkedHover worked example.
  • Registered intent phrases and composed-intent
    communicativeActForIntent resolution.

Changed

  • LineChart direct labels share measured placement across browser, SSR, and
    static rendering, with accessible fallback content and layout evidence.
  • Keyed path transitions use pointIdAccessor to preserve point identity
    and intro clipping during updates.
  • Event-time reordering and fixed-window retention use priority queues;
    session events update their existing statistics and sketches directly.
    T-digest compression is batched by pending observations, and HyperLogLog
    maintains its estimator incrementally for constant-time distinct readouts.
  • Accessibility auditing uses generated chart-name and text-prop metadata.
    Unused validation catalogs can be removed from AI and chart imports.
  • suggestStreamCharts return type — now
    { suggestions, excluded, stretchSuggestions } instead of an array.
    Migration: const { suggestions } = suggestStreamCharts(...).
  • StreamChartCapability.importPath is a free string so wrappers can
    declare their own library.
  • Throughput accepts a rows-per-second number as well as the
    low/medium/high bands.
  • capacity / capacityMode alias windowSize / windowMode so
    "window" can mean the aggregation window.
  • semiotic/ai/core re-exports audience types, stream capability
    types, and RealtimeFrameHandle is also exported from semiotic/xy.

Fixed

  • RealtimeLineChart aggregate handles expose new rows immediately after
    push, pushMany, flush, and clear, including within React batches.
  • Large event-time releases and t-digest merges avoid JavaScript argument
    limits that previously caused stack-overflow errors.
  • Realtime server rendering preserves fixed domains, heatmap aggregation,
    aggregate envelopes, mark styles, category colors, and retention aliases.
    The category-color correction also applies to TemporalHistogram.
  • RealtimeLineChart aggregates each seriesAccessor group independently in
    both React and server renders, including bands and per-series retention.
  • Stream inference excludes timestamps and incompatible field kinds from
    measures. Dashboard stretch panels honor the requested intents, allow-list,
    and budget, and include unused candidates.
  • Changelog coalescing preserves last-event order, and upserts restore keys
    evicted earlier in the same bounded-buffer batch.
  • T-digest quantiles interpolate between centroid centers, correcting biased
    medians for small windows.
  • Server bundles register scene builders without loading canvas painters;
    browser frames still load their painters when needed. Production bundles
    preserve tree-shaking annotations, and chart descriptions share a small
    intent registry without importing the full inference catalog.