Goal
Audit every dependency and ensure we're on the current, actively-supported, stable release that reflects real upstream state — not a package/version chosen from model training-data familiarity.
Why (the recurring smell)
Surfaced during the dependabot merge sweep (#396–#398, #400 rebase): we're on the charm v1 generation (glamour/lipgloss/bubbletea/bubbles) while the v2 line is mature, and lipgloss is pinned to an untagged pseudo-version (v1.1.1-0.2025..., pulled in by glamour v1.0.0).
The systemic pattern: agents default to packages/versions they "know" from training rather than verifying current upstream reality. Concrete precedent in this repo: earlier work used docker/docker (the legacy/retired import) instead of moby/moby — since corrected. Risk it recurs across the tree.
Dependabot's blind spot
Dependabot bumps within a module path only. It will NOT:
- migrate a retired/renamed module to its successor (
docker/docker → moby/moby),
- jump to a newer major at a different import path (
/v2, vanity domains like charm.land/...),
- replace a pseudo-version (untagged commit) pin with a clean tag.
Those require a periodic manual audit. go list -m -u all only surfaces within-path updates (clean here) — it does not flag the above.
Scope / method
For every direct dependency:
Sub-issues
Goal
Audit every dependency and ensure we're on the current, actively-supported, stable release that reflects real upstream state — not a package/version chosen from model training-data familiarity.
Why (the recurring smell)
Surfaced during the dependabot merge sweep (#396–#398, #400 rebase): we're on the charm v1 generation (glamour/lipgloss/bubbletea/bubbles) while the v2 line is mature, and
lipglossis pinned to an untagged pseudo-version (v1.1.1-0.2025..., pulled in by glamour v1.0.0).The systemic pattern: agents default to packages/versions they "know" from training rather than verifying current upstream reality. Concrete precedent in this repo: earlier work used
docker/docker(the legacy/retired import) instead ofmoby/moby— since corrected. Risk it recurs across the tree.Dependabot's blind spot
Dependabot bumps within a module path only. It will NOT:
docker/docker→moby/moby),/v2, vanity domains likecharm.land/...),Those require a periodic manual audit.
go list -m -u allonly surfaces within-path updates (clean here) — it does not flag the above.Scope / method
For every direct dependency:
go list -m -u all+ pkg.go.dev / deps.dev upstream status + repo archive/rename check.Sub-issues