From 2614ec662353183f5213092d40f7fb1d6d8fd50b Mon Sep 17 00:00:00 2001
From: arko33 <221298156+arko33@users.noreply.github.com>
Date: Thu, 22 Oct 2026 02:16:03 +0700
Subject: [PATCH] fix: live city never gets ambient filler (0 real files =
empty skyline); autopsy verdict refuses to judge with 0 samples
---
src/components/playground/AutopsyPanel.tsx | 13 +++++++++++++
src/components/playground/city.ts | 6 +++++-
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/components/playground/AutopsyPanel.tsx b/src/components/playground/AutopsyPanel.tsx
index 919d8cb..3d526f2 100644
--- a/src/components/playground/AutopsyPanel.tsx
+++ b/src/components/playground/AutopsyPanel.tsx
@@ -119,6 +119,19 @@ export default function AutopsyPanel({
+ ) : session.metrics.length === 0 ? (
+
+
+
—
+
+ runtime monitor waiting
+
+ 0 samples yet — the engine cannot judge curves it has not seen.
+ Point the recorder at your app (--app-url) so health samples arrive.
+
+
+
+
) : (
diff --git a/src/components/playground/city.ts b/src/components/playground/city.ts
index 696b249..f48e112 100644
--- a/src/components/playground/city.ts
+++ b/src/components/playground/city.ts
@@ -243,7 +243,10 @@ export function buildPlaygroundCity(
);
});
- // Ambient district blocks keep the city legible without inventing file facts.
+ // Ambient district blocks keep the demo city legible without inventing file
+ // facts. Live recordings never get filler: their skyline is exactly the set
+ // of files the session actually touched — zero files = an honest empty city.
+ if (!isLive) {
const ambientCount = 44;
for (let i = 0; i < ambientCount; i += 1) {
let guard = 0;
@@ -273,6 +276,7 @@ export function buildPlaygroundCity(
z,
);
}
+ }
return towers;
}