Skip to content

feat: complete whole-product visual rollout Batch 3 - #1325

Merged
ericsocrat merged 2 commits into
mainfrom
codex/whole-product-batch3
Aug 28, 2026
Merged

feat: complete whole-product visual rollout Batch 3#1325
ericsocrat merged 2 commits into
mainfrom
codex/whole-product-batch3

Conversation

@ericsocrat

Copy link
Copy Markdown
Owner

Purpose

Complete whole-product visual rollout Batch 3 for the remaining customer-facing Scanner, activity, Settings, product adjunct, anonymous share, Learn, legal, offline, and forbidden surfaces.

Behavior

  • extends the approved Source Fold / Folded Label Register language without introducing a new direction
  • adds scanner-specific capture, permission/error, result, history, and submission treatments
  • presents Settings as an account/preferences register
  • centralizes public utility and Learn shells while preserving existing copy and navigation semantics
  • keeps scan scores and anonymous shared-product scores provisional when evidence is unavailable
  • preserves mutation, scoring, provenance, privacy, Auth, database, and dependency boundaries
  • regenerates the deterministic live route/component inventory against base c7a143394f3c0d74a472ddf212f2519962bab85b

Verification

  • focused Batch 3 route/component contracts: 752 passed before shared-component completion; final scanner/Settings/ingredient set: 414 passed
  • Learn and inventory contracts: 144 passed
  • design-system contracts: 256 passed with one worker
  • full unit run: 6,867 passed, 19 skipped; stale Learn source-shape failures corrected and rerun green
  • type-check: passed
  • lint: passed
  • production build: passed
  • repository hygiene/doc counts/migration ordering: passed
  • guarded local Chromium rendered Scanner, Result, History, Submissions, Settings, Learn, and Privacy at 390x844, 768x1024, and 1440x900 in light/dark, plus reduced motion, forced colors, no-overflow, keyboard focus, and focused axe checks
  • dark public-shell contrast defect found by axe and corrected
  • local QA fixtures were loopback-only and torn down; no hosted data was touched

Visual evidence

Guarded local screenshots were generated for each review state but are intentionally not committed as immutable evidence or baselines. The PR preview and ordinary screenshot/check workflows remain the review surface.

Accessibility and performance

  • 44px controls, focus order, reduced motion, forced colors, status semantics, and dark contrast are covered
  • no Lighthouse cohort was run or requested
  • no dependency or performance-policy change
  • Route-JS remains owned by the normal exact-head CI gate

Documented inherited/local-only checks

  • the base-owned intentional-redesign mutation wrapper exceeds its 15s Windows test timeout while its child process completes in about 20s; do not widen this product PR to renderer governance
  • the landing assay test reads a CRLF-expanded Windows working-tree license file, while the canonical Git blob remains exactly 4,383 bytes with SHA-256 f612090fb72b6dca3e807e66fa0d2b5def163cef86f1a3209b5c897cba5ee4b7; immutable bytes were not changed
  • a final locale-only guarded rerun was blocked by the launcher because an unrelated Next server in another repository was active; prior guarded pixel/axe/overflow assertions had completed, and locale dictionary/source contracts are green

Out of scope

No admin/dev/evidence route migration, Auth/provider change, database/RLS/data mutation, dependency change, baseline update, Lighthouse measurement, or new route family.

@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
tryvit Ready Ready Preview Aug 28, 2026 12:00pm

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown

📸 PR Screenshots

Captured 2 screenshots (1 mobile, 1 desktop) for 1 changed page(s):

  • learn

📥 Download screenshots from workflow artifacts.

Captured by PR Screenshots workflow • 2026-08-28

@ericsocrat
ericsocrat marked this pull request as ready for review August 28, 2026 12:29
@ericsocrat
ericsocrat merged commit 310357c into main Aug 28, 2026
28 of 30 checks passed
@ericsocrat
ericsocrat deleted the codex/whole-product-batch3 branch August 28, 2026 12:29

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 72f8f87c97

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


return (
<div className={styles.shell}>
<Header />

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Provide live auth state to the public header

When an authenticated user visits any route using this new shell, the header always renders the “Sign in” action because LiveHeaderAuthAction reads a context whose default is false, and LivePublicAuthProvider is only mounted by HomePageContent. As a result, the newly migrated shared-list, shared-comparison, offline, and forbidden pages show an incorrect auth state and send signed-in users through /auth/login rather than directly to the dashboard; wrap this shell/header with the live auth provider or otherwise supply the actual session state.

Useful? React with 👍 / 👎.

<ProductRegisterCard
key={item.product_id}
productId={item.product_id}
href={`/app/product/${item.product_id}`}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep shared-list product links on an anonymous route

For signed-out visitors—the primary audience of this public share route—every newly clickable product row now points into /app, which the proxy classifies as protected and redirects to login. Thus clicking an item no longer provides product details within the shared experience and unexpectedly abandons the anonymous flow; use an anonymously accessible product destination or render these rows as non-links until one exists.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant