scipp/esslivedata: 26.7.2
Authors: Simon Heybrock, Sunyoung Yoo, Mridul Seth, jokasimr, Claude, Gregory S. Tucker
Type: Software
Published: 2026-07-31

<h2>What's Changed</h2>
<ul>
<li>Bifrost: Fix Detector Ratemeter rate display via current/cumulative outputs by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1035</li>
<li>tests: hostile-wire liveness harness and multi-session browser smoke test by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1053</li>
<li>Default to sciline NaiveScheduler in backend services by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1056</li>
<li>Invert DataService delivery to pull-on-frame by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1045</li>
<li>Pause DataService delivery for plot layers without viewers by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1043</li>
<li>Serialize DataService access with a lock by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1009</li>
<li>docs: draft ADR 0007 — single-writer state with versioned pull as the dashboard concurrency model by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1048</li>
<li>Remove departed subscribers' extractors from buffer retention by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1061</li>
<li>Key the dashboard data plane by stable DataKey by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1062</li>
<li>Static plot creation + polled run-state; delete subscription registry by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1064</li>
<li>Drop previous-JobSet tracking and persistence by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1065</li>
<li>Expire pending commands whose acknowledgement never arrives by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1067</li>
<li>Remove dead WorkflowController data_service dependency by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1066</li>
<li>Read cell title from TextInput.value, not value_input by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1083</li>
<li>Cast trim timespan to int64 for datetime64 time coords by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1087</li>
<li>Fix dead 2D-coordinate branch in slicer flatten mode by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1084</li>
<li>Return a snapshot from JobService.job_statuses by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1086</li>
<li>Refresh recency on config-store key update by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1085</li>
<li>Route tab-to-grid lookups through the tabbed-grid list by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1088</li>
<li>Share live ROI state across sessions instead of republishing per session by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1089</li>
<li>dashboard: Suspend hover tooltips while an ROI edit tool is active by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1068</li>
<li>Adopt running jobs from heartbeat observation (ADR 0008) by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1091</li>
<li>Enable wavelength-LUT workflow for TBL by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1036</li>
<li>Express frame-aspect sizing via opts, attach hook JS once by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1094</li>
<li>Split session teardown into two tiers for reaper safety by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1095</li>
<li>Move grid lifecycle from cross-session push to version polling by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1098</li>
<li>Replace stale stream-registry design doc with docstrings and ADR by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1103</li>
<li>Add developer glossary by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1099</li>
<li>Fix _job_states leak on workflow recommit (#1080) by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1102</li>
<li>Count variances in TemporalBuffer memory-limit sizing by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1108</li>
<li>Fix saturated 1-10 colorbar for uniform positive log-scale image data by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1107</li>
<li>Suppress plot-grid persistence during startup replay and shutdown by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1109</li>
<li>Rename and split backend handler layer into preprocessors and workflows by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1104</li>
<li>Bump essreduce to 26.6.3, fixing flaky wavelength-LUT test by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1111</li>
<li>Automate Kafka-free items of the #1097 verification checklist by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1113</li>
<li>Run Kafka integration tests in CI by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1112</li>
<li>Integration tests for job adoption, clear-at-commit, ROI spectra, and ACK expiry by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1114</li>
<li>Hide cleared keys from the DataService Mapping view by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1115</li>
<li>Stress test: concurrent ingestion, generation flips, and Mapping reads by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1117</li>
<li>Run the Playwright browser suite in CI by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1118</li>
<li>Integration tests: stop reconciliation and service crash (ADR 0008) by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1119</li>
<li>Show stopped/error status in the cell titlebar pill by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1121</li>
<li>Apply masks as NaN when serializing to da00 by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1125</li>
<li>Remove reset for workflows where it is meaningless or harmful by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1126</li>
<li>Fix the flaky Kafka integration job by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1128</li>
<li>Stamp window bounds on AreaDetectorView 'current' output by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1131</li>
<li>Harden batchers against pathological data-derived timestamps by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1122</li>
<li>Make the rate-aware batcher the default by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1130</li>
<li>Declare output temporality instead of signalling it with a magic coord by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1132</li>
<li>Fix plot axes that collapse on a degenerate data range by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1136</li>
<li>Add --collapsed-sidebar, used by the automation launcher by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1137</li>
<li>Exclude correlation points predating the axis history by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1134</li>
<li>Add integration test for the stop path halting backend publishing by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1138</li>
<li>Poison-message liveness over real Kafka by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1140</li>
<li>Re-latch a job start time contradicted by its own data by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1141</li>
<li>Integration test: rapid recommit under a live producer by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1139</li>
<li>Address every cell titlebar tool per cell, not just the pencil by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1145</li>
<li>Loop ROI requests back into the fake backend by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1142</li>
<li>Guard grid-edit Save against a concurrently vanished grid by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1143</li>
<li>Size table columns from their content by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1148</li>
<li>Allocate browser-test dashboard ports from the OS by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1149</li>
<li>Cover session churn and reaper teardown with a browser test by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1144</li>
<li>tests: guard against collapsed/inconsistently-sized plots by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1150</li>
<li>Fix duplicate session-callback registration on every session open by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1151</li>
<li>Reject overlapping cells when building plot grids by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1041</li>
<li>Dashboard: event-driven session flush (wake-on-commit) retires the 100 ms poll by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1105</li>
<li>Enable cumulative history plots: stamp every output with a 'time' coord by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1135</li>
<li>Install autoscale tools per toolbar, not once per controller by @SimonHeybrock in https://github.com/scipp/esslivedata/pull/1157</li>
</ul>
<p><strong>Full Changelog</strong>: https://github.com/scipp/esslivedata/compare/26.7.1...26.7.2</p>