fix: resolve terminal display wobble and effect dimension stability

- Fix TerminalDisplay: add screen clear each frame (cursor home + erase down)
- Fix CameraStage: use set_canvas_size instead of read-only viewport properties
- Fix Glitch effect: preserve visible line lengths, remove cursor positioning
- Fix Fade effect: return original line when fade=0 instead of empty string
- Fix Noise effect: use input line length instead of terminal_width
- Remove HUD effect from all presets (redundant with border FPS display)
- Add regression tests for effect dimension stability
- Add docs/ARCHITECTURE.md with Mermaid diagrams
- Add mise tasks: diagram-ascii, diagram-validate, diagram-check
- Move markdown docs to docs/ (ARCHITECTURE, Refactor, hardware specs)
- Remove redundant requirements files (use pyproject.toml)
- Add *.dot and *.png to .gitignore

Closes #25
This commit is contained in:
2026-03-18 03:34:36 -07:00
parent a65fb50464
commit b926b346ad
30 changed files with 1472 additions and 40 deletions

View File

@@ -80,7 +80,7 @@ DEMO_PRESET = PipelinePreset(
source="headlines",
display="pygame",
camera="scroll",
effects=["noise", "fade", "glitch", "firehose", "hud"],
effects=["noise", "fade", "glitch", "firehose"],
)
POETRY_PRESET = PipelinePreset(
@@ -89,7 +89,7 @@ POETRY_PRESET = PipelinePreset(
source="poetry",
display="pygame",
camera="scroll",
effects=["fade", "hud"],
effects=["fade"],
)
PIPELINE_VIZ_PRESET = PipelinePreset(
@@ -98,7 +98,7 @@ PIPELINE_VIZ_PRESET = PipelinePreset(
source="pipeline",
display="terminal",
camera="trace",
effects=["hud"],
effects=[],
)
WEBSOCKET_PRESET = PipelinePreset(
@@ -107,7 +107,7 @@ WEBSOCKET_PRESET = PipelinePreset(
source="headlines",
display="websocket",
camera="scroll",
effects=["noise", "fade", "glitch", "hud"],
effects=["noise", "fade", "glitch"],
)
SIXEL_PRESET = PipelinePreset(
@@ -116,7 +116,7 @@ SIXEL_PRESET = PipelinePreset(
source="headlines",
display="sixel",
camera="scroll",
effects=["noise", "fade", "glitch", "hud"],
effects=["noise", "fade", "glitch"],
)
FIREHOSE_PRESET = PipelinePreset(
@@ -125,7 +125,7 @@ FIREHOSE_PRESET = PipelinePreset(
source="headlines",
display="pygame",
camera="scroll",
effects=["noise", "fade", "glitch", "firehose", "hud"],
effects=["noise", "fade", "glitch", "firehose"],
)