pf_app/routes
Paul Trowbridge 738e177793 Let a forecast be renamed
PUT /versions/:id has taken name and description since it existed; only the
fallback-name fields ever called it, so the one thing a version's name could
not be was changed. A This forecast panel on the Baseline page now saves
both on blur.

Safe at any time, closed versions included: nothing derives from the name.
The forecast table is keyed on the id, as are pf.log, pf.layout and the
UI's localStorage.

Two edges the route left open. (source_id, name) is unique, so a rename can
collide -- it now answers 409 with the same sentence the POST has always
used, rather than a raw Postgres message that reads as a server fault. And
the UPDATE COALESCEs a falsy name back to the existing one, so a blank box
would have looked saved and changed nothing; that is refused where it is
typed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 10:26:37 -04:00
..
auth.js Read territory at login, and survive having none 2026-09-18 11:52:00 -04:00
layouts.js Make a pivot layout a thing people own and publish 2026-09-19 14:20:04 -04:00
log.js Record what a write ran against, and the statement it ran 2026-09-18 12:19:40 -04:00
operations.js Record what a write ran against, and the statement it ran 2026-09-18 12:19:40 -04:00
plans.js Clone a version's definition without running it 2026-09-21 10:23:35 -04:00
sources.js Make a pivot layout a thing people own and publish 2026-09-19 14:20:04 -04:00
tables.js Read source columns from pg_catalog, not information_schema 2026-09-18 16:12:05 -04:00
versions.js Let a forecast be renamed 2026-09-21 10:26:37 -04:00