|
6 | 6 |
|
7 | 7 | --- |
8 | 8 |
|
| 9 | +## Probe reconfiguration wizard (June 3, 2026) ✅ COMPLETE |
| 10 | + |
| 11 | +### Summary |
| 12 | + |
| 13 | +The Day Editor's Devices step now shows which configuration version a recording day |
| 14 | +uses and lets the user version a mid-experiment device change and apply it forward to |
| 15 | +later days — without disturbing days that did not change. |
| 16 | + |
| 17 | +### Changes |
| 18 | + |
| 19 | +- **`resolveDayConfig(animal, day)`** factored out of `mergeDayMetadata` as the single |
| 20 | + source of truth for a day's effective probe configuration (snapshot-by-version + |
| 21 | + `deviceOverrides` precedence). `mergeDayMetadata` now calls it, so the export merge and |
| 22 | + the wizard can never diverge. Behavior-preserving — golden baselines stay byte-identical. |
| 23 | +- **`diffProbeConfigs(prev, next)`** (new `src/state/configDiff.js`): a pure, deterministic, |
| 24 | + order-independent diff of two probe configurations (electrode groups + channel maps), plus |
| 25 | + `reconcileAppliedToDays` to derive version usage from each day's `configurationVersion`. |
| 26 | +- **Store:** `updateDay` accepts `configurationVersion`; a new `applyConfigurationForward` |
| 27 | + action reassigns a set of days to a snapshot version and keeps each snapshot's |
| 28 | + `appliedToDays` a partition (each day in at most one list). |
| 29 | +- **Reconfiguration wizard** (`ReconfigWizard`, on the shared accessible `<Modal>`): renders |
| 30 | + the structured diff, versions the current configuration via `addConfigurationSnapshot`, |
| 31 | + and applies it forward to the chosen day and later days. A "no change detected" state |
| 32 | + disables apply. No `alert()` / `window.confirm()`. |
| 33 | +- **Devices step:** a read-only "Configuration version N — applied to M days" indicator and |
| 34 | + the wizard entry point. |
| 35 | +- No change to `encodeYaml`, the schema, the export path, or the four golden fixtures; |
| 36 | + reassigning a day's version never changes its exported bytes unless the snapshot it |
| 37 | + resolves to actually differs. |
| 38 | + |
| 39 | +--- |
| 40 | + |
9 | 41 | ## Validation Summary & batch tools (June 3, 2026) ✅ COMPLETE |
10 | 42 |
|
11 | 43 | ### Summary |
|
0 commit comments