Production readiness, SEO enhancements, and Engine V2 upgrades

This commit is contained in:
drjones
2026-06-13 19:10:10 -07:00
parent 8333e241c6
commit 44d89d205c
34 changed files with 23521 additions and 162056 deletions

View File

@@ -155,10 +155,10 @@ export function StatusPanel() {
</span>
</div>
<div className="mt-1 text-[11px] text-zinc-400 tabular-nums">
{room.volumeFt3.toFixed(0)} ft3 · {room.exhaustCfm.toFixed(0)} exhaust CFM
{room.volumeFt3.toFixed(0)} ft3 · {room.exhaustCfm.toFixed(0)} exhaust · {room.intakeCfm.toFixed(0)} intake CFM
</div>
<div className="text-[10px] text-zinc-500 tabular-nums">
{room.airChangesPerMinute.toFixed(2)} exchanges/min · {room.airChangesPerHour.toFixed(1)} ACH
{room.airChangesPerMinute.toFixed(2)} exchanges/min · {room.airChangesPerHour.toFixed(1)} ACH · {room.netFreshAirCfm.toFixed(0)} fresh-air CFM
</div>
<div className="mt-1 text-[10px] text-zinc-600 tabular-nums">
circ {room.circulationCfm.toFixed(0)} CFM · light {room.lightWatts.toFixed(0)} W · CO2 {room.co2TankCount} tank{room.co2TankCount === 1 ? '' : 's'}
@@ -205,6 +205,9 @@ export function StatusPanel() {
<span className="rounded bg-zinc-900 px-1.5 py-0.5 border border-zinc-800 text-amber-400">
{m.roomPPFD.toFixed(0)}
</span>
<span className="rounded bg-zinc-900 px-1.5 py-0.5 border border-zinc-800 text-zinc-300">
ACH {m.airChangesPerHour.toFixed(1)}
</span>
</div>
);
})()}
@@ -239,6 +242,14 @@ export function StatusPanel() {
</div>
) : null;
})()}
{(() => {
const runtime = sim.reservoirRuntime[stats.id];
return runtime && runtime.gallonsHeldInSystem > 0.02 ? (
<div className="mb-1 text-[9px] font-mono text-zinc-500">
{runtime.gallonsHeldInSystem.toFixed(2)} gal held in primed lines
</div>
) : null;
})()}
<div className="flex items-baseline justify-between">
<span className="text-xs font-semibold text-zinc-200">
{stats.label}