feat(web): published-versions sidebar on the composer page

The lab redesign gave only the lab tab the published-history sidebar;
the composer page was expected to have it too. /setup/tariff now lists
every published version (name or effective date, active badge, currency)
on the right; clicking one loads it into the editor as the SEED for the
next publish — which always creates a new immutable version (the sidebar
hint states this), making "roll back to last month's prices" a two-click
republish while the history stays append-only.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-07-05 16:37:53 +02:00
parent a5e54a8b93
commit 4f902d869e
4 changed files with 87 additions and 19 deletions
+5 -1
View File
@@ -193,7 +193,11 @@ The admin authors the rate card at runtime — no hand-seeding:
composer accumulates per-band hours into the engine's cumulative `uptoMin` (minutes) on submit. The
**last band is always the open-ended "thereafter"** row (not removable, no hours field), so a
published card always satisfies the open-ended-last rule. Shows the active version + history;
"Publish" creates a new version (past sessions keep their pricing).
"Publish" creates a new version (past sessions keep their pricing). Since 2026-07-05 a **right
sidebar lists the published history** (name or effective date, active badge — mirrors the lab's
sidebar); clicking a version **loads it into the editor as the starting point** for the next
publish (currency select ALL/EUR/USD; optional version-name field). Publishing never edits the
clicked version — the sidebar hint says so explicitly.
- Ships **blank** — until a version is published, `GET /api/tariff` returns `active: null` and the
pay station returns `409 no active tariff`. Verified end to end (publish → pay station prices).