33df254409
feat(positioning): Add configurable PositionStage for positioning modes
...
- Added PositioningMode enum (ABSOLUTE, RELATIVE, MIXED)
- Created PositionStage class with configurable positioning modes
- Updated terminal display to support positioning parameter
- Updated PipelineParams to include positioning field
- Updated DisplayStage to pass positioning to terminal display
- Added documentation in docs/positioning-analysis.md
Positioning modes:
- ABSOLUTE: Each line has cursor positioning codes (\033[row;1H)
- RELATIVE: Lines use newlines (no cursor codes, better for scrolling)
- MIXED: Base content uses newlines, effects use absolute positioning (default)
Usage:
# In pipeline or preset:
positioning = "absolute" # or "relative" or "mixed"
# Via command line (future):
--positioning absolute
2026-03-21 17:38:20 -07:00
b2404068dd
docs: Add ADR for preset scripting language (Issue #48 )
2026-03-20 03:39:33 -07:00
7eaa441574
feat: Add fast startup fetch and background caching
...
- Add for quick startup using first N feeds
- Add background thread for full fetch and caching
- Update to use fast fetch
- Update docs and skills
2026-03-19 22:38:55 -07:00
bb0f1b85bf
Update docs, fix Pygame window, and improve camera stage timing
2026-03-18 23:16:09 -07:00
6d2c5ba304
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.
2026-03-18 12:19:34 -07:00
b926b346ad
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
2026-03-18 03:37:53 -07:00
a65fb50464
chore: remove deprecated docs and add skills library docs
...
- Delete LEGACY_CLEANUP_CHECKLIST.md, LEGACY_CODE_ANALYSIS.md,
LEGACY_CODE_INDEX.md, SESSION_SUMMARY.md (superseded by wiki)
- Add Skills Library section to AGENTS.md documenting MCP skills
- Add uv to mise.toml tool versions
2026-03-18 00:36:57 -07:00
85d8b29bab
docs: Add comprehensive Phase 4 summary - deprecated adapters removed
2026-03-16 21:09:22 -07:00
0980279332
docs: Add comprehensive session summary - Phase 2 & 3 complete
...
Summary includes:
- Phase 2: 67 new tests added (data sources, adapters, app integration)
- Phase 3.1-2: 4,930 lines of dead code removed
- Phase 3.3-4: Legacy modules reorganized into engine/legacy/ and tests/legacy/
- Total: 5,296 lines of legacy code handled
- 515 core tests passing, 0 regressions
- Codebase significantly improved in quality and maintainability
2026-03-16 20:47:30 -07:00
5762d5e845
refactor(cleanup): Remove 4,500 lines of dead code (Phase 1 legacy cleanup)
...
- Delete engine/emitters.py (25 lines, unused Protocol definitions)
- Delete engine/beautiful_mermaid.py (4,107 lines, unused Mermaid ASCII renderer)
- Delete engine/pipeline_viz.py (364 lines, unused visualization module)
- Delete tests/test_emitters.py (orphaned test file)
- Remove introspect_pipeline_viz() method and references from engine/pipeline.py
- Add comprehensive legacy code analysis documentation in docs/
Phase 1 of legacy code cleanup: 0 risk, 100% safe to remove.
All tests pass (521 passing tests, 9 fewer due to test_emitters.py removal).
No regressions or breaking changes.
2026-03-16 20:33:04 -07:00
bcb4ef0cfe
feat(pipeline): add unified pipeline architecture with Stage abstraction
...
- Add engine/pipeline/ module with Stage ABC, PipelineContext, PipelineParams
- Stage provides unified interface for sources, effects, displays, cameras
- Pipeline class handles DAG-based execution with dependency resolution
- PipelinePreset for pre-configured pipelines (demo, poetry, pipeline, etc.)
- Add PipelineParams as params layer for animation-driven config
- Add StageRegistry for unified stage registration
- Add sources_v2.py with DataSource.is_dynamic property
- Add animation.py with Preset and AnimationController
- Skip ntfy integration tests by default (require -m integration)
- Skip e2e tests by default (require -m e2e)
- Update pipeline.py with comprehensive introspection methods
2026-03-16 03:11:24 -07:00
4d28f286db
docs: add pipeline documentation with mermaid diagrams
...
- Add docs/PIPELINE.md with comprehensive pipeline flowchart
- Document camera modes (vertical, horizontal, omni, floating)
- Update AGENTS.md with pipeline documentation instructions
2026-03-16 01:54:05 -07:00
4afab642f7
docs: add README update design spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 16:56:58 -07:00