Skip to content

T 165


uid: T-165 title: IA reorg β€” Tools & Settings estates (Typesetting Β· Pipeline Preview Β· Deployments move) status: done area: tools created: 2026-07-10 updated: 2026-07-10 owner: girafeev1 assignee: User Management related: T-162, T-160, T-047


Source: User Management Β· https://claude.ai/code/session_01GGT5n9vCxKWoUQSRAfMSiW Origin: the owner's 7-point Notification Hub restructure + follow-up rounds (2026-07-09/10, quoted in T-162's decision log β€” this doc doesn't restate them). T-162 keeps the Hub + System Emails + System Health/DMARC; THIS task carries the Tools/Settings estate migrations. All UI is preview-approved (T-162 preview v9, collapsible housing).

Scope

  1. Tools β–Έ Typesetting (/tools/typesetting, admin) β€” expandable rows exactly like the Tools page, expanding shows the tool itself (no link-outs):
  2. Project Invoice Previewer (collapsible parent) β†’ Invoice Previewer Β· Full Invoice Preview Β· Invoice Sections (owner-agreed family merge)
  3. Payment Confirmation Previewer
  4. Coaching Payment Receipt Preview (renamed from "Payment Receipt Preview (MEL)")
  5. Coaching Payment Request (Invoice) Preview (renamed from "Payment Request Preview (MEL)") Tools page loses these six rows; keeps Sidebar Icon Reference + Component Showcase.
  6. Tools β–Έ Pipeline Preview (/tools/pipeline-preview, admin) β€” the owner-specified live form fronts (name chosen by the owner from their candidates): IR56M + WOPC facsimiles with inline type-in fields rendering immediately, Use demo data, Send demo email (real pipeline), and the sign-&-seal links β€” /ir56m/sign-test (existing) and NEW /wopc/sign-test mirroring the IR56M harness (doubles as the T-160 signing-name verification rig; coordinate with Records (Infrastructure) if its seams shift). The "IR56M β€” sign & seal test" Tools row migrates here.
  7. Settings β–Έ Deployments (/settings/deployments, admin) β€” the "Deployments β€” build status" Tools row moved (owner: "Deployment should have it's own sub tab under Settings").

Sequencing

After T-162's wave B lands the Hub sidebar nesting (this task reuses the same parent/child mechanics for Tools/Settings). Each numbered item is its own PR; commit-only, deploys stay on the owner's explicit word.

Log

  • 2026-07-10 created at build start (owner: "Go"), splitting the Tools/Settings estate out of T-162 per the recorded scope-split proposal. No code yet.

2026-07-10 β€” Wave D shipped: Tools β–Έ Typesetting

  • βœ… Read AGENTS.md. Source: User Management Β· https://claude.ai/code/session_01GGT5n9vCxKWoUQSRAfMSiW
  • /tools/typesetting (admin, Tools gate vocabulary) as a collapsible Tools child β€” the document previewers as expandable rows, expanding opens the previewer in place (owner spec 1a/1d).
  • Implementation choice (recorded): the previewers' state is deeply interleaved inside the 2,000-line ToolsApp, so the split is at the RENDER layer β€” ToolsApp gained a variant: 'main' | 'typesetting' prop with two conditional Collapses in one component scope; the panel JSX moved verbatim, zero state surgery. A future file-split refactor stays open.
  • Renames applied (owner verbatim, 2026-07-10): parent header "Project Invoice Previewer"; "Payment Receipt Preview (MEL)" β†’ "Coaching Payment Receipt Preview"; "Payment Request Preview (MEL)" β†’ "Coaching Payment Request (Invoice) Preview".
  • Structural finding (honest note): the three invoice tools were ALREADY one family in code β€” "Invoice Previewer" is a parent panel whose body nests "Full Invoice Preview" + "Invoice Sections". So the owner-approved grouping = renaming that parent; its children are those two nested panels (there is no distinct third "Invoice Previewer" child β€” the row IS the parent).
  • Tools page keeps Sidebar Icon Reference + Component Showcase + IR56M harness (the harness moves in wave E). Heavy tsc clean Β· 648 tests green Β· 45 eslint hits byte-identical at baseline.

2026-07-10 β€” Wave E shipped: Tools β–Έ Pipeline Preview + /wopc/sign-test β€” TASK COMPLETE

  • βœ… Read AGENTS.md. Source: User Management Β· https://claude.ai/code/session_01GGT5n9vCxKWoUQSRAfMSiW
  • Pipeline Preview (/tools/pipeline-preview, Tools child, Tools gate): the owner-specified live form fronts β€” IR56M + WOPC facsimiles with inline type-in fields (the form IS the input), Use demo data, Send demo email (real signing-request templates, sample data, magic links β†’ the harnesses), and the sign-&-seal links. The WOPC front's closing block is the LIVE T-160 resolver's answer (/api/wopc-signing/closing-name-preview, demo payee JC β†’ forced-opposite director) β€” the front doubles as that pipeline's verification rig.
  • NEW /wopc/sign-test harness (owner item 6c): twin of the IR56M harness β€” same shared sign-editor components, WOPC test endpoints: test/preview-filled (sample WOPC rendered by the PRODUCTION renderWopcPdfBuffer, i.e. real closing-name resolution), test/preview-signed (same production composeSignedWopcPdf + composeChopOntoPdf), test/send-demo (real WopcSigningRequestEmail, link β†’ the harness). Chop images reuse the IR56M test endpoint (company-wide assets). New lib/wopc/sampleConfirmation.server.ts (sample payee JC β€” deliberately a director). Nothing persists or files.
  • Tools row "IR56M β€” sign & seal test" retired (its send-demo UI reproduced on the front); IR56MSignTestTool.tsx deleted (sole consumer).

Close-out (done β€” 2026-07-10)

βœ… Read AGENTS.md. Source: User Management Β· https://claude.ai/code/session_01GGT5n9vCxKWoUQSRAfMSiW

Verdict. All three scope items delivered per the owner-approved v9 design: (1) Typesetting (wave D β€” expandable rows, Project Invoice Previewer parent, coaching renames); (2) Pipeline Preview + the new WOPC sign-&-seal harness (wave E); (3) Deployments β†’ Settings sub-tab (shipped inside T-162 wave C alongside the Settings estate, recorded there). Verified: heavy unfiltered tsc --noEmit clean per wave; vitest green (663 at close); eslint deltas zero (legacy-file hits byte-identical at baseline each wave). Runtime verification of the harnesses (draw/chop/preview on real devices) awaits the next production deploy β€” owner-manual.

Every commit that touched T-165 (append-only, newest last): - dcf9f5dc β€” wave D: Tools β–Έ Typesetting (variant split, renames) β€” PR #896 - b09ef91d β€” Deployments β†’ Settings sub-tab (scope item 3, shipped within T-162 wave C) β€” PR #891 - (this PR) β€” wave E: Pipeline Preview + /wopc/sign-test + IR56M row retirement

Blast radius (for agents working nearby): - components/tools/ToolsApp.tsx β€” now variant-aware ('main' | 'typesetting'); SIX former rows live only in the typesetting variant; Email Templates / System Email Routing / IR56M harness / Deployments rows are gone from 'main'. Anyone adding a Tools row should decide which variant it belongs to (or a new family). - WOPC signing seams (Records (Infrastructure) territory) β€” three NEW test endpoints under /api/wopc-signing/test/* CONSUME the production pipeline (renderWopcPdfBuffer, composeSignedWopcPdf, composeChopOntoPdf, closing-name-preview) read-only; if those seams change shape, the harness follows. Coordinate via T-160's field-notes channel. - Sidebar/IA β€” Tools β–Έ Typesetting Β· Pipeline Preview; new page rules typesetting / pipeline-preview (Tools vocabulary). /wopc/sign-test is route-gated (admin) outside the sidebar, like its IR56M twin.