apps/portal/src/components/portal/ReportRunList.tsx on main (since #6006, W02 of #5812):
GeneratableReportType (line ~30) is the narrow allowlist of portal-generatable types.
GENERATING_COPY: Record<GeneratableReportType, string> (line ~47) includes a threat_detection_review entry that is not a member of that union → tsc --noEmit in apps/portal fails with TS2353 (excess property).
It went unnoticed because CI's typecheck job does not cover apps/portal (portal only runs test-portal and build-portal, and Astro's build does not fail on this). Fix is one line: drop the extra key (managed-evidence types are list-only in the portal per OD-10 = A, never generatable), or widen the record type — dropping the key matches the surrounding design. Consider adding apps/portal to the typecheck matrix so the next one is caught.
Found while union-merging main into #6027 (W04); left untouched there because it predates that PR.
apps/portal/src/components/portal/ReportRunList.tsxonmain(since #6006, W02 of #5812):GeneratableReportType(line ~30) is the narrow allowlist of portal-generatable types.GENERATING_COPY: Record<GeneratableReportType, string>(line ~47) includes athreat_detection_reviewentry that is not a member of that union →tsc --noEmitinapps/portalfails with TS2353 (excess property).It went unnoticed because CI's
typecheckjob does not coverapps/portal(portal only runstest-portalandbuild-portal, and Astro's build does not fail on this). Fix is one line: drop the extra key (managed-evidence types are list-only in the portal per OD-10 = A, never generatable), or widen the record type — dropping the key matches the surrounding design. Consider addingapps/portalto thetypecheckmatrix so the next one is caught.Found while union-merging main into #6027 (W04); left untouched there because it predates that PR.