Task · CXO-0048

Clear the three blocked Renovate major bumps: bubbletea v2, lipgloss v2, backoff v7

Description

Three Renovate major-version PRs have been red since they opened and cannot self-merge, so the module graph is pinned behind them indefinitely:

PR 54 github.com/charmbracelet/bubbletea v1 -> v2 PR 55 github.com/charmbracelet/lipgloss v1 -> v2 PR 56 github.com/cenkalti/backoff/v5 v5 -> v7

Each fails the same set of jobs (build/lint/test/probe, golangci-lint, govulncheck, docker image builds, ci-success), which is the signature of a compile break rather than a flaky gate, and all three are breaking API rewrites rather than drop-in bumps.

bubbletea and lipgloss are TUI dependencies, so the blast radius is the interactive investigation tools, not the exporter’s signal path. backoff sits in the retry path and is the one with real behavioural exposure: a v5-to-v7 rewrite changes retry semantics, and this codebase already has a settled position that a config fault on one sink must not stop every signal.

bubbletea and lipgloss should be taken together - they share the charmbracelet v2 API generation and splitting them leaves the tools uncompilable in between. Take backoff separately so its retry-behaviour change is reviewable on its own diff.

Acceptance Criteria

Definition of Done

Implementation Plan

  1. Migrate bubbletea and lipgloss v2 together and validate all TUI tools. 2. Migrate backoff v7 separately, document the retry-semantics delta, and add focused sink retry coverage. 3. Verify main CI jobs and reconcile the superseded Renovate pull requests without touching release PR 79.

Implementation Notes

Wave 5 implementation complete: Charm v2 landed together in 3fdcfff using the canonical charm.land module paths; backoff v7 and explicit retry-semantics tests landed separately in 5848d14; all CLIs build, just check passes, and exact-head CI 34709771715 includes successful govulncheck and docker image jobs. AC3 remains open because superseded Renovate PRs 54, 55 and 56 are still OPEN; external-write authority did not grant manual PR mutation.

Automated reconciliation condition observed: GitHub reports PRs 54, 55 and 56 CLOSED at 2026-09-12T18:12:02Z through 18:12:07Z after the tracker commit; no manual PR write was made, and release PR 79 remains OPEN and untouched.

Final Summary

Parked only at external bot reconciliation. Resume when live GitHub state shows PRs 54, 55 and 56 closed or merged with no replacement red PR; then check AC3 and mark Done without changing code. PR 79 remains untouched.

The recorded park condition cleared automatically: Renovate closed all three superseded dependency PRs, so AC3 is now proven and the task is Done.

View the source file on GitHub