# fix\(web\): render powerline separators at cell edges · PR \#5607 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/5607)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: Unavailable fork

Source branch: fix/web-terminal-powerline-glyphs

Target branch: main

Head commit: 9fd417571439c9f74768d059be6967c3e5495119

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/5607)

[Commits](https://git.cafe/pingdotgg/t3code/pull/5607/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/5607/diffs?format=markdown)

## Description

---

The web terminal rendered solid Powerline separators through font fallback. Their font metrics could leave gaps between prompt segments.

Draw U+E0B0 and U+E0B2 as triangles bounded by the terminal cell, and stop text batching before those glyphs. Normal rendering and the block cursor share the same geometry. Other glyphs retain font rendering.

Validation: nine focused renderer tests, web typecheck, scoped lint, and format passed. One retained renderer regression covers cell-edge geometry and text batching; a temporary block-cursor probe also passed. Independent Claude Opus and GPT-6.1 reviews approved the source.

The integrated Browser pass exercised a real terminal at 1280×800 and DPR 2 with the default font and FreeMono: colored segments, both block-cursor directions, selection/copy, first/last columns, and ordinary scrollback. The before comparison swaps only the exact baseline renderer into the same isolated app. Selection was created through the real canvas handlers with synthetic pointer events; a trusted copy event preserved the original glyphs. Supplemental 110%/125% CSS scaling showed no extra seams; native browser zoom and an Electron launch were not verified.

Before — baseline renderer, FreeMono:

![Before: font-rendered Powerline separators leave gaps](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f54dafe860916608/base-freemono-colored.png)

After — reviewed renderer, same font and fixture:

![After: solid Powerline triangles reach the cell edges](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/246d6f8fc63125ad/head-freemono-colored-matched.png)

Block cursor on the right-pointing separator:

![Block cursor preserves the right-pointing triangle](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2bc50e56c04d7fb3/head-freemono-right-cursor.png)

Selection across the prompt:

![Selection keeps the prompt geometry intact](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cdf4d74a263ae748/head-freemono-selected.png)

Original contribution by @SadriG91. Maintainer takeover: Claude Opus 5.5 for tests/review, Claude Fable 5.1 for implementation, GPT-6.1 for independent review and Browser verification; Claude Code and Codex harnesses.

