Skip to content

feat: classic ESP32 level-4/5 RMT refill — the HLI experiment - #272

Draft
Yona-Appletree wants to merge 8 commits into
mainfrom
claude/classic-hli-experiment
Draft

feat: classic ESP32 level-4/5 RMT refill — the HLI experiment#272
Yona-Appletree wants to merge 8 commits into
mainfrom
claude/classic-hli-experiment

Conversation

@Yona-Appletree

Copy link
Copy Markdown
Member

Plan: lp2025/2026-08-01-1459-rmt-priority-hli
P5-reopened-as-experiment: G1 recorded NO-GO the same evening; Yona then authorized this as an overnight EXPERIMENT on its own branch/PR so it can be gracefully dropped if the numbers do not justify it. Closing this PR is the removal path.

What this is

A clean-room level-4 high-priority-interrupt RMT refill for the classic ESP32, behind fw-esp32v3 cargo features hli_refill / hli_stress (both default OFF; the shipping image is proven untouched — section-identical build). The full honest chain — the WLED-was-MIT tip, the firewalled provenance verdict (WLED contains no HLI shim at any revision; its WiFi stability is NeoPixelBus/LGPL I2S-DMA; neither was ever opened here), the clean-room implementation from Espressif Apache references, the level choice, the esp-hal/esp-rtos coexistence contract, the RAM cost, the measurements, and the argued I2S/DMA alternative — is in docs/adr/2026-08-02-classic-hli-refill.md (Status: proposed; G2 decides ship vs park).

Pieces

  • lp-fw/lp-ws281x-hli (new, host-tested): the repr(C) state the vector reads + a pure-Rust reference model, differential-tested against lp-ws281x (byte-identical wire streams, guard-trip/entry-delay/bucket semantics). Asm offsets come from offset_of! on these structs — nothing transcribed.
  • fw-esp32v3/src/output/rmt/hli/: the vector (global_asm!, call0 discipline, CPU interrupt 24 via xtensa-lx-rt's __naked_level_4_interrupt PROVIDE seam — the sanctioned hook; ack-all storm guard; rfi 4) and a shared_driver-shaped thread side the endpoint layer swaps in. lp-ws281x core untouched.
  • hli_stress: entrypoint-replacing harness (radio_ram_probe pattern) — same boot, same board, 4×30 LEDs at the P4 pace, level-3 cells then a live matrix switch to level 4, WiFi-scan load cells ≥150 s.

Key findings

  1. The esp-hal world has an rsil 5 ceiling. esp-sync's critical sections (⇒ critical_section::with, esp-radio's wifi_int_disable, esp-storage flash windows) run at rsil 5 — so level 4 and 5 are masked by them, unlike esp-idf (which stops at 3, the origin of HLI folklore). Level 4 escapes the rsil ≤ 3 class: embassy/PriorityLock locks and all level ≤ 3 handler execution time.
  2. Radio-off, the level-4 path is essentially perfect: entry_max 55 → 0 words (the P4 ch0 start-path masking is rsil ≤ 3-class and simply invisible at level 4), refill lag 15.0/17 → 3.0/3, 0 trips in ~4 k frames / 43 k refills.
  3. Zero entry delay broke the guard-word scheme — the reader is still on the guard slot at service time (skips == refills measured), so the vector retries the guard after the fill; skips returned to 0. Recorded in the ADR as a design consequence unique to HLI speed.
  4. Radio-linked head-to-head (the money measurement):

Two full runs (run3; run4 instrumented). Per-cell deltas, run4 (frames per channel ≈2.8 k per scan cell):

cell trips per ch worst-ch % entry_max lag_max selmis
L3 radio-idle 0/0/0/0 0 % 9 20 n/a
L3 S2 scan 28/4/39/24 1.40 % 57 26 n/a
L4 radio-idle 0/0/0/0 0 % 2 3 0
L4 S2 scan 78/22/72/47 2.79 % 49 4 0
  • Both paths are far below the historical 69 % in the shipping-shaped load (~1–3 %). The success bar (~1 %) was not met by level 4 — it truncated 2–3× more than level 3, twice reproduced, despite strictly lighter recorded entry tails.
  • Root-cause analysis: both paths' entry-delay instruments are censored at the deadline (end-beats-thr precedence swallows the over-deadline refill's delay), so trips measure rsil 5-class outages the histograms structurally miss — consistent with level 4 not helping, but not with it measuring worse. The selmis instrument (one focused re-measure) ruled out event bookkeeping desync; the remaining delta is unexplained, with a known confound (cell order within the boot / uncontrolled scan environment). Stop-condition honored: recorded, not chased further.
  • Advisory G2 recommendation: park, do not ship (details + follow-up experiment design in the ADR).

Measurements ledger

  • RAM: .bss +816 B (bank + save area); .data −1,088 B / .rwtext −452 B (idle L3 path GCs out) ⇒ net DRAM −272 B; flash .text +264 B. Staging: one frame-sized Vec per channel (~90 B at product load).
  • Feature-off: section sizes byte-identical vs a stashed build; size-check green.
  • Logs: .hli-logs/ (feature-off baseline, hli radio-off, stress cells).

CI

clippy-fw-esp32v3 extended in-recipe: esp32,hli_stress in the no-default loop, hli_refill,ws281x_telemetry in the additive loop — same job, per the plan's constraint. Host tests: lp-ws281x-hli (9 tests) in the default workspace.

🤖 Generated with Claude Code

Yona-Appletree and others added 8 commits August 1, 2026 21:55
…efill

lp-ws281x-hli: the exact repr(C) state the classic-ESP32 level-4 vector
will read (HliBank/HliChannel), and a pure-Rust model of its algorithm —
prefill, threshold service (entry-delay telemetry, boundary flip, guard,
byte-granular fill), end classification. Host suite pins the model
against lp-ws281x's driver as oracle: byte-identical wire streams across
tail shapes, guard trips on lost refills, boundary-wrapped entry delays,
and shift-bucket equivalence with lag_bucket for power-of-two halves.

The firmware will derive every asm field offset from these structs via
offset_of!, so layout cannot drift from the vector that consumes it.
Part of the classic HLI experiment (plan 2026-08-01-1459-rmt-priority-hli,
P5 reopened as experiment).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ness

The experiment proper. hli_refill (additive to the server build) swaps the
endpoint layer's refill path onto a hand-written Xtensa level-4 vector:

- vector.rs: __naked_level_4_interrupt via xtensa-lx-rt's PROVIDE seam
  (the sanctioned esp-hal-world hook), RMT routed to CPU interrupt 24
  (extern, level-triggered, level 4) through the peripheral's own matrix
  register. Call0 discipline, no windowed instructions, a2..a13+SAR saved
  to a static DRAM area, code+literals in IRAM, ack-all storm guard,
  rfi 4. Field offsets arrive as global_asm const operands from
  offset_of! on the lp-ws281x-hli contract structs — nothing transcribed.
- app.rs: the shared_driver-shaped thread side (configure/send/abort/
  telemetry); the start path runs the host-tested reference model, so the
  asm's spec executes on silicon every frame beside the asm itself.
  Telemetry prints the P4 line format + src=hli4.
- stress.rs (hli_stress, entrypoint-replacing like radio_ram_probe):
  radio-linked cells on one boot — L3 idle/scan then a live matrix switch
  to the level-4 vector, idle/scan again; 4x30 LEDs at the P4 baseline
  pace, C6's S2 scan generator.

Coexistence facts recorded in the module docs: esp-sync critical sections
are rsil 5, so level 4 escapes only the rsil<=3 class (embassy locks,
level<=3 handler execution) — which class dominates is what the harness
measures.

Feature off: section sizes byte-identical (verified against a stashed
build). Feature on vs telemetry build: .bss +816 B (bank + save area),
.data -1088 B / .rwtext -452 B (idle L3 refill path GC'd), flash +264 B.
Clippy matrix extended and green for all six configurations.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ll on the slot

Silicon finding (radio-off, quad-strips-v3): the level-4 handler's entry
delay is ZERO words on every refill — so the L3 algorithm's pre-fill-only
guard placement degenerated to skips==refills (43k/43k): the reader was
always still sitting on the guard slot. A refill path that fast would have
had no flicker protection at all on lost interrupts.

Model + vector now retry after the fill (by which time the reader has
moved), and `skips` counts only refills left unguarded by both attempts.
Re-measured: skips=0 across 43k refills, trips=0, entry_max=0 (ch6: 1),
lag 3.0/3 vs the L3 path's 15.0/17 — and the L3 baseline's per-frame
55-word ch0 start-path delay is entirely absent at level 4, which
classifies that masking as rsil<=3-class. Logs in .hli-logs/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First head-to-head (run3, same boot, scan cells 150 s): the surprise is
real and honest — under identical WiFi-scan load the level-4 path trips
MORE (1.8-3.1% per channel) than level-3 (0.8-1.1%), despite far lighter
entry-delay tails (max 46 vs 58 words, nothing near the 64-word
deadline on either path, lag_max 4 vs 21). Neither path's trips are
explained by recorded late entries, so some events are being lost or
mis-sequenced rather than delayed.

Instrument for the re-measure: a sel_mismatch counter (reader's half at
service vs the armed boundary's half) in contract+model+vector, printed
as an appended selmis= field. If threshold events are missed/duplicated,
pos and boundary disagree by a half and this counts it.

Also: ADR draft (docs/adr/2026-08-02-classic-hli-refill.md, Status:
proposed) with the full provenance chain, the rsil-5 ceiling finding, the
level choice, coexistence contract, RAM ledger, and the argued I2S/DMA
alternative; stress-cell logs under .hli-logs/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ecommendation

Run4 (instrumented) reproduces run3: under identical scan load the
level-4 path truncates 2-3x MORE than level-3 (worst-ch 2.79% vs 1.40%),
selmis=0 (no event bookkeeping desync at any serviced entry). Analysis
shows both paths' entry-delay histograms are censored at exactly the
deadline: an over-deadline refill ends the frame via the guard, and the
end-beats-threshold precedence swallows the late event's delay — so
trips measure the rsil-5-class outage population the histograms
structurally miss. The level-4 excess remains unexplained after the one
instrumented re-measure the stop conditions allow; known confound: cell
order within the boot. ADR carries the full table, the censoring
analysis, the follow-up experiment design (interleaved cells +
de-censored trip-adjacent capture), and an advisory park-don't-ship
recommendation for G2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Making the v3_rmt interrupt-bit helpers pub(crate) for the hli module
left three outlined copies in the feature-off .text (+24 B vs the base
commit). #[inline] drops them; section sizes are now byte-identical to a
pristine 099b422 build again — the untouched-image invariant the
experiment promised, verified rather than assumed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CI's Lint (x64) fmt-check caught attribute-wrapping and import-order
nits in the new/edited files (host clippy and the esp32v3 clippy matrix
don't run rustfmt). Token-identical reflow; firmware rebuilt to confirm.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

CI refreshed the story baselines on this branch

The validate-stories job detected drift and committed the fresh set: 1067 changed
in ff7e6e9.

Review every PNG in the PR's Files changed view (swipe / onion-skin).
Your local branch is now behind — git pull before pushing again.

1067 more file(s)
  • base__code-editor__glsl-diagnostic__lg.png (changed)
  • base__code-editor__glsl-diagnostic__md.png (changed)
  • base__code-editor__glsl-diagnostic__sm.png (changed)
  • base__code-editor__glsl-editable__lg.png (changed)
  • base__code-editor__glsl-editable__md.png (changed)
  • base__code-editor__glsl-editable__sm.png (changed)
  • base__code-editor__glsl-read-only__lg.png (changed)
  • base__code-editor__glsl-read-only__md.png (changed)
  • base__code-editor__glsl-read-only__sm.png (changed)
  • base__detail-popover__open-sections__lg.png (changed)
  • base__detail-popover__open-sections__md.png (changed)
  • base__detail-popover__open-sections__sm.png (changed)
  • base__icon-menu__open-menu__lg.png (changed)
  • base__icon-menu__open-menu__md.png (changed)
  • base__icon-menu__open-menu__sm.png (changed)
  • base__icon-menu__tones__md.png (changed)
  • base__icon-menu__tones__sm.png (changed)
  • base__icon-menu__trigger-states__lg.png (changed)
  • base__icon-menu__trigger-states__md.png (changed)
  • base__icon-menu__trigger-states__sm.png (changed)
  • base__markdown-text__markdown-subset__lg.png (changed)
  • base__markdown-text__markdown-subset__md.png (changed)
  • base__markdown-text__markdown-subset__sm.png (changed)
  • base__popover__content-growth__lg.png (changed)
  • base__popover__content-growth__md.png (changed)
  • base__popover__content-growth__sm.png (changed)
  • base__popover__open-popover__lg.png (changed)
  • base__popover__open-popover__md.png (changed)
  • base__popover__open-popover__sm.png (changed)
  • core__action__action-strip__confirmation__lg.png (changed)
  • core__action__action-strip__confirmation__md.png (changed)
  • core__action__action-strip__confirmation__sm.png (changed)
  • core__action__action-strip__disabled-reason__lg.png (changed)
  • core__action__action-strip__disabled-reason__md.png (changed)
  • core__action__action-strip__disabled-reason__sm.png (changed)
  • core__action__action-strip__priorities__lg.png (changed)
  • core__action__action-strip__priorities__md.png (changed)
  • core__action__action-strip__priorities__sm.png (changed)
  • core__action__action-strip__running-state__lg.png (changed)
  • core__action__action-strip__running-state__md.png (changed)
  • core__action__action-strip__running-state__sm.png (changed)
  • core__issue-view__message-only__lg.png (changed)
  • core__issue-view__message-only__md.png (changed)
  • core__issue-view__message-only__sm.png (changed)
  • core__issue-view__with-detail__lg.png (changed)
  • core__issue-view__with-detail__md.png (changed)
  • core__issue-view__with-detail__sm.png (changed)
  • core__log-list__empty__lg.png (changed)
  • core__log-list__empty__md.png (changed)
  • core__log-list__empty__sm.png (changed)
  • core__log-list__filtered-empty__lg.png (changed)
  • core__log-list__filtered-empty__md.png (changed)
  • core__log-list__filtered-empty__sm.png (changed)
  • core__log-list__mixed-levels__lg.png (changed)
  • core__log-list__mixed-levels__md.png (changed)
  • core__log-list__mixed-levels__sm.png (changed)
  • core__metric-grid__compact__lg.png (changed)
  • core__metric-grid__compact__md.png (changed)
  • core__metric-grid__compact__sm.png (changed)
  • core__metric-grid__dense__lg.png (changed)
  • core__metric-grid__dense__md.png (changed)
  • core__metric-grid__dense__sm.png (changed)
  • core__progress-bar__variants__lg.png (changed)
  • core__progress-bar__variants__md.png (changed)
  • core__progress-bar__variants__sm.png (changed)
  • core__status-chip__kinds__lg.png (changed)
  • core__status-chip__kinds__md.png (changed)
  • core__status-chip__kinds__sm.png (changed)
  • core__terminal-output__short-output__lg.png (changed)
  • core__terminal-output__short-output__md.png (changed)
  • core__terminal-output__short-output__sm.png (changed)
  • core__terminal-output__wrapped-output__lg.png (changed)
  • core__terminal-output__wrapped-output__md.png (changed)
  • core__terminal-output__wrapped-output__sm.png (changed)
  • core__view__activity-view__failed-step__lg.png (changed)
  • core__view__activity-view__failed-step__md.png (changed)
  • core__view__activity-view__failed-step__sm.png (changed)
  • core__view__activity-view__flashing__lg.png (changed)
  • core__view__activity-view__flashing__md.png (changed)
  • core__view__activity-view__flashing__sm.png (changed)
  • core__view__pane-view__attention-pane__lg.png (changed)
  • core__view__pane-view__attention-pane__md.png (changed)
  • core__view__pane-view__attention-pane__sm.png (changed)
  • core__view__pane-view__quiet-pane__lg.png (changed)
  • core__view__pane-view__quiet-pane__md.png (changed)
  • core__view__pane-view__quiet-pane__sm.png (changed)
  • core__view__pane-view__workflow-pane__lg.png (changed)
  • core__view__pane-view__workflow-pane__md.png (changed)
  • core__view__pane-view__workflow-pane__sm.png (changed)
  • core__view__view-content__body-variants__lg.png (changed)
  • core__view__view-content__body-variants__md.png (changed)
  • core__view__view-content__body-variants__sm.png (changed)
  • core__view__view-content__composed-variants__lg.png (changed)
  • core__view__view-content__composed-variants__md.png (changed)
  • core__view__view-content__composed-variants__sm.png (changed)
  • exploration__node-cards__control-popovers__lg.png (changed)
  • exploration__node-cards__control-popovers__md.png (changed)
  • exploration__node-cards__control-popovers__sm.png (changed)
  • exploration__node-cards__gallery-drawers-open__lg.png (changed)
  • exploration__node-cards__gallery-drawers-open__md.png (changed)
  • exploration__node-cards__gallery-drawers-open__sm.png (changed)
  • exploration__node-cards__gallery__lg.png (changed)
  • exploration__node-cards__gallery__md.png (changed)
  • exploration__node-cards__gallery__sm.png (changed)
  • exploration__node-ui__clock-compact__lg.png (changed)
  • exploration__node-ui__clock-compact__md.png (changed)
  • exploration__node-ui__clock-compact__sm.png (changed)
  • exploration__node-ui__clock-instrument__lg.png (changed)
  • exploration__node-ui__clock-instrument__md.png (changed)
  • exploration__node-ui__clock-instrument__sm.png (changed)
  • exploration__node-ui__fixture-control-product__lg.png (changed)
  • exploration__node-ui__fixture-control-product__md.png (changed)
  • exploration__node-ui__fixture-control-product__sm.png (changed)
  • exploration__node-ui__gallery__lg.png (changed)
  • exploration__node-ui__gallery__md.png (changed)
  • exploration__node-ui__gallery__sm.png (changed)
  • exploration__node-ui__playlist-children__lg.png (changed)
  • exploration__node-ui__playlist-children__md.png (changed)
  • exploration__node-ui__playlist-children__sm.png (changed)
  • exploration__node-ui__project-context__lg.png (changed)
  • exploration__node-ui__project-context__md.png (changed)
  • exploration__node-ui__project-context__sm.png (changed)
  • exploration__node-ui__shader-visual-product__lg.png (changed)
  • exploration__node-ui__shader-visual-product__md.png (changed)
  • exploration__node-ui__shader-visual-product__sm.png (changed)
  • exploration__node-ui__status-indicators__lg.png (changed)
  • exploration__node-ui__status-indicators__md.png (changed)
  • exploration__node-ui__status-indicators__sm.png (changed)
  • exploration__rich-object__card-affordance-placement__lg.png (changed)
  • exploration__rich-object__card-affordance-placement__md.png (changed)
  • exploration__rich-object__card-affordance-placement__sm.png (changed)
  • exploration__rich-object__danger-zone-treatments__lg.png (changed)
  • exploration__rich-object__danger-zone-treatments__md.png (changed)
  • exploration__rich-object__danger-zone-treatments__sm.png (changed)
  • exploration__rich-object__device-detail-popover__lg.png (changed)
  • exploration__rich-object__device-detail-popover__md.png (changed)
  • exploration__rich-object__device-detail-popover__sm.png (changed)
  • exploration__rich-object__indicator-trigger-treatments__lg.png (changed)
  • exploration__rich-object__indicator-trigger-treatments__md.png (changed)
  • exploration__rich-object__indicator-trigger-treatments__sm.png (changed)
  • exploration__rich-object__pane-header__lg.png (changed)
  • exploration__rich-object__pane-header__md.png (changed)
  • exploration__rich-object__pane-header__sm.png (changed)
  • exploration__rich-object__section-ordering__lg.png (changed)
  • exploration__rich-object__section-ordering__md.png (changed)
  • exploration__rich-object__section-ordering__sm.png (changed)
  • studio__board-diagram__anatomy__lg.png (changed)
  • studio__board-diagram__anatomy__md.png (changed)
  • studio__board-diagram__anatomy__sm.png (changed)
  • studio__board-diagram__caps-largest-devkitc-v4__lg.png (changed)
  • studio__board-diagram__caps-largest-devkitc-v4__md.png (changed)
  • studio__board-diagram__caps-largest-devkitc-v4__sm.png (changed)
  • studio__board-diagram__caps-smallest-xiao__lg.png (changed)
  • studio__board-diagram__caps-smallest-xiao__md.png (changed)
  • studio__board-diagram__caps-smallest-xiao__sm.png (changed)
  • studio__board-diagram__caps-u12__lg.png (changed)
  • studio__board-diagram__caps-u12__md.png (changed)
  • studio__board-diagram__caps-u12__sm.png (changed)
  • studio__board-diagram__caps-u13__lg.png (changed)
  • studio__board-diagram__caps-u13__md.png (changed)
  • studio__board-diagram__caps-u13__sm.png (changed)
  • studio__board-diagram__catalog-page-macos__lg.png (changed)
  • studio__board-diagram__catalog-page-macos__md.png (changed)
  • studio__board-diagram__catalog-page-macos__sm.png (changed)
  • studio__board-diagram__catalog-thumbnails__lg.png (changed)
  • studio__board-diagram__catalog-thumbnails__md.png (changed)
  • studio__board-diagram__catalog-thumbnails__sm.png (changed)
  • studio__board-diagram__detail-page-dom-z-102__lg.png (changed)
  • studio__board-diagram__detail-page-dom-z-102__md.png (changed)
  • studio__board-diagram__detail-page-dom-z-102__sm.png (changed)
  • studio__board-diagram__firmware-detail-exact-fit__lg.png (changed)
  • studio__board-diagram__firmware-detail-exact-fit__md.png (changed)
  • studio__board-diagram__firmware-detail-exact-fit__sm.png (changed)
  • studio__board-diagram__firmware-detail-headroom-and-gaps__lg.png (changed)
  • studio__board-diagram__firmware-detail-headroom-and-gaps__md.png (changed)
  • studio__board-diagram__firmware-detail-headroom-and-gaps__sm.png (changed)
  • studio__board-diagram__firmware-detail-no-build__lg.png (changed)
  • studio__board-diagram__firmware-detail-no-build__md.png (changed)
  • studio__board-diagram__firmware-detail-no-build__sm.png (changed)
  • studio__board-diagram__plain-u12__lg.png (changed)
  • studio__board-diagram__plain-u12__md.png (changed)
  • studio__board-diagram__plain-u12__sm.png (changed)
  • studio__board-diagram__plain-u13__lg.png (changed)
  • studio__board-diagram__plain-u13__md.png (changed)
  • studio__board-diagram__plain-u13__sm.png (changed)
  • studio__board-diagram__swatch-confirmed__lg.png (changed)
  • studio__board-diagram__swatch-confirmed__md.png (changed)
  • studio__board-diagram__swatch-confirmed__sm.png (changed)
  • studio__board-diagram__swatch-u12__lg.png (changed)
  • studio__board-diagram__swatch-u12__md.png (changed)
  • studio__board-diagram__swatch-u12__sm.png (changed)
  • studio__board-diagram__swatch-u13__lg.png (changed)
  • studio__board-diagram__swatch-u13__md.png (changed)
  • studio__board-diagram__swatch-u13__sm.png (changed)
  • studio__board-diagram__wired-band-quinled__lg.png (changed)
  • studio__board-diagram__wired-band-quinled__md.png (changed)
  • studio__board-diagram__wired-band-quinled__sm.png (changed)
  • studio__board-diagram__wired-domraem-4ch__lg.png (changed)
  • studio__board-diagram__wired-domraem-4ch__md.png (changed)
  • studio__board-diagram__wired-domraem-4ch__sm.png (changed)
  • studio__board-diagram__wired-u12__lg.png (changed)
  • studio__board-diagram__wired-u12__md.png (changed)
  • studio__board-diagram__wired-u12__sm.png (changed)
  • studio__board-diagram__wired-u13__lg.png (changed)
  • studio__board-diagram__wired-u13__md.png (changed)
  • studio__board-diagram__wired-u13__sm.png (changed)
  • studio__board-editor__editor-loaded-xiao__lg.png (changed)
  • studio__board-editor__editor-loaded-xiao__md.png (changed)
  • studio__board-editor__editor-loaded-xiao__sm.png (changed)
  • studio__board-editor__lint-clean__lg.png (changed)
  • studio__board-editor__lint-clean__md.png (changed)
  • studio__board-editor__lint-clean__sm.png (changed)
  • studio__board-editor__lint-seeded-errors__lg.png (changed)
  • studio__board-editor__lint-seeded-errors__md.png (changed)
  • studio__board-editor__lint-seeded-errors__sm.png (changed)
  • studio__board-editor__pin-tables-dom-z-102__lg.png (changed)
  • studio__board-editor__pin-tables-dom-z-102__md.png (changed)
  • studio__board-editor__pin-tables-dom-z-102__sm.png (changed)
  • studio__board-editor__preview-pane-c6__lg.png (changed)
  • studio__board-editor__preview-pane-c6__md.png (changed)
  • studio__board-editor__preview-pane-c6__sm.png (changed)
  • studio__bus__bus-pane__channel-detail__lg.png (changed)
  • studio__bus__bus-pane__channel-detail__md.png (changed)
  • studio__bus__bus-pane__channel-detail__sm.png (changed)
  • studio__bus__bus-pane__empty__lg.png (changed)
  • studio__bus__bus-pane__empty__md.png (changed)
  • studio__bus__bus-pane__empty__sm.png (changed)
  • studio__bus__bus-pane__fyeah-sign__lg.png (changed)
  • studio__bus__bus-pane__fyeah-sign__md.png (changed)
  • studio__bus__bus-pane__fyeah-sign__sm.png (changed)
  • studio__home__home-gallery__connected-device-and-project-chip__lg.png (changed)
  • studio__home__home-gallery__connected-device-and-project-chip__md.png (changed)
  • studio__home__home-gallery__connected-device-and-project-chip__sm.png (changed)
  • studio__home__home-gallery__device-in-safe-mode__lg.png (changed)
  • studio__home__home-gallery__device-in-safe-mode__md.png (changed)
  • studio__home__home-gallery__device-in-safe-mode__sm.png (changed)
  • studio__home__home-gallery__first-run__lg.png (changed)
  • studio__home__home-gallery__first-run__md.png (changed)
  • studio__home__home-gallery__first-run__sm.png (changed)
  • studio__home__home-gallery__gallery-chooser-buttons__lg.png (changed)
  • studio__home__home-gallery__gallery-chooser-buttons__md.png (changed)
  • studio__home__home-gallery__gallery-chooser-buttons__sm.png (changed)
  • studio__home__home-gallery__live-thumb-states__lg.png (changed)
  • studio__home__home-gallery__live-thumb-states__md.png (changed)
  • studio__home__home-gallery__live-thumb-states__sm.png (changed)
  • studio__home__home-gallery__opening-a-project__lg.png (changed)
  • studio__home__home-gallery__opening-a-project__md.png (changed)
  • studio__home__home-gallery__opening-a-project__sm.png (changed)
  • studio__home__home-gallery__populated__lg.png (changed)
  • studio__home__home-gallery__populated__md.png (changed)
  • studio__home__home-gallery__populated__sm.png (changed)
  • studio__home__home-gallery__project-live-in-two-places__lg.png (changed)
  • studio__home__home-gallery__project-live-in-two-places__md.png (changed)
  • studio__home__home-gallery__project-live-in-two-places__sm.png (changed)
  • studio__home__home-gallery__project-open-in-another-tab__lg.png (changed)
  • studio__home__home-gallery__project-open-in-another-tab__md.png (changed)
  • studio__home__home-gallery__project-open-in-another-tab__sm.png (changed)
  • studio__home__home-gallery__roster-label-devices__lg.png (changed)
  • studio__home__home-gallery__roster-label-devices__md.png (changed)
  • studio__home__home-gallery__roster-label-devices__sm.png (changed)
  • studio__home__home-gallery__roster-label-open__lg.png (changed)
  • studio__home__home-gallery__roster-label-open__md.png (changed)
  • studio__home__home-gallery__roster-label-open__sm.png (changed)
  • studio__home__home-gallery__roster-label-running__lg.png (changed)
  • studio__home__home-gallery__roster-label-running__md.png (changed)
  • studio__home__home-gallery__roster-label-running__sm.png (changed)
  • studio__home__home-gallery__sim-and-live-device__lg.png (changed)
  • studio__home__home-gallery__sim-and-live-device__md.png (changed)
  • studio__home__home-gallery__sim-and-live-device__sm.png (changed)
  • studio__home__home-gallery__sim-and-offline-device__lg.png (changed)
  • studio__home__home-gallery__sim-and-offline-device__md.png (changed)
  • studio__home__home-gallery__sim-and-offline-device__sm.png (changed)
  • studio__home__home-gallery__sim-running-only__lg.png (changed)
  • studio__home__home-gallery__sim-running-only__md.png (changed)
  • studio__home__home-gallery__sim-running-only__sm.png (changed)
  • studio__home__home-gallery__store-unavailable-with-issue__lg.png (changed)
  • studio__home__home-gallery__store-unavailable-with-issue__md.png (changed)
  • studio__home__home-gallery__store-unavailable-with-issue__sm.png (changed)
  • studio__home__project-opening-frame__default__lg.png (changed)
  • studio__home__project-opening-frame__default__md.png (changed)
  • studio__home__project-opening-frame__default__sm.png (changed)
  • studio__layout__local-store-banner__storage-unavailable__lg.png (changed)
  • studio__layout__local-store-banner__storage-unavailable__md.png (changed)
  • studio__layout__local-store-banner__storage-unavailable__sm.png (changed)
  • studio__layout__studio-pane__all-slots__lg.png (changed)
  • studio__layout__studio-pane__all-slots__md.png (changed)
  • studio__layout__studio-pane__all-slots__sm.png (changed)
  • studio__layout__studio-pane__collapsed__lg.png (changed)
  • studio__layout__studio-pane__collapsed__md.png (changed)
  • studio__layout__studio-pane__collapsed__sm.png (changed)
  • studio__layout__studio-pane__header-only__lg.png (changed)
  • studio__layout__studio-pane__header-only__md.png (changed)
  • studio__layout__studio-pane__header-only__sm.png (changed)
  • studio__layout__studio-settings-popover__custom-local-server__lg.png (changed)
  • studio__layout__studio-settings-popover__custom-local-server__md.png (changed)
  • studio__layout__studio-settings-popover__custom-local-server__sm.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-blocked-by-cors__lg.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-blocked-by-cors__md.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-blocked-by-cors__sm.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-a-server__lg.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-a-server__md.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-a-server__sm.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-nothing__lg.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-nothing__md.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-found-nothing__sm.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-running__lg.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-running__md.png (changed)
  • studio__layout__studio-settings-popover__custom-scan-running__sm.png (changed)
  • studio__layout__studio-settings-popover__defaults-only__lg.png (changed)
  • studio__layout__studio-settings-popover__defaults-only__md.png (changed)
  • studio__layout__studio-settings-popover__defaults-only__sm.png (changed)
  • studio__layout__studio-settings-popover__host-provided__lg.png (changed)
  • studio__layout__studio-settings-popover__host-provided__md.png (changed)
  • studio__layout__studio-settings-popover__host-provided__sm.png (changed)
  • studio__layout__studio-settings-popover__model-custom-entry__lg.png (changed)
  • studio__layout__studio-settings-popover__model-custom-entry__md.png (changed)
  • studio__layout__studio-settings-popover__model-custom-entry__sm.png (changed)
  • studio__layout__studio-settings-popover__model-dropdown-populated__lg.png (changed)
  • studio__layout__studio-settings-popover__model-dropdown-populated__md.png (changed)
  • studio__layout__studio-settings-popover__model-dropdown-populated__sm.png (changed)
  • studio__layout__studio-settings-popover__model-fetch-error__lg.png (changed)
  • studio__layout__studio-settings-popover__model-fetch-error__md.png (changed)
  • studio__layout__studio-settings-popover__model-fetch-error__sm.png (changed)
  • studio__layout__studio-settings-popover__openai-needs-setup__lg.png (changed)
  • studio__layout__studio-settings-popover__openai-needs-setup__md.png (changed)
  • studio__layout__studio-settings-popover__openai-needs-setup__sm.png (changed)
  • studio__layout__studio-settings-popover__openrouter-connected__lg.png (changed)
  • studio__layout__studio-settings-popover__openrouter-connected__md.png (changed)
  • studio__layout__studio-settings-popover__openrouter-connected__sm.png (changed)
  • studio__layout__studio-settings-popover__openrouter-needs-connect__lg.png (changed)
  • studio__layout__studio-settings-popover__openrouter-needs-connect__md.png (changed)
  • studio__layout__studio-settings-popover__openrouter-needs-connect__sm.png (changed)
  • studio__layout__studio-settings-popover__user-overrides__lg.png (changed)
  • studio__layout__studio-settings-popover__user-overrides__md.png (changed)
  • studio__layout__studio-settings-popover__user-overrides__sm.png (changed)
  • studio__layout__version-badge__dev-fallback__lg.png (changed)
  • studio__layout__version-badge__dev-fallback__md.png (changed)
  • studio__layout__version-badge__dev-fallback__sm.png (changed)
  • studio__layout__version-badge__loaded__lg.png (changed)
  • studio__layout__version-badge__loaded__md.png (changed)
  • studio__layout__version-badge__loaded__sm.png (changed)
  • studio__mapping-editor__editor-fit-preview__lg.png (changed)
  • studio__mapping-editor__editor-fit-preview__md.png (changed)
  • studio__mapping-editor__editor-fit-preview__sm.png (changed)
  • studio__mapping-editor__editor-group-selected__lg.png (changed)
  • studio__mapping-editor__editor-group-selected__md.png (changed)
  • studio__mapping-editor__editor-group-selected__sm.png (changed)
  • studio__mapping-editor__editor-panel-wiring__lg.png (changed)
  • studio__mapping-editor__editor-panel-wiring__md.png (changed)
  • studio__mapping-editor__editor-panel-wiring__sm.png (changed)
  • studio__mapping-editor__editor-path-draft__lg.png (changed)
  • studio__mapping-editor__editor-path-draft__md.png (changed)
  • studio__mapping-editor__editor-path-draft__sm.png (changed)
  • studio__mapping-editor__editor-selection-popover__lg.png (changed)
  • studio__mapping-editor__editor-selection-popover__md.png (changed)
  • studio__mapping-editor__editor-selection-popover__sm.png (changed)
  • studio__mapping-editor__editor-universes__lg.png (changed)
  • studio__mapping-editor__editor-universes__md.png (changed)
  • studio__mapping-editor__editor-universes__sm.png (changed)
  • studio__node__agent-chat__history-empty__lg.png (changed)
  • studio__node__agent-chat__history-empty__md.png (changed)
  • studio__node__agent-chat__history-empty__sm.png (changed)
  • studio__node__agent-chat__history-reverted__lg.png (changed)
  • studio__node__agent-chat__history-reverted__md.png (changed)
  • studio__node__agent-chat__history-reverted__sm.png (changed)
  • studio__node__agent-chat__history-with-thumbs__lg.png (changed)
  • studio__node__agent-chat__history-with-thumbs__md.png (changed)
  • studio__node__agent-chat__history-with-thumbs__sm.png (changed)
  • studio__node__agent-chat__idle-with-transcript__lg.png (changed)
  • studio__node__agent-chat__idle-with-transcript__md.png (changed)
  • studio__node__agent-chat__idle-with-transcript__sm.png (changed)
  • studio__node__agent-chat__markdown-reply__lg.png (changed)
  • studio__node__agent-chat__markdown-reply__md.png (changed)
  • studio__node__agent-chat__markdown-reply__sm.png (changed)
  • studio__node__agent-chat__model-chip-fallback-label__lg.png (changed)
  • studio__node__agent-chat__model-chip-fallback-label__md.png (changed)
  • studio__node__agent-chat__model-chip-fallback-label__sm.png (changed)
  • studio__node__agent-chat__model-chip-populated__lg.png (changed)
  • studio__node__agent-chat__model-chip-populated__md.png (changed)
  • studio__node__agent-chat__model-chip-populated__sm.png (changed)
  • studio__node__agent-chat__needs-key-custom__lg.png (changed)
  • studio__node__agent-chat__needs-key-custom__md.png (changed)
  • studio__node__agent-chat__needs-key-custom__sm.png (changed)
  • studio__node__agent-chat__needs-key-openai__lg.png (changed)
  • studio__node__agent-chat__needs-key-openai__md.png (changed)
  • studio__node__agent-chat__needs-key-openai__sm.png (changed)
  • studio__node__agent-chat__needs-key__lg.png (changed)
  • studio__node__agent-chat__needs-key__md.png (changed)
  • studio__node__agent-chat__needs-key__sm.png (changed)
  • studio__node__agent-chat__provider-error__lg.png (changed)
  • studio__node__agent-chat__provider-error__md.png (changed)
  • studio__node__agent-chat__provider-error__sm.png (changed)
  • studio__node__agent-chat__run-truncated__lg.png (changed)
  • studio__node__agent-chat__run-truncated__md.png (changed)
  • studio__node__agent-chat__run-truncated__sm.png (changed)
  • studio__node__agent-chat__streaming__lg.png (changed)
  • studio__node__agent-chat__streaming__md.png (changed)
  • studio__node__agent-chat__streaming__sm.png (changed)
  • studio__node__agent-chat__tabs-code-active__lg.png (changed)
  • studio__node__agent-chat__tabs-code-active__md.png (changed)
  • studio__node__agent-chat__tabs-code-active__sm.png (changed)
  • studio__node__agent-chat__tabs-dirty-from-agent__lg.png (changed)
  • studio__node__agent-chat__tabs-dirty-from-agent__md.png (changed)
  • studio__node__agent-chat__tabs-dirty-from-agent__sm.png (changed)
  • studio__node__agent-chat__thinking-collapsed__lg.png (changed)
  • studio__node__agent-chat__thinking-collapsed__md.png (changed)
  • studio__node__agent-chat__thinking-collapsed__sm.png (changed)
  • studio__node__agent-chat__thinking-streaming__lg.png (changed)
  • studio__node__agent-chat__thinking-streaming__md.png (changed)
  • studio__node__agent-chat__thinking-streaming__sm.png (changed)
  • studio__node__agent-chat__tool-row-expanded__lg.png (changed)
  • studio__node__agent-chat__tool-row-expanded__md.png (changed)
  • studio__node__agent-chat__tool-row-expanded__sm.png (changed)
  • studio__node__agent-chat__tool-row-inline-thumb__lg.png (changed)
  • studio__node__agent-chat__tool-row-inline-thumb__md.png (changed)
  • studio__node__agent-chat__tool-row-inline-thumb__sm.png (changed)
  • studio__node__agent-chat__tool-running-awaiting-engine__lg.png (changed)
  • studio__node__agent-chat__tool-running-awaiting-engine__md.png (changed)
  • studio__node__agent-chat__tool-running-awaiting-engine__sm.png (changed)
  • studio__node__agent-chat__tool-running-with-phase__lg.png (changed)
  • studio__node__agent-chat__tool-running-with-phase__md.png (changed)
  • studio__node__agent-chat__tool-running-with-phase__sm.png (changed)
  • studio__node__asset-editor__apply-failed__lg.png (changed)
  • studio__node__asset-editor__apply-failed__md.png (changed)
  • studio__node__asset-editor__apply-failed__sm.png (changed)
  • studio__node__asset-editor__applying__lg.png (changed)
  • studio__node__asset-editor__applying__md.png (changed)
  • studio__node__asset-editor__applying__sm.png (changed)
  • studio__node__asset-editor__binary-read-only__lg.png (changed)
  • studio__node__asset-editor__binary-read-only__md.png (changed)
  • studio__node__asset-editor__binary-read-only__sm.png (changed)
  • studio__node__asset-editor__compile-error-no-location__lg.png (changed)
  • studio__node__asset-editor__compile-error-no-location__md.png (changed)
  • studio__node__asset-editor__compile-error-no-location__sm.png (changed)
  • studio__node__asset-editor__compile-error__lg.png (changed)
  • studio__node__asset-editor__compile-error__md.png (changed)
  • studio__node__asset-editor__compile-error__sm.png (changed)
  • studio__node__asset-editor__saved__lg.png (changed)
  • studio__node__asset-editor__saved__md.png (changed)
  • studio__node__asset-editor__saved__sm.png (changed)
  • studio__node__asset-editor__unsaved-non-mac__lg.png (changed)
  • studio__node__asset-editor__unsaved-non-mac__md.png (changed)
  • studio__node__asset-editor__unsaved-non-mac__sm.png (changed)
  • studio__node__asset-editor__unsaved__lg.png (changed)
  • studio__node__asset-editor__unsaved__md.png (changed)
  • studio__node__asset-editor__unsaved__sm.png (changed)
  • studio__node__binding-authoring__authored__lg.png (changed)
  • studio__node__binding-authoring__authored__md.png (changed)
  • studio__node__binding-authoring__authored__sm.png (changed)
  • studio__node__binding-authoring__default-bound__lg.png (changed)
  • studio__node__binding-authoring__default-bound__md.png (changed)
  • studio__node__binding-authoring__default-bound__sm.png (changed)
  • studio__node__binding-authoring__picker__lg.png (changed)
  • studio__node__binding-authoring__picker__md.png (changed)
  • studio__node__binding-authoring__picker__sm.png (changed)
  • studio__node__binding-authoring__unbound__lg.png (changed)
  • studio__node__binding-authoring__unbound__md.png (changed)
  • studio__node__binding-authoring__unbound__sm.png (changed)
  • studio__node__config-slot-row__all-states__lg.png (changed)
  • studio__node__config-slot-row__all-states__md.png (changed)
  • studio__node__config-slot-row__all-states__sm.png (changed)
  • studio__node__config-slot-row__bound-default__lg.png (changed)
  • studio__node__config-slot-row__bound-default__md.png (changed)
  • studio__node__config-slot-row__bound-default__sm.png (changed)
  • studio__node__config-slot-row__bound-value__lg.png (changed)
  • studio__node__config-slot-row__bound-value__md.png (changed)
  • studio__node__config-slot-row__bound-value__sm.png (changed)
  • studio__node__config-slot-row__direct-value__lg.png (changed)
  • studio__node__config-slot-row__direct-value__md.png (changed)
  • studio__node__config-slot-row__direct-value__sm.png (changed)
  • studio__node__config-slot-row__editable-clean-controls__lg.png (changed)
  • studio__node__config-slot-row__editable-clean-controls__md.png (changed)
  • studio__node__config-slot-row__editable-clean-controls__sm.png (changed)
  • studio__node__config-slot-row__editable-matrix-cells__lg.png (changed)
  • studio__node__config-slot-row__editable-matrix-cells__md.png (changed)
  • studio__node__config-slot-row__editable-matrix-cells__sm.png (changed)
  • studio__node__config-slot-row__editable-scalar-inputs__lg.png (changed)
  • studio__node__config-slot-row__editable-scalar-inputs__md.png (changed)
  • studio__node__config-slot-row__editable-scalar-inputs__sm.png (changed)
  • studio__node__config-slot-row__editable-vector-grids__lg.png (changed)
  • studio__node__config-slot-row__editable-vector-grids__md.png (changed)
  • studio__node__config-slot-row__editable-vector-grids__sm.png (changed)
  • studio__node__config-slot-row__edited-value__lg.png (changed)
  • studio__node__config-slot-row__edited-value__md.png (changed)
  • studio__node__config-slot-row__edited-value__sm.png (changed)
  • studio__node__config-slot-row__enum-variant-switched__lg.png (changed)
  • studio__node__config-slot-row__enum-variant-switched__md.png (changed)
  • studio__node__config-slot-row__enum-variant-switched__sm.png (changed)
  • studio__node__config-slot-row__info-popup__lg.png (changed)
  • studio__node__config-slot-row__info-popup__md.png (changed)
  • studio__node__config-slot-row__info-popup__sm.png (changed)
  • studio__node__config-slot-row__invalid-value__lg.png (changed)
  • studio__node__config-slot-row__invalid-value__md.png (changed)
  • studio__node__config-slot-row__invalid-value__sm.png (changed)
  • studio__node__config-slot-row__live-chrome__lg.png (changed)
  • studio__node__config-slot-row__live-chrome__md.png (changed)
  • studio__node__config-slot-row__live-chrome__sm.png (changed)
  • studio__node__config-slot-row__live-detail-popup__lg.png (changed)
  • studio__node__config-slot-row__live-detail-popup__md.png (changed)
  • studio__node__config-slot-row__live-detail-popup__sm.png (changed)
  • studio__node__config-slot-row__map-add-entry-open__lg.png (changed)
  • studio__node__config-slot-row__map-add-entry-open__md.png (changed)
  • studio__node__config-slot-row__map-add-entry-open__sm.png (changed)
  • studio__node__config-slot-row__map-add-immediate__lg.png (changed)
  • studio__node__config-slot-row__map-add-immediate__md.png (changed)
  • studio__node__config-slot-row__map-add-immediate__sm.png (changed)
  • studio__node__config-slot-row__map-add-string-key__lg.png (changed)
  • studio__node__config-slot-row__map-add-string-key__md.png (changed)
  • studio__node__config-slot-row__map-add-string-key__sm.png (changed)
  • studio__node__config-slot-row__map-added-entry-dirty__lg.png (changed)
  • studio__node__config-slot-row__map-added-entry-dirty__md.png (changed)
  • studio__node__config-slot-row__map-added-entry-dirty__sm.png (changed)
  • studio__node__config-slot-row__map-entry-key-edit-open__lg.png (changed)
  • studio__node__config-slot-row__map-entry-key-edit-open__md.png (changed)
  • studio__node__config-slot-row__map-entry-key-edit-open__sm.png (changed)
  • studio__node__config-slot-row__map-move-rejected-occupied__lg.png (changed)
  • studio__node__config-slot-row__map-move-rejected-occupied__md.png (changed)
  • studio__node__config-slot-row__map-move-rejected-occupied__sm.png (changed)
  • studio__node__config-slot-row__map-removed-entry-parent-dirty__lg.png (changed)
  • studio__node__config-slot-row__map-removed-entry-parent-dirty__md.png (changed)
  • studio__node__config-slot-row__map-removed-entry-parent-dirty__sm.png (changed)
  • studio__node__config-slot-row__option-set-and-clear__lg.png (changed)
  • studio__node__config-slot-row__option-set-and-clear__md.png (changed)
  • studio__node__config-slot-row__option-set-and-clear__sm.png (changed)
  • studio__node__config-slot-row__optional-record-included__lg.png (changed)
  • studio__node__config-slot-row__optional-record-included__md.png (changed)
  • studio__node__config-slot-row__optional-record-included__sm.png (changed)
  • studio__node__config-slot-row__optional-scalar-excluded__lg.png (changed)
  • studio__node__config-slot-row__optional-scalar-excluded__md.png (changed)
  • studio__node__config-slot-row__optional-scalar-excluded__sm.png (changed)
  • studio__node__config-slot-row__optional-scalar-included__lg.png (changed)
  • studio__node__config-slot-row__optional-scalar-included__md.png (changed)
  • studio__node__config-slot-row__optional-scalar-included__sm.png (changed)
  • studio__node__config-slot-row__published-popup__lg.png (changed)
  • studio__node__config-slot-row__published-popup__md.png (changed)
  • studio__node__config-slot-row__published-popup__sm.png (changed)
  • studio__node__config-slot-row__published-value__lg.png (changed)
  • studio__node__config-slot-row__published-value__md.png (changed)
  • studio__node__config-slot-row__published-value__sm.png (changed)
  • studio__node__config-slot-row__record-row__lg.png (changed)
  • studio__node__config-slot-row__record-row__md.png (changed)
  • studio__node__config-slot-row__record-row__sm.png (changed)
  • studio__node__config-slot-row__rejected-edit__lg.png (changed)
  • studio__node__config-slot-row__rejected-edit__md.png (changed)
  • studio__node__config-slot-row__rejected-edit__sm.png (changed)
  • studio__node__config-slot-row__scalar-input-states__lg.png (changed)
  • studio__node__config-slot-row__scalar-input-states__md.png (changed)
  • studio__node__config-slot-row__scalar-input-states__sm.png (changed)
  • studio__node__config-slot-row__special-editor-rows__lg.png (changed)
  • studio__node__config-slot-row__special-editor-rows__md.png (changed)
  • studio__node__config-slot-row__special-editor-rows__sm.png (changed)
  • studio__node__config-slot-row__special-editor-states__lg.png (changed)
  • studio__node__config-slot-row__special-editor-states__md.png (changed)
  • studio__node__config-slot-row__special-editor-states__sm.png (changed)
  • studio__node__config-slot-row__unsaved-chrome__lg.png (changed)
  • studio__node__config-slot-row__unsaved-chrome__md.png (changed)
  • studio__node__config-slot-row__unsaved-chrome__sm.png (changed)
  • studio__node__config-slot-row__unsaved-detail-popup__lg.png (changed)
  • studio__node__config-slot-row__unsaved-detail-popup__md.png (changed)
  • studio__node__config-slot-row__unsaved-detail-popup__sm.png (changed)
  • studio__node__config-slot-row__unset-value__lg.png (changed)
  • studio__node__config-slot-row__unset-value__md.png (changed)
  • studio__node__config-slot-row__unset-value__sm.png (changed)
  • studio__node__config-slot-row__write-failed__lg.png (changed)
  • studio__node__config-slot-row__write-failed__md.png (changed)
  • studio__node__config-slot-row__write-failed__sm.png (changed)
  • studio__node__fixture-face__advanced-open__lg.png (changed)
  • studio__node__fixture-face__advanced-open__md.png (changed)
  • studio__node__fixture-face__advanced-open__sm.png (changed)
  • studio__node__fixture-face__button-rings-numbered__lg.png (changed)
  • studio__node__fixture-face__button-rings-numbered__md.png (changed)
  • studio__node__fixture-face__button-rings-numbered__sm.png (changed)
  • studio__node__fixture-face__default__lg.png (changed)
  • studio__node__fixture-face__default__md.png (changed)
  • studio__node__fixture-face__default__sm.png (changed)
  • studio__node__fixture-face__mapping-edit-mode__lg.png (changed)
  • studio__node__fixture-face__mapping-edit-mode__md.png (changed)
  • studio__node__fixture-face__mapping-edit-mode__sm.png (changed)
  • studio__node__fixture-face__panel-universes-view__lg.png (changed)
  • studio__node__fixture-face__panel-universes-view__md.png (changed)
  • studio__node__fixture-face__panel-universes-view__sm.png (changed)
  • studio__node__fixture-face__panel-wiring-view__lg.png (changed)
  • studio__node__fixture-face__panel-wiring-view__md.png (changed)
  • studio__node__fixture-face__panel-wiring-view__sm.png (changed)
  • studio__node__fixture-face__power-limiting__lg.png (changed)
  • studio__node__fixture-face__power-limiting__md.png (changed)
  • studio__node__fixture-face__power-limiting__sm.png (changed)
  • studio__node__fixture-face__power-opted-out__lg.png (changed)
  • studio__node__fixture-face__power-opted-out__md.png (changed)
  • studio__node__fixture-face__power-opted-out__sm.png (changed)
  • studio__node__fixture-face__power-within-budget__lg.png (changed)
  • studio__node__fixture-face__power-within-budget__md.png (changed)
  • studio__node__fixture-face__power-within-budget__sm.png (changed)
  • studio__node__fixture-face__sign-chain-view__lg.png (changed)
  • studio__node__fixture-face__sign-chain-view__md.png (changed)
  • studio__node__fixture-face__sign-chain-view__sm.png (changed)
  • studio__node__h-fader-field__bound__lg.png (changed)
  • studio__node__h-fader-field__bound__md.png (changed)
  • studio__node__h-fader-field__bound__sm.png (changed)
  • studio__node__h-fader-field__default__lg.png (changed)
  • studio__node__h-fader-field__default__md.png (changed)
  • studio__node__h-fader-field__default__sm.png (changed)
  • studio__node__h-fader-field__detail-open__lg.png (changed)
  • studio__node__h-fader-field__detail-open__md.png (changed)
  • studio__node__h-fader-field__detail-open__sm.png (changed)
  • studio__node__h-fader-field__dirty__lg.png (changed)
  • studio__node__h-fader-field__dirty__md.png (changed)
  • studio__node__h-fader-field__dirty__sm.png (changed)
  • studio__node__h-fader-field__live__lg.png (changed)
  • studio__node__h-fader-field__live__md.png (changed)
  • studio__node__h-fader-field__live__sm.png (changed)
  • studio__node__knob-field__bound-live__lg.png (changed)
  • studio__node__knob-field__bound-live__md.png (changed)
  • studio__node__knob-field__bound-live__sm.png (changed)
  • studio__node__knob-field__bound__lg.png (changed)
  • studio__node__knob-field__bound__md.png (changed)
  • studio__node__knob-field__bound__sm.png (changed)
  • studio__node__knob-field__default__lg.png (changed)
  • studio__node__knob-field__default__md.png (changed)
  • studio__node__knob-field__default__sm.png (changed)
  • studio__node__knob-field__detail-open__lg.png (changed)
  • studio__node__knob-field__detail-open__md.png (changed)
  • studio__node__knob-field__detail-open__sm.png (changed)
  • studio__node__knob-field__dirty__lg.png (changed)
  • studio__node__knob-field__dirty__md.png (changed)
  • studio__node__knob-field__dirty__sm.png (changed)
  • studio__node__knob-field__label-states__lg.png (changed)
  • studio__node__knob-field__label-states__md.png (changed)
  • studio__node__knob-field__label-states__sm.png (changed)
  • studio__node__knob-field__live__lg.png (changed)
  • studio__node__knob-field__live__md.png (changed)
  • studio__node__knob-field__live__sm.png (changed)
  • studio__node__knob-field__stepped-vs-continuous__lg.png (changed)
  • studio__node__knob-field__stepped-vs-continuous__md.png (changed)
  • studio__node__knob-field__stepped-vs-continuous__sm.png (changed)
  • studio__node__knob-field__stepped__lg.png (changed)
  • studio__node__knob-field__stepped__md.png (changed)
  • studio__node__knob-field__stepped__sm.png (changed)
  • studio__node__knob-field__value-sweep__lg.png (changed)
  • studio__node__knob-field__value-sweep__md.png (changed)
  • studio__node__knob-field__value-sweep__sm.png (changed)
  • studio__node__node__collapsed-node-pane__lg.png (changed)
  • studio__node__node__collapsed-node-pane__md.png (changed)
  • studio__node__node__collapsed-node-pane__sm.png (changed)
  • studio__node__node__dirty-detail-popup__lg.png (changed)
  • studio__node__node__dirty-detail-popup__md.png (changed)
  • studio__node__node__dirty-detail-popup__sm.png (changed)
  • studio__node__node__dirty-failed-header-tint__lg.png (changed)
  • studio__node__node__dirty-failed-header-tint__md.png (changed)
  • studio__node__node__dirty-failed-header-tint__sm.png (changed)
  • studio__node__node__dirty-failed-surface-tint__lg.png (changed)
  • studio__node__node__dirty-failed-surface-tint__md.png (changed)
  • studio__node__node__dirty-failed-surface-tint__sm.png (changed)
  • studio__node__node__dirty-live-header-tint__lg.png (changed)
  • studio__node__node__dirty-live-header-tint__md.png (changed)
  • studio__node__node__dirty-live-header-tint__sm.png (changed)
  • studio__node__node__dirty-live-surface-tint__lg.png (changed)
  • studio__node__node__dirty-live-surface-tint__md.png (changed)
  • studio__node__node__dirty-live-surface-tint__sm.png (changed)
  • studio__node__node__dirty-unsaved-header-tint__lg.png (changed)
  • studio__node__node__dirty-unsaved-header-tint__md.png (changed)
  • studio__node__node__dirty-unsaved-header-tint__sm.png (changed)
  • studio__node__node__dirty-unsaved-surface-tint__lg.png (changed)
  • studio__node__node__dirty-unsaved-surface-tint__md.png (changed)
  • studio__node__node__dirty-unsaved-surface-tint__sm.png (changed)
  • studio__node__node__error-detail-popup__lg.png (changed)
  • studio__node__node__error-detail-popup__md.png (changed)
  • studio__node__node__error-detail-popup__sm.png (changed)
  • studio__node__node__error-node__lg.png (changed)
  • studio__node__node__error-node__md.png (changed)
  • studio__node__node__error-node__sm.png (changed)
  • studio__node__node__header-delete-action__lg.png (changed)
  • studio__node__node__header-delete-action__md.png (changed)
  • studio__node__node__header-delete-action__sm.png (changed)
  • studio__node__node__nested-dirty-children__lg.png (changed)
  • studio__node__node__nested-dirty-children__md.png (changed)
  • studio__node__node__nested-dirty-children__sm.png (changed)
  • studio__node__node__node-pane__lg.png (changed)
  • studio__node__node__node-pane__md.png (changed)
  • studio__node__node__node-pane__sm.png (changed)
  • studio__node__node__unsupported-detail-popup__lg.png (changed)
  • studio__node__node__unsupported-detail-popup__md.png (changed)
  • studio__node__node__unsupported-detail-popup__sm.png (changed)
  • studio__node__node__unsupported-node__lg.png (changed)
  • studio__node__node__unsupported-node__md.png (changed)
  • studio__node__node__unsupported-node__sm.png (changed)
  • studio__node__playlist-face__active-child-below__lg.png (changed)
  • studio__node__playlist-face__active-child-below__md.png (changed)
  • studio__node__playlist-face__active-child-below__sm.png (changed)
  • studio__node__playlist-face__empty__lg.png (changed)
  • studio__node__playlist-face__empty__md.png (changed)
  • studio__node__playlist-face__empty__sm.png (changed)
  • studio__node__playlist-face__strip-with-add-chip__lg.png (changed)
  • studio__node__playlist-face__strip-with-add-chip__md.png (changed)
  • studio__node__playlist-face__strip-with-add-chip__sm.png (changed)
  • studio__node__playlist-face__strip__lg.png (changed)
  • studio__node__playlist-face__strip__md.png (changed)
  • studio__node__playlist-face__strip__sm.png (changed)
  • studio__node__produced-product__control-error__lg.png (changed)
  • studio__node__produced-product__control-error__md.png (changed)
  • studio__node__produced-product__control-error__sm.png (changed)
  • studio__node__produced-product__control-loaded__lg.png (changed)
  • studio__node__produced-product__control-loaded__md.png (changed)
  • studio__node__produced-product__control-loaded__sm.png (changed)
  • studio__node__produced-product__control-paused__lg.png (changed)
  • studio__node__produced-product__control-paused__md.png (changed)
  • studio__node__produced-product__control-paused__sm.png (changed)
  • studio__node__produced-product__control-pending__lg.png (changed)
  • studio__node__produced-product__control-pending__md.png (changed)
  • studio__node__produced-product__control-pending__sm.png (changed)
  • studio__node__produced-product__control-unsupported__lg.png (changed)
  • studio__node__produced-product__control-unsupported__md.png (changed)
  • studio__node__produced-product__control-unsupported__sm.png (changed)
  • studio__node__produced-product__control-untracked__lg.png (changed)
  • studio__node__produced-product__control-untracked__md.png (changed)
  • studio__node__produced-product__control-untracked__sm.png (changed)
  • studio__node__produced-product__detail-popup__lg.png (changed)
  • studio__node__produced-product__detail-popup__md.png (changed)
  • studio__node__produced-product__detail-popup__sm.png (changed)
  • studio__node__produced-product__empty-product__lg.png (changed)
  • studio__node__produced-product__empty-product__md.png (changed)
  • studio__node__produced-product__empty-product__sm.png (changed)
  • studio__node__produced-product__gallery__lg.png (changed)
  • studio__node__produced-product__gallery__md.png (changed)
  • studio__node__produced-product__gallery__sm.png (changed)
  • studio__node__produced-product__visual-error__lg.png (changed)
  • studio__node__produced-product__visual-error__md.png (changed)
  • studio__node__produced-product__visual-error__sm.png (changed)
  • studio__node__produced-product__visual-loaded__lg.png (changed)
  • studio__node__produced-product__visual-loaded__md.png (changed)
  • studio__node__produced-product__visual-loaded__sm.png (changed)
  • studio__node__produced-product__visual-paused__lg.png (changed)
  • studio__node__produced-product__visual-paused__md.png (changed)
  • studio__node__produced-product__visual-paused__sm.png (changed)
  • studio__node__produced-product__visual-pending__lg.png (changed)
  • studio__node__produced-product__visual-pending__md.png (changed)
  • studio__node__produced-product__visual-pending__sm.png (changed)
  • studio__node__produced-product__visual-untracked__lg.png (changed)
  • studio__node__produced-product__visual-untracked__md.png (changed)
  • studio__node__produced-product__visual-untracked__sm.png (changed)
  • studio__node__produced-value__bound-stat__lg.png (changed)
  • studio__node__produced-value__bound-stat__md.png (changed)
  • studio__node__produced-value__bound-stat__sm.png (changed)
  • studio__node__produced-value__detail-popup__lg.png (changed)
  • studio__node__produced-value__detail-popup__md.png (changed)
  • studio__node__produced-value__detail-popup__sm.png (changed)
  • studio__node__produced-value__gallery__lg.png (changed)
  • studio__node__produced-value__gallery__md.png (changed)
  • studio__node__produced-value__gallery__sm.png (changed)
  • studio__node__produced-value__numeric-stat__lg.png (changed)
  • studio__node__produced-value__numeric-stat__md.png (changed)
  • studio__node__produced-value__numeric-stat__sm.png (changed)
  • studio__node__shader-face__advanced-open__lg.png (changed)
  • studio__node__shader-face__advanced-open__md.png (changed)
  • studio__node__shader-face__advanced-open__sm.png (changed)
  • studio__node__shader-face__agent-collapsed__lg.png (changed)
  • studio__node__shader-face__agent-collapsed__md.png (changed)
  • studio__node__shader-face__agent-collapsed__sm.png (changed)
  • studio__node__shader-face__bound-knob__lg.png (changed)
  • studio__node__shader-face__bound-knob__md.png (changed)
  • studio__node__shader-face__bound-knob__sm.png (changed)
  • studio__node__shader-face__chat-streaming__lg.png (changed)
  • studio__node__shader-face__chat-streaming__md.png (changed)
  • studio__node__shader-face__chat-streaming__sm.png (changed)
  • studio__node__shader-face__code-drawer-open__lg.png (changed)
  • studio__node__shader-face__code-drawer-open__md.png (changed)
  • studio__node__shader-face__code-drawer-open__sm.png (changed)
  • studio__node__shader-face__idle__lg.png (changed)
  • studio__node__shader-face__idle__md.png (changed)
  • studio__node__shader-face__idle__sm.png (changed)
  • studio__node__slot-option-presence__candidates-side-by-side__lg.png (changed)
  • studio__node__slot-option-presence__candidates-side-by-side__md.png (changed)
  • studio__node__slot-option-presence__candidates-side-by-side__sm.png (changed)
  • studio__node__slot-option-presence__checkbox-square__lg.png (changed)
  • studio__node__slot-option-presence__checkbox-square__md.png (changed)
  • studio__node__slot-option-presence__checkbox-square__sm.png (changed)
  • studio__node__slot-option-presence__child-row__lg.png (changed)
  • studio__node__slot-option-presence__child-row__md.png (changed)
  • studio__node__slot-option-presence__child-row__sm.png (changed)
  • studio__node__slot-option-presence__presence-in-row__lg.png (changed)
  • studio__node__slot-option-presence__presence-in-row__md.png (changed)
  • studio__node__slot-option-presence__presence-in-row__sm.png (changed)
  • studio__node__slot-option-presence__width-tiers__lg.png (changed)
  • studio__node__slot-option-presence__width-tiers__md.png (changed)
  • studio__node__slot-option-presence__width-tiers__sm.png (changed)
  • studio__node__slot-record-editor__asset-editor__lg.png (changed)
  • studio__node__slot-record-editor__asset-editor__md.png (changed)
  • studio__node__slot-record-editor__asset-editor__sm.png (changed)
  • studio__node__slot-record-editor__gallery__lg.png (changed)
  • studio__node__slot-record-editor__gallery__md.png (changed)
  • studio__node__slot-record-editor__gallery__sm.png (changed)
  • studio__node__slot-record-editor__nested-record__lg.png (changed)
  • studio__node__slot-record-editor__nested-record__md.png (changed)
  • studio__node__slot-record-editor__nested-record__sm.png (changed)
  • studio__node__slot-shape-display__gallery__lg.png (changed)
  • studio__node__slot-shape-display__gallery__md.png (changed)
  • studio__node__slot-shape-display__gallery__sm.png (changed)
  • studio__node__slot-shape-display__record-shape__lg.png (changed)
  • studio__node__slot-shape-display__record-shape__md.png (changed)
  • studio__node__slot-shape-display__record-shape__sm.png (changed)
  • studio__node__slot-shape-display__verbose-record__lg.png (changed)
  • studio__node__slot-shape-display__verbose-record__md.png (changed)
  • studio__node__slot-shape-display__verbose-record__sm.png (changed)
  • studio__node__slot-unit-display__gallery__lg.png (changed)
  • studio__node__slot-unit-display__gallery__md.png (changed)
  • studio__node__slot-unit-display__gallery__sm.png (changed)
  • studio__node__slot-unit-display__suffix-spacing__lg.png (changed)
  • studio__node__slot-unit-display__suffix-spacing__md.png (changed)
  • studio__node__slot-unit-display__suffix-spacing__sm.png (changed)
  • studio__node__slot-value-editor__affine2d-field__lg.png (changed)
  • studio__node__slot-value-editor__affine2d-field__md.png (changed)
  • studio__node__slot-value-editor__affine2d-field__sm.png (changed)
  • studio__node__slot-value-editor__bool-field__lg.png (changed)
  • studio__node__slot-value-editor__bool-field__md.png (changed)
  • studio__node__slot-value-editor__bool-field__sm.png (changed)
  • studio__node__slot-value-editor__dimensions-field__lg.png (changed)
  • studio__node__slot-value-editor__dimensions-field__md.png (changed)
  • studio__node__slot-value-editor__dimensions-field__sm.png (changed)
  • studio__node__slot-value-editor__dropdown-field__lg.png (changed)
  • studio__node__slot-value-editor__dropdown-field__md.png (changed)
  • studio__node__slot-value-editor__dropdown-field__sm.png (changed)
  • studio__node__slot-value-editor__float-field__lg.png (changed)
  • studio__node__slot-value-editor__float-field__md.png (changed)
  • studio__node__slot-value-editor__float-field__sm.png (changed)
  • studio__node__slot-value-editor__gallery__lg.png (changed)
  • studio__node__slot-value-editor__gallery__md.png (changed)
  • studio__node__slot-value-editor__gallery__sm.png (changed)
  • studio__node__slot-value-editor__int-field__lg.png (changed)
  • studio__node__slot-value-editor__int-field__md.png (changed)
  • studio__node__slot-value-editor__int-field__sm.png (changed)
  • studio__node__slot-value-editor__invalid-field__lg.png (changed)
  • studio__node__slot-value-editor__invalid-field__md.png (changed)
  • studio__node__slot-value-editor__invalid-field__sm.png (changed)
  • studio__node__slot-value-editor__slider-field__lg.png (changed)
  • studio__node__slot-value-editor__slider-field__md.png (changed)
  • studio__node__slot-value-editor__slider-field__sm.png (changed)
  • studio__node__slot-value-editor__slider-raw-input-popup__lg.png (changed)
  • studio__node__slot-value-editor__slider-raw-input-popup__md.png (changed)
  • studio__node__slot-value-editor__slider-raw-input-popup__sm.png (changed)
  • studio__node__slot-value-editor__string-field__lg.png (changed)
  • studio__node__slot-value-editor__string-field__md.png (changed)
  • studio__node__slot-value-editor__string-field__sm.png (changed)
  • studio__node__slot-value-editor__uint-field__lg.png (changed)
  • studio__node__slot-value-editor__uint-field__md.png (changed)
  • studio__node__slot-value-editor__uint-field__sm.png (changed)
  • studio__node__slot-value-editor__vec2-field__lg.png (changed)
  • studio__node__slot-value-editor__vec2-field__md.png (changed)
  • studio__node__slot-value-editor__vec2-field__sm.png (changed)
  • studio__node__slot-value-editor__vec3-field__lg.png (changed)
  • studio__node__slot-value-editor__vec3-field__md.png (changed)
  • studio__node__slot-value-editor__vec3-field__sm.png (changed)
  • studio__node__slot-value-editor__xy-field__lg.png (changed)
  • studio__node__slot-value-editor__xy-field__md.png (changed)
  • studio__node__slot-value-editor__xy-field__sm.png (changed)
  • studio__node__slot-value-editor__xy-raw-input-popup__lg.png (changed)
  • studio__node__slot-value-editor__xy-raw-input-popup__md.png (changed)
  • studio__node__slot-value-editor__xy-raw-input-popup__sm.png (changed)
  • studio__node__toggle-field__bound__lg.png (changed)
  • studio__node__toggle-field__bound__md.png (changed)
  • studio__node__toggle-field__bound__sm.png (changed)
  • studio__node__toggle-field__default__lg.png (changed)
  • studio__node__toggle-field__default__md.png (changed)
  • studio__node__toggle-field__default__sm.png (changed)
  • studio__node__toggle-field__detail-open__lg.png (changed)
  • studio__node__toggle-field__detail-open__md.png (changed)
  • studio__node__toggle-field__detail-open__sm.png (changed)
  • studio__node__toggle-field__dirty__lg.png (changed)
  • studio__node__toggle-field__dirty__md.png (changed)
  • studio__node__toggle-field__dirty__sm.png (changed)
  • studio__node__toggle-field__live__lg.png (changed)
  • studio__node__toggle-field__live__md.png (changed)
  • studio__node__toggle-field__live__sm.png (changed)
  • studio__node__toggle-field__off__lg.png (changed)
  • studio__node__toggle-field__off__md.png (changed)
  • studio__node__toggle-field__off__sm.png (changed)
  • studio__project__editor-fields__editor-fields__lg.png (changed)
  • studio__project__editor-fields__editor-fields__md.png (changed)
  • studio__project__editor-fields__editor-fields__sm.png (changed)
  • studio__project__project-pane__add-node-picker-device-gaps__lg.png (changed)
  • studio__project__project-pane__add-node-picker-device-gaps__md.png (changed)
  • studio__project__project-pane__add-node-picker-device-gaps__sm.png (changed)
  • studio__project__project-pane__add-node-picker__lg.png (changed)
  • studio__project__project-pane__add-node-picker__md.png (changed)
  • studio__project__project-pane__add-node-picker__sm.png (changed)
  • studio__project__project-pane__change-list-empty__lg.png (changed)
  • studio__project__project-pane__change-list-empty__md.png (changed)
  • studio__project__project-pane__change-list-empty__sm.png (changed)
  • studio__project__project-pane__change-list-overflow__lg.png (changed)
  • studio__project__project-pane__change-list-overflow__md.png (changed)
  • studio__project__project-pane__change-list-overflow__sm.png (changed)
  • studio__project__project-pane__change-list__lg.png (changed)
  • studio__project__project-pane__change-list__md.png (changed)
  • studio__project__project-pane__change-list__sm.png (changed)
  • studio__project__project-pane__detail-popup__lg.png (changed)
  • studio__project__project-pane__detail-popup__md.png (changed)
  • studio__project__project-pane__detail-popup__sm.png (changed)
  • studio__project__project-pane__empty-project__lg.png (changed)
  • studio__project__project-pane__empty-project__md.png (changed)
  • studio__project__project-pane__empty-project__sm.png (changed)
  • studio__project__project-pane__in-progress__lg.png (changed)
  • studio__project__project-pane__in-progress__md.png (changed)
  • studio__project__project-pane__in-progress__sm.png (changed)
  • studio__project__project-pane__live-only__lg.png (changed)
  • studio__project__project-pane__live-only__md.png (changed)
  • studio__project__project-pane__live-only__sm.png (changed)
  • `studio__project__pr

…(list truncated; see the commit)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant