Guided recorded demonstration · actual operations
The useful change happened after the camera started.
The accepted baseline had no Comfort margin field or card. During the coordinated recording, the real Node-RED response Function, schema, browser code and tests were changed, built and released. Inactive build waits may later be shortened with a truthful label; no terminal, chat or completion is fabricated.
loadingloadingActual submitted teaching request
A bounded functional edit—not a simulated chat.
In this existing Node Lab teaching project, add a Comfort margin value to the live-generated simulation. Define comfort_margin_c as the configured demo temperature limit minus the validated current temperature in Celsius. Add the calculation to the actual Node-RED data path and a clearly labelled dashboard card with units. Keep the current simulation disclosure, scenarios, source timestamps, sample IDs, health indicators, invalid-input handling and working controls. Inspect the existing files first. Make the smallest functional change in flow/source code rather than moving nodes around. Show the diff. Check a below-limit sample, an above-limit sample, the limit itself, a malformed sample and recovery. Check the displayed value against the same server sample. Preserve the previous valid state on rejected input. Do not expose the editor or create a physical-device/AI-inference claim. Use the existing project release process and return the exact revision, check results and deployed readback. Preserve the baseline for comparison and rollback.
The downloadable Markdown remains a separate source artifact: prompt.md.
Inspectable evidence chain
Baseline, diff, checks, release.
The v2.0.0-base tag preserves the accepted before-state. These artifacts expose only sanitized project source and results—never private topology, credentials or internal conversation.
Actual sanitized functional diff
The executed source change, readable in a normal page.
baseline: 576f1a71bbc57e60b71c38d8146a41b212eca32d
functional revision: d7980d74b0e69ad85e4f11e200f667f66b54f3ce
--- accepted baseline live generator
+++ recorded live generator
@@
-temperatureC: round(24.2 + Math.sin(phase) * 1.5), thresholdC: 32,
+temperatureC: round(24.2 + Math.sin(phase) * 1.5), thresholdC: 30,
The CNC teaching limit is deliberately aligned with the retained validation
lesson before the margin is derived. Other station limits are unchanged.
--- accepted baseline Node-RED response Function
+++ recorded Comfort margin response Function
@@
-snapshot.stations = Object.values(byId).map((station) => ({
- ...station,
- ageMs: Math.max(0, now - Date.parse(station.observedAt))
-}));
+snapshot.stations = Object.values(byId).map((station) => {
+ const validTemperature = Number.isFinite(station.temperatureC);
+ const comfortMargin = validTemperature
+ ? Number((station.thresholdC - station.temperatureC).toFixed(1))
+ : null;
+ return {...station, comfort_margin_c: comfortMargin,
+ ageMs: Math.max(0, now - Date.parse(station.observedAt))};
+});
+const primary = snapshot.stations.find((station) => station.id === 'cnc-cell');
+snapshot.configured_demo_temperature_limit_c = primary.thresholdC;
+snapshot.validated_temperature_c =
+ Number.isFinite(primary.temperatureC) ? primary.temperatureC : null;
+snapshot.comfort_margin_c = primary.comfort_margin_c;
--- accepted baseline validation response
+++ recorded validation response
@@
-if (![22,34].includes(raw)) reject();
+if (![22,30,34].includes(raw)) reject();
@@
+validated_temperature_c: temperature,
+configured_demo_temperature_limit_c: 30,
+comfort_margin_c: Number((30 - temperature).toFixed(1)),
--- accepted baseline dashboard
+++ recorded dashboard
@@
+<span>Comfort margin</span>
+<strong data-field="comfort-margin">—</strong>
The downloadable focused diff artifact and complete linked source remain available for reproduction.
Executed fixture and state checks
null → UnavailableSource unit tests, static checks, isolated staging contract and public contract passed. The dashboard value matched the same server sample in desktop and mobile Chromium.
Actual bounded runtime
Reproducible container, private control surface.
/data volume retained across recreationThe linked sanitized runtime record is captured from the actual release. It contains no credentials, private hostnames, internal addresses or station identifiers.
Released functional rule
Limit minus validated temperature.
comfort_margin_c = configured_demo_temperature_limit_c - validated_temperature_c
Positive means below the chosen teaching limit, zero means exactly at the limit, negative means above it, and a missing observation returns null and displays Unavailable.
Workshop values remain live-generated emulation. This change does not connect hardware, customer data or live AI inference.