fix(pipeline): Use config display value in auto-injection

- Change line 477 in controller.py to use self.config.display or "terminal"
- Previously hardcoded "terminal" ignored config and CLI arguments
- Now auto-injection respects the validated display configuration

fix(app): Add warnings for auto-selected display

- Add warning in pipeline_runner.py when --display not specified
- Add warning in main.py when --pipeline-display not specified
- Both warnings suggest using null display for headless mode

feat(completion): Add bash/zsh/fish completion scripts

- completion/mainline-completion.bash - bash completion
- completion/mainline-completion.zsh - zsh completion
- completion/mainline-completion.fish - fish completion
- Provides completions for --display, --pipeline-source, --pipeline-effects,
  --pipeline-camera, --preset, --theme, --viewport, and other flags
This commit is contained in:
2026-03-21 17:05:03 -07:00
parent f568cc1a73
commit 860bab6550
6 changed files with 251 additions and 3 deletions

View File

@@ -474,9 +474,10 @@ class Pipeline:
not self._find_stage_with_capability("display.output")
and "display" not in self._stages
):
display = DisplayRegistry.create("terminal")
display_name = self.config.display or "terminal"
display = DisplayRegistry.create(display_name)
if display:
self.add_stage("display", DisplayStage(display, name="terminal"))
self.add_stage("display", DisplayStage(display, name=display_name))
injected.append("display")
# Rebuild pipeline if stages were injected