Skip to content

[comp] Production Deploy#2714

Merged
carhartlewis merged 17 commits into
releasefrom
main
Apr 30, 2026
Merged

[comp] Production Deploy#2714
carhartlewis merged 17 commits into
releasefrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 29, 2026

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.


Summary by cubic

Launch end-to-end employee background checks: request and charge via Stripe, verify webhooks, snapshot reports, and manage custom uploads with a new People page UI. Switch pentest SplitView to a master-detail flow below xl and remove GTM/LinkedIn marketing pixels so the app tracks product analytics only.

  • Bug Fixes

    • Hardened background-checks payment/webhooks and validation (DB-first charge flow, session/signature checks, idempotent webhook handling, 30s timeouts, 100MB upload limit, localhost URL support).
    • Removed employee PII from sessionStorage during billing redirect; only requesterNotes persisted.
    • Pentest: bumped breakpoint from md to xl and adjusted sidebar width/visibility.
  • Refactors

    • Product app: removed GTM/LinkedIn pixels; deleted @next/third-parties, LinkedInInsight, and related env vars; tracking is PostHog-only; cleaned Dockerfile/docs and simplified checkout tracking.

Written for commit 26d75be. Summary will update on new commits. Review in cubic

carhartlewis and others added 7 commits April 29, 2026 20:03
…ground-checks

# Conflicts:
#	apps/api/src/frameworks/frameworks-scores.helper.ts
#	apps/api/src/main.ts
#	apps/app/.env.example
#	packages/db/prisma/schema/organization-billing.prisma
…port

The previous master-detail logic flipped at md (768px). At
md-to-xl (768-1279px) — the iPad / narrow-laptop range — the
split-view rendered both panes, but the global rail + section
sub-nav already eat ~345px before SplitView even starts. That left
the main pane at ~600px and squeezed the SevTally / detail header
into letter-by-letter overflow (see customer screenshot).

Bumping the cutoff to xl (1280px) means tablets and narrow laptops
now use the master-detail flow (one pane + back-bar), and the split
only kicks in once there's enough room for both panes to be useful.
xl+ behavior is unchanged.

Internal content layouts (4-stat band, KV strip, padding) stay at md
breakpoints — those are about content within a single pane, not
about whether the panes are split. They work correctly whether the
pane is full-width (master-detail) or shares the row with the
sidebar (split).
fix(pentest): tablet-friendly split-view (md → xl breakpoint)
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app (staging) Ready Ready Preview, Comment Apr 30, 2026 1:44am
comp-framework-editor (staging) Ready Ready Preview, Comment Apr 30, 2026 1:44am
portal (staging) Ready Ready Preview, Comment Apr 30, 2026 1:44am

Request Review

carhartlewis and others added 5 commits April 29, 2026 23:46
…uploads, and UI

P1: Upload file before marking custom background check as completed, scope
refund to identity API failures only, reconcile state on duplicate webhook
events, and verify checkout session status before processing.

P2: Remove unnecessary buffer copy in raw body parsing, track SWR loading
state for custom attachments, handle numeric-string epoch timestamps, include
device task in totals while loading, add 30s timeout to Identity API calls,
assert 402 status in payment test, accept $0 prices in billing, and validate
whitespace-only employee names via DTO transform.

P3: Deduplicate BackgroundCheckStatus type definition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ation, and logging

P1: Restructure requestForMember to create DB record before charging
Stripe, preventing orphaned payments on DB failure and eliminating the
TOCTOU race condition on concurrent requests via unique constraint catch.

P2: Add @maxlength to base64 fileData field (50MB limit), add @isurl
validation to billing redirect DTOs, remove env var names from error
messages, and add session metadata org check in handleSetupSuccess.

P3: Enhance refund failure logging with structured context for manual
intervention.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… URL validation

Raise base64 @maxlength to 134_217_728 (~100MB binary) to match the
service's file-size policy. Set require_tld: false on @isurl so
http://localhost redirect URLs used in local/dev flows are not rejected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[dev] [carhartlewis] lewis/comp-background-checks
Comment thread apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/backgroundCheckForm.ts Dismissed
carhartlewis and others added 3 commits April 30, 2026 00:47
Stop storing employeeName and employeeEmail in sessionStorage during
the Stripe billing redirect flow. Only requesterNotes (non-PII) is
persisted. After redirect, employeeName re-derives from the employee
prop and the email field resets to its default.

Resolves code-scanning alert #133 (clear text storage of sensitive
information).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix(background-checks): remove employee PII from sessionStorage
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 91 files

Requires human review: This is a massive production release (91 files, 8k+ lines) involving critical payment flows (Stripe), background check logic, and database operations that require human review.

Note: This PR contains a large number of files. cubic only reviews up to 75 files per PR, so some files may not have been reviewed. cubic prioritises the most important files to review.

@carhartlewis carhartlewis merged commit 240bd3b into release Apr 30, 2026
15 checks passed
@claudfuen
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.39.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants