Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CompText V7 Industrial Validation
name: CompText V7 Replay Validation

on:
pull_request:
Expand Down
4 changes: 2 additions & 2 deletions dashboard/app/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CompText Industrial Ops Console
# CompText Replay Validation Console

This frontend is intentionally structured as an internal platform/SRE/ML-Ops tool rather than a static showcase page.
This frontend is intentionally structured as an internal validation and review console rather than a marketing page.

## Architecture decisions

Expand Down
2 changes: 1 addition & 1 deletion dashboard/app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#07111f" />
<title>CompText Industrial Ops Console</title>
<title>CompText Replay Validation Console</title>
</head>
<body>
<div id="root"></div>
Expand Down
4 changes: 2 additions & 2 deletions dashboard/app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dashboard/app/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "comptext-industrial-ops-dashboard",
"name": "comptext-replay-validation-console",
"private": true,
"version": "0.1.0",
"type": "module",
Expand Down
4 changes: 2 additions & 2 deletions dashboard/app/src/components/layout/Shell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ export function Shell({ activeRoute, onNavigate, onOpenCommand, children }: { ac
return (
<div className="shell">
<aside className="sidebar" aria-label="Primary navigation">
<div className="brand"><div className="brand-mark">CT</div><div><h1>CompText V7</h1><p>Enterprise showcase console</p></div></div>
<div className="brand"><div className="brand-mark">CT</div><div><h1>CompText V7</h1><p>Replay validation console</p></div></div>
<nav className="nav">
{navigation.map((item) => <button key={item.id} onClick={() => onNavigate(item.id)} aria-current={item.id === activeRoute ? 'page' : undefined}><item.icon size={20} /><span><strong>{item.label}</strong><span>{item.description}</span></span></button>)}
</nav>
<div className="sidebar-footer">Cloud-first showcase: docs, CI artifacts, typed payloads, and reviewer-safe validation boundaries.</div>
<div className="sidebar-footer">Review surface: docs, CI artifacts, typed payloads, and validation boundaries.</div>
</aside>
<main className="main">
<header className="topbar">
Expand Down
16 changes: 8 additions & 8 deletions dashboard/app/src/features/overview/OverviewPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ const architectureLayers = [
];

const validationSteps = [
'Industrial validation workflow: pytest, deterministic replay, token telemetry, semantic forensic validation, benchmark replay, dashboard startup validation.',
'Replay validation workflow: pytest, deterministic replay, token telemetry, semantic forensic validation, benchmark replay, dashboard startup validation.',
'Agent workflow checks: reports, contract schemas, API/export fixtures, project health, dashboard health, dashboard typecheck/build, release-health smoke coverage.',
'hash-companion-validation: CFI-01/02/03 cloud CI result contract and artifact flow.',
];
Expand All @@ -120,12 +120,12 @@ function Hero({ payload, releaseHealth }: { payload: DashboardPayload; releaseHe
<section className="showcase-hero" aria-labelledby="showcase-title">
<div className="hero-orbit" aria-hidden="true"><span /><span /><span /></div>
<div className="hero-content">
<p className="eyebrow"><Sparkles size={15} /> Enterprise showcase · cloud-first review</p>
<p className="eyebrow"><Sparkles size={15} /> Replay validation · cloud-first review</p>
<h2 id="showcase-title">CompText V7 turns repetitive diagnostics into auditable KVTC frames.</h2>
<p className="hero-copy">A premium reviewer dashboard for deterministic, lossy token reduction over structured synthetic diagnosticsfocused on retained anchors, validation evidence, CI artifacts, and clear enterprise boundaries.</p>
<div className="hero-actions" aria-label="Showcase highlights">
<p className="hero-copy">A reviewer dashboard for deterministic, lossy token reduction over structured synthetic diagnostics, focused on retained anchors, validation evidence, CI artifacts, and explicit scope boundaries.</p>
<div className="hero-actions" aria-label="Validation highlights">
<span><Cloud size={16} /> GitHub Actions is the evidence authority</span>
<span><LockKeyhole size={16} /> No local showcase execution required</span>
<span><LockKeyhole size={16} /> No local demo execution required</span>
<span><ShieldCheck size={16} /> No production or certification claim</span>
</div>
</div>
Expand Down Expand Up @@ -196,7 +196,7 @@ function ValidationPipeline({ payload }: { payload: DashboardPayload }) {
<div className="section-heading">
<p className="eyebrow">Validation pipeline</p>
<h2>Cloud evidence first; validation boundaries explicit.</h2>
<p>Forensic gates, replay stability, token telemetry, benchmark replay, and dashboard health are positioned as review evidence for synthetic/static showcase material.</p>
<p>Forensic gates, replay stability, token telemetry, benchmark replay, and dashboard health are positioned as review evidence for synthetic/static validation material.</p>
</div>
<div className="pipeline-rail">
{validationSteps.map((step, index) => <article key={step}><span>{index + 1}</span><p>{step}</p></article>)}
Expand All @@ -215,7 +215,7 @@ function DemoWalkthrough() {
<section className="showcase-section walkthrough-section">
<div className="section-heading">
<p className="eyebrow">Reviewer/demo walkthrough</p>
<h2>A no-local-execution path for enterprise reviewers.</h2>
<h2>A no-local-execution path for repository reviewers.</h2>
<p>The walkthrough guides reviewers through docs, Actions, CFI contracts, artifact payloads, and limits without asking them to run scripts or mutate local state.</p>
</div>
<div className="walkthrough-grid">
Expand All @@ -241,7 +241,7 @@ export function OverviewPage({ payload, releaseHealth }: { payload: DashboardPay
<ValidationPipeline payload={payload} />
<ReleaseHealthSummaryCard state={releaseHealth} />
<section className="grid cols-2">
<article className="card"><div className="card-header"><div><h3>Enterprise readiness boundaries</h3><p>Designed to make safe wording visible during review.</p></div><span className="badge warning">scoped</span></div><ul className="readiness-list"><li>Validated in repo/CI: deterministic prototype surfaces, schemas, reports, cloud workflows, and synthetic/static artifacts.</li><li>Planned next: governed pilot data, benchmark baselines, promotion evidence, and stakeholder-specific scripts.</li><li>Not claimed: production deployment, real-fleet correctness, certification, lossless reconstruction, or local showcase validation.</li></ul></article>
<article className="card"><div className="card-header"><div><h3>Validation scope boundaries</h3><p>Designed to make safe wording visible during review.</p></div><span className="badge warning">scoped</span></div><ul className="readiness-list"><li>Validated in repo/CI: deterministic prototype surfaces, schemas, reports, cloud workflows, and synthetic/static artifacts.</li><li>Planned next: governed pilot data, benchmark baselines, promotion evidence, and stakeholder-specific scripts.</li><li>Not claimed: production deployment, real-fleet correctness, certification, lossless reconstruction, or local demo validation.</li></ul></article>
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

This line is excessively long (over 600 characters), which makes it difficult to read and maintain. Breaking the JSX structure into multiple lines would significantly improve the readability of this component.

        <article className="card">
          <div className="card-header">
            <div>
              <h3>Validation scope boundaries</h3>
              <p>Designed to make safe wording visible during review.</p>
            </div>
            <span className="badge warning">scoped</span>
          </div>
          <ul className="readiness-list">
            <li>Validated in repo/CI: deterministic prototype surfaces, schemas, reports, cloud workflows, and synthetic/static artifacts.</li>
            <li>Planned next: governed pilot data, benchmark baselines, promotion evidence, and stakeholder-specific scripts.</li>
            <li>Not claimed: production deployment, real-fleet correctness, certification, lossless reconstruction, or local demo validation.</li>
          </ul>
        </article>

<article className="card"><div className="card-header"><div><h3>Service dependency health</h3><p>Operational ownership, SLO posture, and queue pressure from loaded payload.</p></div><span className="badge degraded">{payload.audit_summary.degraded_services} degraded</span></div><ServiceList services={payload.services} /></article>
</section>
<DemoWalkthrough />
Expand Down
2 changes: 1 addition & 1 deletion dashboard/app/src/features/replay/ReplayPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ import { percent, relativeTime } from '../../lib/format';
import type { DashboardPayload } from '../../types/domain';

export function ReplayPage({ payload }: { payload: DashboardPayload }) {
return <div className="grid"><section className="grid cols-4"><article className="card"><h3>Determinism</h3><div className="metric">{payload.replay.stable ? 'Stable' : 'Drift'}</div><span className={`badge ${payload.replay.stable ? 'nominal' : 'critical'}`}>{payload.replay.mismatches} mismatches</span></article><article className="card"><h3>Replay passes</h3><div className="metric">{payload.replay.passes}</div><p>Last run {relativeTime(payload.replay.last_run_at)}</p></article><article className="card"><h3>Corpus size</h3><div className="metric">{payload.replay.corpus_size}</div><p>Golden industrial fixtures</p></article><article className="card"><h3>Tokenizer</h3><div className="metric">{payload.audit_summary.tokenizer_version}</div><p className="mono">{payload.audit_summary.tokenizer_drift_fingerprint.slice(0, 24)}</p></article></section><article className="card"><div className="card-header"><div><h3>Drift severity timeline</h3><p>Dataset-level findings from typed replay and forensic APIs.</p></div></div><BarChart data={payload.drift_severity_timeline.map((point) => ({ label: point.dataset, value: point.critical * 4 + point.high * 2 + point.medium, auxiliary: point.low }))} valueLabel={(value) => percent(value, 0)} /></article></div>;
return <div className="grid"><section className="grid cols-4"><article className="card"><h3>Determinism</h3><div className="metric">{payload.replay.stable ? 'Stable' : 'Drift'}</div><span className={`badge ${payload.replay.stable ? 'nominal' : 'critical'}`}>{payload.replay.mismatches} mismatches</span></article><article className="card"><h3>Replay passes</h3><div className="metric">{payload.replay.passes}</div><p>Last run {relativeTime(payload.replay.last_run_at)}</p></article><article className="card"><h3>Corpus size</h3><div className="metric">{payload.replay.corpus_size}</div><p>Golden replay fixtures</p></article><article className="card"><h3>Tokenizer</h3><div className="metric">{payload.audit_summary.tokenizer_version}</div><p className="mono">{payload.audit_summary.tokenizer_drift_fingerprint.slice(0, 24)}</p></article></section><article className="card"><div className="card-header"><div><h3>Drift severity timeline</h3><p>Dataset-level findings from typed replay and forensic APIs.</p></div></div><BarChart data={payload.drift_severity_timeline.map((point) => ({ label: point.dataset, value: point.critical * 4 + point.high * 2 + point.medium, auxiliary: point.low }))} valueLabel={(value) => percent(value, 0)} /></article></div>;
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 line length here is extremely long (over 1000 characters), which is a significant maintainability issue. It is much better to format this JSX across multiple lines to make the structure clear and easier to modify in the future.

  return (
    <div className="grid">
      <section className="grid cols-4">
        <article className="card">
          <h3>Determinism</h3>
          <div className="metric">{payload.replay.stable ? 'Stable' : 'Drift'}</div>
          <span className={`badge ${payload.replay.stable ? 'nominal' : 'critical'}`}>
            {payload.replay.mismatches} mismatches
          </span>
        </article>
        <article className="card">
          <h3>Replay passes</h3>
          <div className="metric">{payload.replay.passes}</div>
          <p>Last run {relativeTime(payload.replay.last_run_at)}</p>
        </article>
        <article className="card">
          <h3>Corpus size</h3>
          <div className="metric">{payload.replay.corpus_size}</div>
          <p>Golden replay fixtures</p>
        </article>
        <article className="card">
          <h3>Tokenizer</h3>
          <div className="metric">{payload.audit_summary.tokenizer_version}</div>
          <p className="mono">{payload.audit_summary.tokenizer_drift_fingerprint.slice(0, 24)}</p>
        </article>
      </section>
      <article className="card">
        <div className="card-header">
          <div>
            <h3>Drift severity timeline</h3>
            <p>Dataset-level findings from typed replay and forensic APIs.</p>
          </div>
        </div>
        <BarChart
          data={payload.drift_severity_timeline.map((point) => ({
            label: point.dataset,
            value: point.critical * 4 + point.high * 2 + point.medium,
            auxiliary: point.low,
          }))}
          valueLabel={(value) => percent(value, 0)}
        />
      </article>
    </div>
  );
}

}
2 changes: 1 addition & 1 deletion dashboard/app/src/lib/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Activity, AlertTriangle, BarChart3, GitCompareArrows, HeartPulse, Shiel
import type { RouteId } from '../types/domain';

export const navigation = [
{ id: 'overview', label: 'Showcase', description: 'Enterprise cloud review experience', icon: Activity },
{ id: 'overview', label: 'Overview', description: 'Replay validation review experience', icon: Activity },
{ id: 'release-health', label: 'Release Health', description: 'Readiness gates and promotion evidence', icon: HeartPulse },
{ id: 'forensics', label: 'Forensics', description: 'Safety and retention gates', icon: ShieldCheck },
{ id: 'benchmarks', label: 'Benchmarks', description: 'Compression and throughput lanes', icon: BarChart3 },
Expand Down
6 changes: 3 additions & 3 deletions dashboard/industrial_dashboard.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Industrial operations dashboard backend for CompText V7.
"""Replay validation dashboard backend for CompText V7.

The stdlib server intentionally exposes a typed JSON boundary used by the React
operations console in ``dashboard/app`` while keeping CSV/JSON exports available
Expand Down Expand Up @@ -218,9 +218,9 @@ def csv_export(data: dict[str, object]) -> str:


def html_page(data: dict[str, object]) -> str:
return f"""<!doctype html><meta charset='utf-8'><title>CompText V7 Industrial Dashboard</title>
return f"""<!doctype html><meta charset='utf-8'><title>CompText V7 Replay Validation Dashboard</title>
<style>body{{font-family:system-ui;margin:2rem;background:#07111f;color:#e5edf7}}.card{{display:inline-block;border:1px solid #334155;border-radius:12px;padding:1rem;margin:.5rem;background:#102238}}table{{border-collapse:collapse}}td,th{{border:1px solid #334155;padding:.35rem}}a{{color:#6ee7f9}}</style>
<h1>CompText V7 Industrial Operations Dashboard</h1>
<h1>CompText V7 Replay Validation Dashboard</h1>
<p>The React console is served automatically after running <code>npm run build</code> in <code>dashboard/app</code>. This fallback keeps air-gapped stdlib access available.</p>
<p><a href='/api/dashboard'>API payload</a> | <a href='/export.json'>JSON export</a> | <a href='/export.csv'>CSV export</a> | <a href='/replay'>Replay controls</a></p>
<div class='card'><b>Forensic failures</b><br>{data['audit_summary']['forensic_failures']}</div>
Expand Down
Loading