Skip to content

Build Comptextv7 enterprise infrastructure showcase#69

Merged
ProfRandom92 merged 1 commit into
mainfrom
codex/build-enterprise-ai-infrastructure-showcase
May 13, 2026
Merged

Build Comptextv7 enterprise infrastructure showcase#69
ProfRandom92 merged 1 commit into
mainfrom
codex/build-enterprise-ai-infrastructure-showcase

Conversation

@ProfRandom92

Copy link
Copy Markdown
Owner

Motivation

  • Replace the prior static showcase with a restrained, enterprise-grade React + TypeScript + Vite presentation that demonstrates deterministic token compression, replay verification, artifact lineage, CI-backed validation, and operational telemetry.
  • Provide a deployable preview/publish configuration for Netlify (while retaining Vercel compatibility) and enforce required operational copy and responsive behavior through an automated static validation script.

Description

  • Convert the showcase to a SPA under showcase/app/src with main.tsx and styles.css implementing executive overview, architecture DAG, replay timeline, OpenTelemetry-style traces, artifact registry, CI history, benchmark suite, operations console, use cases, and reviewer walkthroughs.
  • Add modern build tooling and typing via package.json (React/Vite/TypeScript), tsconfig.json, tsconfig.node.json, vite.config.ts, and package-lock.json, and remove the old public/ static copy-based build path.
  • Add Netlify metadata in showcase/app/netlify.toml, preserve SPA routing in showcase/app/vercel.json, and update showcase/app/README.md to document the new posture and local checks.
  • Strengthen validation by updating showcase/app/scripts/validate-static.mjs to assert required enterprise phrases, required dependencies, and responsive breakpoint presence.

Testing

  • Ran npm run validate in showcase/app and it passed the updated enterprise static checks.
  • Ran npm run typecheck (tsc --noEmit) and the project type checks completed successfully.
  • Ran npm run build (Vite production build) and the site built to dist/ successfully with assets rendered.
  • Captured a preview screenshot with Playwright after installing browser dependencies, and the screenshot was written to /tmp/comptextv7-enterprise-showcase.png (file size recorded), indicating the preview served correctly.

Codex Task

@vercel

vercel Bot commented May 13, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
comptextv7 Ready Ready Preview, Comment May 13, 2026 10:02am

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request migrates the Comptextv7 showcase application from a static HTML/CSS project to a React + TypeScript + Vite single-page application. It introduces Netlify support while maintaining Vercel compatibility and updates the showcase copy to reflect an enterprise-grade infrastructure focus. Feedback includes a recommendation to use stable indices for React keys in static tables to avoid duplicate key warnings and a CSS fix to hide DAG node connectors in mobile views to prevent layout overlap.

Comment thread showcase/app/src/main.tsx
<div className="table-scroll">
<table>
<thead><tr>{columns.map((column) => <th key={column}>{column}</th>)}</tr></thead>
<tbody>{rows.map((row) => <tr key={row.join('-')}>{row.map((cell) => <td key={cell}>{cell}</td>)}</tr>)}</tbody>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Using cell as a React key is fragile and can lead to duplicate key warnings if multiple columns in a row contain the same value (e.g., 'PASS' or '0.000'). Similarly, row.join('-') is not a robust key for rows. Since this is a static table, using the array indices is a safer and more standard approach.

Suggested change
<tbody>{rows.map((row) => <tr key={row.join('-')}>{row.map((cell) => <td key={cell}>{cell}</td>)}</tr>)}</tbody>
<tbody>{rows.map((row, rowIndex) => <tr key={rowIndex}>{row.map((cell, cellIndex) => <td key={cellIndex}>{cell}</td>)}</tr>)}</tbody>

nav { width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 0.2rem; }
.section-shell { width: min(100% - 1rem, 1480px); padding: 3.5rem 0; }
h1 { font-size: clamp(2.6rem, 16vw, 4.5rem); }
.kpi-grid, .ops-grid, .dag, .use-case-grid, .walkthrough-grid { grid-template-columns: 1fr; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The DAG node connectors (::after pseudo-elements) are designed for a 4-column layout. When the layout switches to a single column on mobile devices, these connectors will point into empty space or overlap with other elements. They should be hidden in the mobile media query to maintain a clean vertical list appearance.

  .kpi-grid, .ops-grid, .dag, .use-case-grid, .walkthrough-grid { grid-template-columns: 1fr; }
  .dag-node::after { display: none; }

@ProfRandom92 ProfRandom92 merged commit d2c778a into main May 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant