diff --git a/.pql/pql-plan.json b/.pql/pql-plan.json index b288742e..0a437ea8 100644 --- a/.pql/pql-plan.json +++ b/.pql/pql-plan.json @@ -1,5 +1,5 @@ { - "exported_at": "2026-05-05T11:08:47Z", + "exported_at": "2026-05-05T12:51:04Z", "decisions": [ { "id": "D-1", diff --git a/CHANGELOG.md b/CHANGELOG.md index b89ff40e..ac9c7e73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,12 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit. PgUp/PgDown so Claude Code (and other TUI apps) scroll their history naturally. +### Fixed + +- Terminal cell grid no longer drifts on bold text — bold rendering + is suppressed at the painter level since synthetic bold (with no + Bold.ttf registered) shifts glyph advance widths. + ### Changed - Inline terminal emulator based on xterm.dart v4.0.0 — replaces the diff --git a/Makefile b/Makefile index 4745df53..b9132b7d 100644 --- a/Makefile +++ b/Makefile @@ -170,11 +170,9 @@ ifeq ($(FLUTTER_OS),linux) > $(HOME)/.local/share/applications/net.schweitz.clide.desktop @gtk-update-icon-cache -f -t $(HOME)/.local/share/icons/hicolor 2>/dev/null || true @update-desktop-database $(HOME)/.local/share/applications 2>/dev/null || true - @tmux -L clide kill-server 2>/dev/null || true @echo "installed: $(INSTALL_DIR)/clide -> $(INSTALL_PREFIX)/clide/clide" @echo "desktop: ~/.local/share/applications/net.schweitz.clide.desktop" @echo "version: $(VERSION)" - @echo "tmux: clide socket killed (TEMP)" else ifeq ($(FLUTTER_OS),macos) @mkdir -p $(HOME)/Applications rm -rf $(HOME)/Applications/clide.app diff --git a/lib/src/terminal/src/ui/painter.dart b/lib/src/terminal/src/ui/painter.dart index 522e8f92..500f3221 100644 --- a/lib/src/terminal/src/ui/painter.dart +++ b/lib/src/terminal/src/ui/painter.dart @@ -190,9 +190,12 @@ class TerminalPainter { color = color.withOpacity(0.5); } + // Skip bold rendering — Flutter's synthetic bold (no Bold.ttf + // registered) drifts glyph advance widths slightly, breaking + // the cell grid. Color is enough to convey emphasis in TUIs. final style = _textStyle.toTextStyle( color: color, - bold: cellFlags & CellFlags.bold != 0, + bold: false, italic: cellFlags & CellFlags.italic != 0, underline: cellFlags & CellFlags.underline != 0, );