fix(frame): render continuous box borders - #51
Merged
kitlangton merged 1 commit intoAug 8, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Render light Unicode box-drawing characters as continuous pixel geometry in Drive's shared frame renderer. Captured OpenCode Mermaid diagrams now have uniform borders in both PNG exports and the browser catalog.
Before / After
Before: light box characters fell through to font rendering, leaving row-boundary gaps. Drawing connected segments geometrically initially exposed a second issue: overlapping translucent rectangles accumulated alpha at cell centers and junctions, producing periodic bright dashes and hotspots.
After: each box glyph paints a non-overlapping union of integer-aligned rectangles. Adjacent cells meet edge-to-edge, while every pixel inside a glyph is painted at most once.
How
packages/drive/src/frame/index.tsrecognizes light lines, corners, rounded corners, tees, and crossings as shared geometric primitives.packages/drive/test/frame.test.tsverifies integer alignment and rejects overlapping pixel coverage.@opencode-ai/clientis updated fromnext-16543tonext-17010; the manual interleaving fixture follows the canonicalcallIDtoidprotocol rename.Scope
This does not change OpenCode's native Mermaid generation or the standalone Merman package. It only changes how OpenCode Drive renders captured terminal frames.
Testing
bun run --cwd packages/drive test:effect(205 tests)bun run --cwd packages/drive typecheckbun run --cwd packages/drive lintbun run --cwd apps/catalog typecheckbun run --cwd apps/catalog test(28 tests)bun run --cwd apps/catalog buildDemo
This is a real Drive PNG render of dim, translucent box glyphs before and after the fix, enlarged with nearest-neighbor scaling so individual terminal pixels remain visible.