Review-templates train: composed-range fix wave

↗ view on GitHub · sloth-ninja · 2026-08-05 · 6b8f194e

Fixes the cross-commit issues the composed-range review of the whole
templates train (base...5da6d5c) found:

I1+M7 restore the template->review linkage (workflow_id on create and on
in-grid apply, owner-only, uuid-validated server-side) AND org-scope the
usage dashboard's template-title lookup, so a template email-shared from
outside the firm can never print its name on the firm's dashboard.

I2 re-validates a template's stored columns before permitting a flip to
firm visibility (legacy rows written by the older workflow editor), with
a distinct invalid_columns outcome mapped to a 400 telling the owner to
reopen and re-save. Reverting to private is never blocked.

I3 filters hidden built-ins out of both template pickers, so Hide means
the same thing there as on the Templates page. Fails open.

Minor: dead is_system re-filter removed (M1); firm-templates card names
where members share (M2); column modals say "Templates" in the template
editor (M3); pending-deletion rows label templates as Templates (M4);
"Save as template" is disabled with an explanation above 30 columns (M6);
draft work-loss guard on /review-templates/new (M9); 404 on save says the
template is gone (M10); stable-loadOptions note on the picker effect (M11).

No migration. Backend 757 tests (739 baseline, +18).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Repository Sloth-ninja/JessicaOSS
Author sloth-ninja <ezanahaddis@gmail.com>
Authored
Parents 5da6d5c4
Stats 23 files changed , +901 , -51
Part of Firm-shared tabular review templates

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-6b8f194e.md from inside the repo you want the change in.

⬇ Download capture-commit-6b8f194e.md