Skip to content

feat: braille oscilloscope / VU meter widget (TUI-014)#284

Merged
chernistry merged 3 commits into
mainfrom
wu5/braille-oscilloscope
Apr 6, 2026
Merged

feat: braille oscilloscope / VU meter widget (TUI-014)#284
chernistry merged 3 commits into
mainfrom
wu5/braille-oscilloscope

Conversation

@chernistry

Copy link
Copy Markdown
Collaborator

Summary

  • Adds BrailleCanvas class that maps a 2D dot-space onto Unicode braille characters (U+2800..U+28FF) at 2x4 subpixel resolution per terminal cell, with Bresenham line drawing
  • Adds OscilloscopeWidget (Textual Static) that renders agent activity as scrolling waveforms with per-channel colors, grid overlay, and peak hold tracking
  • Graceful fallbacks: sparkline block chars for non-braille terminals, ASCII bars for no_unicode accessibility, static single-row bars for no_animations mode
  • 23 unit tests covering canvas primitives, channel lifecycle, peak decay, color determinism, max-channel cap, and all fallback paths

Test plan

  • uv run pytest tests/unit/test_oscilloscope.py -x -q -- 23 passed
  • uv run ruff check src/bernstein/tui/oscilloscope.py tests/unit/test_oscilloscope.py -- clean
  • Pre-push typecheck -- 0 errors
  • Visual integration into app.py deferred to future WU

🤖 Generated with Claude Code

chernistry and others added 2 commits April 7, 2026 00:23
Renders agent activity as real-time waveforms using Unicode braille
characters at 2x4 subpixel resolution per terminal cell. Includes
BrailleCanvas with Bresenham line drawing, peak hold tracking, grid
overlay, and graceful fallbacks (sparkline, ASCII) for accessibility
and non-braille terminals.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kilo-code-bot

kilo-code-bot Bot commented Apr 6, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • src/bernstein/tui/oscilloscope.py - Implements BrailleCanvas and OscilloscopeWidget with support for braille waveforms, fallbacks, and accessibility modes
  • tests/unit/test_oscilloscope.py - 23 comprehensive unit tests covering all components

Reviewed by grok-code-fast-1 · 86,840 tokens

@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

CI Summary

Check Result
Repo hygiene ✅ success
Lint ✅ success
Type check ✅ success
Tests ❌ failure
Spelling ✅ success
Dead code ✅ success
Workflow lint ✅ success
Dist size ✅ success
SonarCloud ⏭️ skipped

Coverage and detailed reports are available via Codecov and the Checks tab.

@chernistry chernistry merged commit a519dc3 into main Apr 6, 2026
6 checks passed
@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

AI Review (GitHub Models)

Summary

The pull request adds a new feature, a braille oscilloscope and VU meter widget, to the Bernstein CLI orchestrator. This enhancement aims to improve accessibility for visually impaired users by providing an alternative data visualization method through braille representation.

Risk Assessment

Medium: While the feature appears beneficial for accessibility, introducing new UI components can introduce bugs and significantly affect user experience if not thoroughly tested. Additionally, ensuring that the new widget adheres to existing design patterns and API stability is crucial.

Actionable Recommendations

  • Conduct thorough testing of the new widget across different terminal emulators to ensure proper rendering.
  • Update the documentation to include instructions for users on how to utilize the new braille widget.
  • Ensure the widget has adequate error handling for edge cases (e.g., missing data).
  • Review performance implications of the new rendering logic to ensure it doesn't introduce latency.
  • Incorporate feedback from users with disabilities to optimize usability

@sonarqubecloud

sonarqubecloud Bot commented Apr 6, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

chernistry added a commit that referenced this pull request Apr 6, 2026
Removes CRT shader, plasma canvas, tracker view, oscilloscope,
BBS boot sequence, retro themes, and their integration into
app.py and dashboard.py.

Reverts PRs #277, #278, #279, #281, #284, #290, #291.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chernistry added a commit that referenced this pull request Apr 30, 2026
* feat: add braille oscilloscope / VU meter widget (TUI-014)

Renders agent activity as real-time waveforms using Unicode braille
characters at 2x4 subpixel resolution per terminal cell. Includes
BrailleCanvas with Bresenham line drawing, peak hold tracking, grid
overlay, and graceful fallbacks (sparkline, ASCII) for accessibility
and non-braille terminals.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* style: fix import sorting for ruff I001

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chernistry added a commit that referenced this pull request Apr 30, 2026
Removes CRT shader, plasma canvas, tracker view, oscilloscope,
BBS boot sequence, retro themes, and their integration into
app.py and dashboard.py.

Reverts PRs #277, #278, #279, #281, #284, #290, #291.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant