Skip to content

PHO-24/#44 add CliOrb LumosRenderer<LumosTerminalFrame> terminal renderer#50

Merged
wow-miley merged 1 commit into
mainfrom
miley/pho-24-cliorb-lumosrendererlumosterminalframe-terminal-renderer
May 25, 2026
Merged

PHO-24/#44 add CliOrb LumosRenderer<LumosTerminalFrame> terminal renderer#50
wow-miley merged 1 commit into
mainfrom
miley/pho-24-cliorb-lumosrendererlumosterminalframe-terminal-renderer

Conversation

@wow-miley
Copy link
Copy Markdown
Contributor

Summary

  • Adds CliOrb, a JVM LumosRenderer<LumosTerminalFrame> that writes ANSI escape sequences to a PrintStream, completing the Wave 2 pipeline. Supports FULL and DIFFERENTIAL clear modes with run-length color optimization, cursor hide/show lifecycle, shutdown-hook-driven start()/stop(), and polled cross-platform resize handling via an injectable TerminalSize provider (system props → env vars → 80x24 fallback).
  • Includes a TerminalSize provider interface and JVM default implementation, plus a ClearMode enum.
  • Unit tests cover the FULL render output, run-length optimization (one color escape for an all-red frame), DIFFERENTIAL no-op on unchanged frames and changed-cell-only emission on subsequent frames, start()/stop() shutdown semantics, no-op after stop, resize polling triggering a full redraw, and the missing-lattice error path.

Closes #44

Test plan

  • ./gradlew :phosphor-lumos-cli:jvmTest
  • ./gradlew jvmTest ktlintCheck

…erer

Adds the JVM-side terminal renderer that writes ANSI escape sequences for a
LumosTerminalFrame to a PrintStream. Implements LumosRenderer with cursor
hide/show lifecycle, FULL and DIFFERENTIAL clear modes, run-length color
optimization, shutdown-hook-driven start/stop, and polled cross-platform
resize handling via an injectable TerminalSize provider.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@wow-miley wow-miley merged commit dce0196 into main May 25, 2026
2 checks passed
@wow-miley wow-miley deleted the miley/pho-24-cliorb-lumosrendererlumosterminalframe-terminal-renderer branch May 25, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CliOrb — LumosRenderer<LumosTerminalFrame> terminal renderer

1 participant