Skip to content

deps: bump x/ansi v0.11.3 → v0.11.7 (charm upgrade Phase 0)#260

Merged
marcus merged 6 commits into
mainfrom
claude/elated-kirch-8027be
Jun 8, 2026
Merged

deps: bump x/ansi v0.11.3 → v0.11.7 (charm upgrade Phase 0)#260
marcus merged 6 commits into
mainfrom
claude/elated-kirch-8027be

Conversation

@marcus

@marcus marcus commented Jun 8, 2026

Copy link
Copy Markdown
Owner

Phase 0 — charmbracelet upgrade warm-up

Bumps github.com/charmbracelet/x/ansi from v0.11.3 → v0.11.7, the one charmbracelet dependency that is safe to bump while still on v1 lipgloss/bubbletea. This isolates any width-calc visual shifts ahead of the much larger v2 trio migration (Phases 1–2).

Why it's safe

The 0.11.x line contains only width-calculation fixes and East-Asian-ambiguous-width options — no signature changes to the functions sidecar uses (StringWidth, Strip, Truncate, TruncateLeft). The x/ansi import path is unchanged (no vanity domain, no /v2).

Changes

  • go.mod/go.sum only — no source edits.
  • Transitive width libs move with it: displaywidth 0.6.2→0.11.0, uax29/v2 2.3.0→2.7.0, go-runewidth 0.0.19→0.0.23, go-colorful 1.3.0→1.4.0; clipperhouse/stringish dropped.

Verification

  • go build ./... — clean
  • go vet ./... — clean
  • go test ./... — all green (incl. width-sensitive internal/ui, internal/styles)

Manual QA to do before merge

Spot-check column alignment in views that mix wide/emoji/CJK glyphs (workspace list/preview, file browser tree). The 0.11.x changes are width-calc corrections — an off-by-one cell there is almost certainly an intended fix, not a regression.

Plan: docs/plans/active/charm-upgrade-01-xansi-warmup.md

🤖 Generated with Claude Code

marcus and others added 6 commits June 8, 2026 15:31
Codebase-grounded upgrade plans in docs/plans/active, one file per
library, numbered in execution order:

- 00 overview: sequencing, version matrix, risk register
- 01 x/ansi warm-up (Phase 0, standalone)
- 02 lipgloss / 03 bubbletea / 04 bubbles (Phase 1, atomic trio)
- 05 glamour / 06 x/cellbuf + transitive cleanup (Phase 2)

Key findings: v2 modules moved to the charm.land vanity path; the
lipgloss/bubbletea/bubbles trio must land together; lipgloss.Color
becomes a function returning image/color.Color. Each plan lists exact
file:line change sites with before/after snippets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Width-calculation fixes only; no signature changes to the StringWidth/
Strip/Truncate/TruncateLeft functions sidecar uses. Safe while still on
v1 lipgloss/bubbletea. Transitive width libs move with it (displaywidth
0.11.0, uax29 2.7.0, go-runewidth 0.0.23, go-colorful 1.4.0).

No source edits. build/vet/test all clean.

Plan: docs/plans/active/charm-upgrade-01-xansi-warmup.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Teaches future agents how to verify layout + color regressions headlessly
by driving sidecar in a detached tmux session and comparing old-vs-new
binaries on extracted signals (not noisy full-screen diffs):

- width/alignment: border-column consistency check (plain capture)
- color: rendered RGB palette set-diff via `tmux capture-pane -e`
  (directly targets Phase 1's #1 risk, lipgloss-v2 color regressions)

Includes the GOWORK=off worktree-build gotcha, render-wait polling, and
the truecolor env needed for the palette test. Validated on Phase 0:
old vs new binaries gave perfect alignment + an identical 144-color
palette. Phase 0 verification section now points at the recipe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@marcus marcus merged commit 665573a into main Jun 8, 2026
2 checks passed
@marcus marcus deleted the claude/elated-kirch-8027be branch June 8, 2026 23:27
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.

1 participant