Files
vfxreview/app/api
twotalesanimation ed9f9b13c1
Deploy / deploy (push) Successful in 6m8s
feat(client-portal): show shots and task titles in the client's own naming
Shot.clientCode already drove slates, overlay burn-ins and delivered file
names, but the client portal — the one place the client actually reads — was
still showing our internal codes.

Task titles were the larger leak. They follow the house convention
"UNG_106_010_020_cmp_TT_v004", so the internal code sat embedded in the
string the client reads and copies, in three places on the shot list and
again in the player header. Swapping only the heading would have left it on
display directly underneath.

lib/shot-code.ts resolves both: clientShotCode picks the alias when set, and
clientTaskTitle swaps the code out of a title by substring, leaving a
hand-edited title that does not carry the code untouched rather than guessing
at it.

Applied at the API boundary rather than at each render site, so the shot
list, search, playlist labels, alt text, player header and every
copy-to-clipboard button inherit it and nothing downstream has to remember
which code it is holding. The internal code is no longer sent to the browser
on these routes at all.

Slack notifications deliberately keep the internal code: those go to our
artists, who need the code that matches the comp and the SAN path.

The two existing "clientCode || shotCode" expressions in preview.ts and
deliveries.ts now use the same helper so slates, deliveries and the portal
cannot drift apart. Shots with no clientCode are unchanged throughout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 23:16:53 +02:00
..
2026-05-19 22:20:29 +02:00
2026-08-06 12:59:28 +02:00
2026-05-19 22:20:29 +02:00
2026-07-08 16:03:57 +02:00
2026-07-08 16:28:18 +02:00
2026-07-29 07:24:57 +02:00
2026-06-19 13:25:19 +02:00
2026-06-25 10:42:26 +02:00
2026-07-16 21:58:06 +02:00
2026-05-19 22:20:29 +02:00
2026-07-29 07:46:00 +02:00
2026-05-19 22:20:29 +02:00
2026-05-19 22:20:29 +02:00