Implement deterministic website build engine
This commit is contained in:
@@ -320,19 +320,43 @@ export const BuildEngineTab: React.FC<BuildEngineTabProps> = ({
|
||||
{/* TAB CONTENT: VALIDATION */}
|
||||
{activeTab === "validation" && (
|
||||
<div className="space-y-3 text-xs">
|
||||
<div className="p-4 bg-emerald-950/40 border border-emerald-500/20 rounded-sm text-emerald-300 space-y-1">
|
||||
<div
|
||||
className={`p-4 rounded-sm space-y-1 border ${
|
||||
selectedBuild.validationReport.summary.passed
|
||||
? "bg-emerald-950/40 border-emerald-500/20 text-emerald-300"
|
||||
: "bg-rose-950/40 border-rose-500/20 text-rose-300"
|
||||
}`}
|
||||
>
|
||||
<div className="flex items-center space-x-2 font-bold">
|
||||
<CheckCircle2 className="w-4 h-4 text-emerald-400" />
|
||||
{selectedBuild.validationReport.summary.passed ? (
|
||||
<CheckCircle2 className="w-4 h-4 text-emerald-400" />
|
||||
) : (
|
||||
<XCircle className="w-4 h-4 text-rose-400" />
|
||||
)}
|
||||
<span>
|
||||
Validation Passed: 0 Fatal Errors, 0 Route Collisions
|
||||
Validation {selectedBuild.validationReport.summary.passed ? "Passed" : "Failed"}: {selectedBuild.validationReport.summary.totalErrors} Errors, {selectedBuild.validationReport.summary.totalWarnings} Warnings
|
||||
</span>
|
||||
</div>
|
||||
<p className="text-emerald-400 text-[11px]">
|
||||
All required metadata, Markdown dialect constraints,
|
||||
YouTube embed IDs, and media namespace routes passed
|
||||
verification.
|
||||
<p className="text-[11px] opacity-80">
|
||||
{selectedBuild.validationReport.routeCollisions.length} route collisions, {selectedBuild.validationReport.missingMedia.length} missing media references, and {selectedBuild.validationReport.htmlPolicyViolations.length} HTML policy violations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{selectedBuild.validationReport.errors.map((error, index) => (
|
||||
<div key={`error-${index}`} className="p-3 bg-rose-950/20 border border-rose-500/20 rounded-sm">
|
||||
<div className="font-mono font-bold text-rose-400">{error.code}</div>
|
||||
<div className="text-neutral-300 mt-1">{error.message}</div>
|
||||
{error.file && <div className="font-mono text-neutral-500 mt-1">{error.file}</div>}
|
||||
</div>
|
||||
))}
|
||||
|
||||
{selectedBuild.validationReport.warnings.map((warning, index) => (
|
||||
<div key={`warning-${index}`} className="p-3 bg-amber-950/20 border border-amber-500/20 rounded-sm">
|
||||
<div className="font-mono font-bold text-amber-400">{warning.code}</div>
|
||||
<div className="text-neutral-300 mt-1">{warning.message}</div>
|
||||
{warning.file && <div className="font-mono text-neutral-500 mt-1">{warning.file}</div>}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user