Releases
v0.10.0
Compare
Sorry, something went wrong.
No results found
0.10.0 (2026-07-13)
Features
camera: auto-fit the camera to a dataset's extent on open (f2ac799 )
camera: auto-fit the camera to a dataset's full extent on open (#846 ) (ceb6440 )
camera: shared fit-to-bounds framing math for the main camera (77b4f7e )
channels: collapsible per-channel panels with collapse-all/expand-all (collapsed by default) (#847 ) (31a8238 )
cli: dataset montage — agent dataset overview (#838 ) (b0027b9 )
collab: auto-fit a dataset on open only for the client that opened it (373563a )
collab: show peer name + avatar on cursors in peer mode (#540 ) (92e6829 )
core: add incremental delta view_query (entered/left/quantized-change since last query) (6bc322f )
explore: add dataset explore CLI command (JSON plan + contact-sheet) (cbbafc5 )
explore: add pure mode-aware view-transform generator (lucida-core) (afd5833 )
explore: enriched mode-aware move-set (elevation/time/channel/projection) (3559c2d )
explore: guided / branching dataset exploration (CLI · Python · web) (304208a )
explore: Python pyo3 explore surface + shared default-view in lucida-core (2bf873d )
explore: rendered preview thumbnails (contact sheet) in the Explore panel (a685f27 )
explore: rendered preview thumbnails in the Explore panel (33eb2d2 )
explore: sidecar parity + web nudge dedup + discoverability + finer back (ad29c9b )
explore: web Explore panel + wasm-export the generator (d694b43 )
interactive per-label visibility and opacity controls for OME-Zarr labels (7870f0c )
OME-Zarr label (segmentation) overlays — colored 2D + 3D with per-label opacity (e698535 )
parse OME-Zarr labels and attach them to their source image (ab3c68f )
protocol: scale dataset-open payloads with structure, not tile count (f4f3382 )
protocol: version-mark compact dataset-open payloads and bound decode expansion (f22aaa3 )
render OME-Zarr label overlays in 2D (colored, adjustable opacity, aligned) (8d05451 )
render OME-Zarr label overlays in 3D (volume view) (b15907f )
seq-gap detection and snapshot resync for the collaborative document protocol (lucida-dah) (43016fb )
show OME channel names in the LayerPanel + let users rename channels (#845 ) (edc595f )
viewer: configurable 3D chunk-spawn focal depth (#532 ) (54ebdc4 )
web: default label masks to hidden; opt-in per mask (c3703e9 )
web: default the Explore panel to closed (da34a48 )
web: durable collection-import warning banner + tolerate an unreadable representative tile (d7625d6 )
web: fold the Rust view_query delta into the planning snapshot (O(delta) camera-move rebuild, coarseDetail-gated) (f177e9c )
web: render 3D label overlays from a bricked r32uint atlas (nearest across bricks) (0221285 )
web: render large 3D labels via a bricked r32uint atlas (nearest across bricks) (717d900 )
web: render large per-axis 3D labels via bricking; budget labels by their actual bricked allocation (5890309 )
web: show every drawable label by default with per-label on/off overrides (explicit off honored); cap visible 3D masks to a memory budget (621264c )
web: surface collection-import warnings in a durable, dismissible banner (c56230a )
workspace: create a workspace directly from a dataset (#697 ) (35587ba )
workspace: duplicate a workspace without transferring permissions (#698 ) (d0e73c6 )
workspace: editable dataset display names via a collaborative rename command (#701 ) (bc07308 )
Bug Fixes
ci: pin wasm-pack and de-flake shuffled web tests (bd8444e )
cli: keep collected warnings when a dataset open fails (82557f4 )
cli: print import warnings after a dataset open (a3675db )
content: lowercase URI schemes in the canonical dataset URL form (dd469eb )
core: clear all dataset-id-keyed fields on remove_dataset; unify the traversal (4815d34 )
place plate label overlays on their own well in 2D (1f144f9 )
report source-chunk store failures to the requesting client (7843dbf )
server: blosc decoder — non-filter-aligned and raw-stored blocks (#839 ) (8ceab1b )
server: bounded single-flight source reads with fail-fast retries; client self-heals throttled tiles (569) (789a72a )
server: enforce saved-view visibility transition allow-list (#817 ) (b6321d9 )
store: allow plain-http object stores (81bdc49 )
store: bound anomaly-driven label expansion and surface unusable indexes (89adc50 )
store: charge the unusable-expansion cap only when expansion adds reads (fe9dbf9 )
store: harden sampled label discovery (998fa68 )
store: tolerate an unreadable representative tile when opening a collection (8f42944 )
tear down the web session stack on workspace unmount (lucida-pke) (e207263 )
uniform label overlay opacity (normalize declared image-label.colors alpha) (cc4fa0a )
viewer: 2D minimap colormap + live annotation draw + 3D annotation context (#837 ) (3982f9b )
viewer: frame the minimap to visible datasets only (#836 ) (e3cb977 )
viewer: render minimap overview with the active channel's contrast (#835 ) (f8e776e )
web: back-fill missing per-label settings as hidden so an unrelated gesture never reveals an untouched label (gmt) (994e15e )
web: boot wasm once per page and surface fatal viewer/data failures (1b42712 )
web: cancel a departed entity's in-flight per-tile proxy fetch to free its shared scheduler slot (4927325 )
web: clamp the total label-volume budget to at least the per-texture cap so a drawable mask is never dropped (never-blank invariant) (0b508ae )
web: class and recover the viewer's visible error surface (041b320 )
web: free fetch slots when entities scroll out of view so the current view isn't starved (6k0) (4a9eab2 )
web: give the 2D label-slice pool datasetId-scoped cleanup and an alloc-failure guard, mirroring the 3D volume pool (0h9, l6j) (9d9bf6c )
web: hold the member-pass cap exactly and cull zero-extent members (2a3bc76 )
web: keep view lanes ahead of bulk minimap seeding, deliver dual-lane arrivals (dcdd82f )
web: make the labels panel view-mode-aware and never open blank when a label is drawable (skr, 5rc) (25b5444 )
web: minimap volume fly-camera look-around refreshes the frustum overlay instead of freezing it (0acfbc2 )
web: rank bulk minimap seeding behind the plan's actual priorities (a6bc7dd )
web: re-fetch transiently-failed chunks on pan/scrub instead of leaving them dark (gzn) (d7a9571 )
web: reachable Undo for every pending saved-view reject; fix stale active-row highlight (#818 ) (58d4afb )
web: render slice aggregates from live residency, one draw per pool set (f0d5aed )
web: report real upload budget, slice upload time, and live member sent counts (25194a9 )
web: restore per-label view settings by name, occurrence-aware, after the label list changes (8q6, dk4) (72544ca )
web: route every fetch-settle completion through one settleFetch + per-key FailureRecord (2cdb585 )
web: share one wasm instantiation across concurrent mounts (8b8ff00 )
web: surface fatal scene-apply and chunk-fetch failure streaks (acb1d28 )
web: surface persistently-failing remote sources via the failure streak while throttled tiles self-heal (7k4) (7c27c3d )
web: unify fetch-settle completion + cancel departed-entity in-flight proxy fetches (8fe522c )
Performance
core,web: O(delta) camera-move rebuild via a Rust delta view_query (closes the 2D stutter) (b94c47e )
make wide-collection member lookups and layout resolution hash-indexed (2b5b008 )
open and view wide remote collections fast and reliably (633e1c8 )
parallelize OME-Zarr plate import metadata fetches and tolerate unreadable wells (lucida-te7) (8230851 )
store: scale collection label discovery with groups, not tiles (9c974c2 )
web: bound slice render passes by a screen budget, not member count (4f74be8 )
web: cache the minimap overview across camera-only moves on large collections (0028937 )
web: cap per-member debug rows and report uncapped totals (22a8ce0 )
web: coalesce the per-frame cold-state rebuild so interaction stays smooth on large collections (9f9c2d0 )
web: cut minimap per-move cost on 2D pan/zoom and 3D orbit; fix fly-camera frustum freeze (8cf5085 )
web: eliminate periodic interaction stutter during T/Z scrub and 2D pan/zoom (93bed25 )
web: make pan/zoom/orbit view moves cheaper via an incremental cold-state delta + matrix reuse (8c92f12 )
web: make pure T/Z scrub cheap — skip the O(N) cold-state rebuild + resend (6fa74ff )
web: minimap 2D pan/zoom reuses a cached Z-plane overlay layer instead of re-stroking every member slice plane (b78203e )
web: render display-only edits (contrast/gamma/colormap) without a full O(N) rebuild (0d7ffff )
web: reuse cached minimap geometry on a 3D orbit instead of re-reading every member per frame (79c602f )
web: reuse camera-independent planning-snapshot inputs across view replans (6acec62 )
web: reuse camera-independent planning-snapshot inputs across view replans (635423c )
web: snapshot the cpu cache at most once per plan rebuild (574421f )
web: throttle the minimap overview seed-scan to bound per-move CPU on large collections (103b928 )
web: throttle the minimap overview seed-scan to bound per-move CPU on large collections (bab9697 )
web: update the minimap overview's display in place on contrast/gamma/colormap edits instead of re-reading every member (df45c30 )
web: wide collections render fast at any devicePixelRatio (overview aggregation) (c020a17 )
Refactors
collapse wasm.rs setters onto Scene::apply with a scoped diff-based epoch policy (lucida-i31) (f8da770 )
core: single-source member world-placement via rendering_transform (119cd20 )
debug tooling separated from production - lazy chunks, cached log gate, dev-gated control surface (lucida-s6m) (5846137 )
final domain-neutral sweep (extras, scripts, layout name, wiki filenames) (9ebbaaa )
headless dataset-open service and single-layer command authorization (lucida-ce7) (7bbcb19 )
intent-named invalidation notifiers replace hand-tapped change signals; first App wiring tests (lucida-0hm) (46992b5 )
non-React session controller owns the web session; useBridge becomes a thin adapter (lucida-wxu) (e30a2c2 )
one shared home for annotation overlay logic across 2D and 3D; comment badge ported to 3D (lucida-4ne) (6e9691c )
one shared session and http layer for the CLI noun modules (lucida-nd0) (edb171b )
rename Plate dataset kind to Collection (neutral container vocabulary) (7cd929e )
rename positioning mode to Explicit/Derived (neutral, drop stage vocabulary) (1be0bca )
rename well/field entities to group/tile (neutral member vocabulary) (2a4d883 )
replace biology proper-nouns in fixtures with neutral labels (9b794a0 )
single always-compiled source for placement correction; wasm placement queries become delegates (lucida-q0x) (40db1f6 )
split lucida-server workspace.rs into a layered workspace/ module (lucida-mi7) (9d9d96b )
typed TS command vocabulary with a real-wasm apply_command lock (lucida-8ci) (4450448 )
web: remove dead BookmarkSidebar component (#819 ) (c2f1463 )
You can’t perform that action at this time.