diff --git a/engine/pipeline/adapters.py b/engine/pipeline/adapters.py index 4b96789..7a9ba3c 100644 --- a/engine/pipeline/adapters.py +++ b/engine/pipeline/adapters.py @@ -111,7 +111,7 @@ class DisplayStage(Stage): @property def dependencies(self) -> set[str]: - return set() + return {"render.output"} # Display needs rendered content def init(self, ctx: PipelineContext) -> bool: w = ctx.params.viewport_width if ctx.params else 80 diff --git a/engine/pipeline/controller.py b/engine/pipeline/controller.py index 6810a66..d72b7bd 100644 --- a/engine/pipeline/controller.py +++ b/engine/pipeline/controller.py @@ -520,7 +520,10 @@ def create_pipeline_from_params(params: PipelineParams) -> Pipeline: def create_default_pipeline() -> Pipeline: """Create a default pipeline with all standard components.""" from engine.data_sources.sources import HeadlinesDataSource - from engine.pipeline.adapters import DataSourceStage + from engine.pipeline.adapters import ( + DataSourceStage, + SourceItemsToBufferStage, + ) pipeline = Pipeline() @@ -528,6 +531,9 @@ def create_default_pipeline() -> Pipeline: source = HeadlinesDataSource() pipeline.add_stage("source", DataSourceStage(source, name="headlines")) + # Add render stage to convert items to text buffer + pipeline.add_stage("render", SourceItemsToBufferStage(name="items-to-buffer")) + # Add display stage display = StageRegistry.create("display", "terminal") if display: diff --git a/tests/test_adapters.py b/tests/test_adapters.py index 32680fd..3bd7024 100644 --- a/tests/test_adapters.py +++ b/tests/test_adapters.py @@ -97,10 +97,10 @@ class TestDisplayStage: assert "display.output" in stage.capabilities def test_display_stage_dependencies(self): - """DisplayStage has no dependencies.""" + """DisplayStage depends on render.output.""" mock_display = MagicMock() stage = DisplayStage(mock_display, name="terminal") - assert stage.dependencies == set() + assert "render.output" in stage.dependencies def test_display_stage_init(self): """DisplayStage.init() calls display.init() with dimensions."""