Skip to content

Show the newest out-of-cooldown version in bundle outdated - #9803

Merged
hsbt merged 11 commits into
masterfrom
outdated-cooldown-newest-outside
Aug 24, 2026
Merged

Show the newest out-of-cooldown version in bundle outdated#9803
hsbt merged 11 commits into
masterfrom
outdated-cooldown-newest-outside

Conversation

@hsbt

@hsbt hsbt commented Aug 24, 2026

Copy link
Copy Markdown
Member

With cooldown enabled, bundle outdated reports the newest published version even when it is still inside the cooldown window, and the newest version bundler would actually adopt right now is not shown anywhere. Tools like libyear-bundler parse this output and currently have to look the adoptable version up elsewhere. This appends it to the outdated line when it sits strictly between the installed version and the in-cooldown newest one, in both the parseable output and the table. Existing tokens are untouched so parsers keep working, and when no adoptable update exists outside the window nothing is appended and the output stays byte-identical.

Before:

mid_gem (newest 2.0.0, installed 1.0.0, in cooldown for 6 more days)

After:

mid_gem (newest 2.0.0, installed 1.0.0, in cooldown for 6 more days, newest out of cooldown 1.5.0)

The table's Latest column gets the same information as 2.0.0 (cooldown 6d, 1.5.0 out of cooldown).

Closes #9624

hsbt and others added 11 commits August 24, 2026 10:52
With cooldown enabled, "newest" is often a version still inside the
cooldown window and the newest version bundler would actually adopt was
not shown anywhere. Append it to the outdated line, both in the
parseable output and in the table, when it sits strictly between the
installed version and the newest one. Existing tokens are left
untouched so tools parsing this output (e.g. libyear-bundler) keep
working.

Closes #9624

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The table said "1.5.0 available", but "available" already denotes the
opposite state in the install summary, which reports a blocked version
as "(available in 6 days)". Reuse the exact antonym of the prose
"in cooldown for N more days" instead, so both formats name the
concept the same way.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The man page enumerates the cooldown output tokens, so the two tokens
added for #9624 belong there too. Review finding UX-1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The candidate list was recomputed for the same gem by
retrieve_active_spec and newest_out_of_cooldown. Review finding API-2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review finding GEM-1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
In strict mode the resolved version is already cooldown-filtered, so no
cooldown annotations appear. Pin that down. Review finding UX-4.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
No test exercised the "1 more day" path. Review finding GEM-2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Unreachable today because specs_for_outdated_check yields one spec per
name, but keying on the argument that feeds the computation keeps the
cache honest. Review finding API-1 (round 2).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The resolver already pins its cooldown clock via cooldown_now; do the
same here so every annotation in one run shares the same reference
time. Review finding API-2 (round 2).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review finding UX-3 (round 2).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
They flip the same strict flag as --filter-strict, so the cooldown
caveat applies to them too. Review finding UX-1 (round 3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@hsbt
hsbt merged commit 77ff2aa into master Aug 24, 2026
110 checks passed
@hsbt
hsbt deleted the outdated-cooldown-newest-outside branch August 24, 2026 08:53
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.

Extend bundle outdated to print latest outside the window version when using cooldown

1 participant