chore(display): add debug logging to NullDisplay for development

- Print first few frames periodically to aid debugging
- Remove obsolete design doc

This helps inspect buffer contents when running headless tests.
This commit is contained in:
2026-03-18 12:19:34 -07:00
parent a95b24a246
commit 6d2c5ba304
2 changed files with 22 additions and 145 deletions

View File

@@ -33,6 +33,8 @@ class NullDisplay:
self._last_buffer = None
def show(self, buffer: list[str], border: bool = False) -> None:
import sys
from engine.display import get_monitor, render_border
# Get FPS for border (if available)
@@ -52,6 +54,26 @@ class NullDisplay:
buffer = render_border(buffer, self.width, self.height, fps, frame_time)
self._last_buffer = buffer
# For debugging: print first few frames to stdout
if hasattr(self, "_frame_count"):
self._frame_count += 1
else:
self._frame_count = 0
# Only print first 5 frames or every 10th frame
if self._frame_count <= 5 or self._frame_count % 10 == 0:
sys.stdout.write("\n" + "=" * 80 + "\n")
sys.stdout.write(
f"Frame {self._frame_count} (buffer height: {len(buffer)})\n"
)
sys.stdout.write("=" * 80 + "\n")
for i, line in enumerate(buffer[:30]): # Show first 30 lines
sys.stdout.write(f"{i:2}: {line}\n")
if len(buffer) > 30:
sys.stdout.write(f"... ({len(buffer) - 30} more lines)\n")
sys.stdout.flush()
if monitor:
t0 = time.perf_counter()
chars_in = sum(len(line) for line in buffer)