From 4c06ed26ff01b942b785ee48a1bb0010505bfea3 Mon Sep 17 00:00:00 2001 From: Kamil Krzywda Date: Fri, 18 Sep 2026 06:48:55 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20v0.10.1=20=E2=80=94=20dispatch=20pickers?= =?UTF-8?q?=20independent=20per=20accepted=20contract=20(placeholder=20def?= =?UTF-8?q?ault,=20no=20first-eligible=20auto-fallback;=20stale-select=20f?= =?UTF-8?q?ix=20via=20explicit=20placeholder=20option)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++ components/RightPane.tsx | 25 ++++++++--- components/right-pane.test.ts | 66 ++++++++++++++++++++++++++++ e2e/right-pane.spec.ts | 82 +++++++++++++++++++++++++++++++++++ package.json | 2 +- 5 files changed, 175 insertions(+), 7 deletions(-) create mode 100644 components/right-pane.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index ad01f71..49d57fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## v0.10.1 — 2026-09-18 06:36 +- **Bugfix (reported): dispatch picker selections appeared shared across accepted contracts** — selecting a plane in one contract's dispatch picker made every other accepted contract's picker show that same plane until the page was refreshed. Root cause confirmed by code audit of `components/RightPane.tsx`: NOT a single shared state variable and NOT missing list keys (each row already had its own `useState` inside `DispatchControls` and stable `key={contract.id}`) — it was the "effective selection" fallback, which auto-tracked the **first eligible plane** in every row whenever no explicit pick existed: with one grounded plane all pickers displayed that same plane by default, so any selection looked like it propagated to the other rows; additionally there was no placeholder `