chore(release): prepare 0.88.0 — renumber, changelog, and a version-report fix - #638
Merged
Merged
Conversation
This was referenced Aug 22, 2026
Nothing between v0.87.0 and today was ever published: #629 bumped pyproject to 0.88.0, #633 bumped it again to 0.89.0, and both changelog blocks sat unreleased. Ship the whole span as one release instead of publishing two versions retroactively. - changelog: merge the 0.89.0 bullets into 0.88.0. Reordered so the #624 column-description fix leads -- it is the largest user-visible change of the span, and the first bullet is what `kbagent changelog` renders as the one-line summary. The internal prompt-budget note moves to the end. - pyproject 0.89.0 -> 0.88.0, propagated to plugin.json, marketplace.json and uv.lock via `make version-sync`. - rewrite every `0.89.0+` / `(since v0.89.0)` version gate in CLAUDE.md, the keboola-expert prompt, commands-reference.md, gotchas.md, context.py, docs/sdk.md and two test comments. A stale gate would make the agent refuse flags that do exist on the user's installed version.
…rade to `upgrade_command` in `kbagent version --json` is documented as a string a consumer may shell out to verbatim, but `get_kbagent_version_info()` built it unconditionally. Both non-False states of `up_to_date` therefore handed out an actively wrong command: * `true` (local >= latest). A caller on a pre-release compares ahead of the stable release a non-`--beta` fetch returns (`0.44.0b1` >= `0.43.3`), so it read `up_to_date: true` beside a `--force --reinstall` command pinned to the OLDER stable wheel. Running it is a silent downgrade off the beta -- the exact foot-gun the beta channel's three gates exist to prevent. * `null` (release feed unreachable). `resolve_kbagent_wheel_url(None)` yields no asset, so it fell through to the unpinned `git+` source install, resolving whatever the default branch happens to be -- on the one code path reached precisely because kbagent could not establish what the current release is. `prepare_kbagent_update_plan()` already gated on `up_to_date is False`, so `kbagent update` itself was never affected; only the reported string was. The frozen (PyInstaller) channel branch is untouched -- `brew upgrade` and friends are no-ops when current, not downgrades, and `install_channel` consumers rely on that shape. Two tests added; both fail on the parent commit. Also in this commit, for the 0.88.0 release span: - changelog: `(#issue)` decorations on all 24 bullets. The `SDK:` prefix is not in `_PREFIX_RE`, so that bullet rendered uncoloured -- it becomes `New (#622):` with the SDK context kept in the sentence. - changelog: entries for #636 and #637, which carried no version bump and so arrived with no changelog at all. - four first sentences shortened under the 160-char headline budget that `test_changelog_render.py` enforces -- two of them were pushed over by the decorations added here.
padak
force-pushed
the
claude/keboola-cli-0-88-0-release-900256
branch
from
August 22, 2026 15:09
d88f8e2 to
9f6336b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Nothing merged between
v0.87.0and today has been published. Two PRs bumpedthe version independently along the way — #629 took
pyproject.tomlto0.88.0, #633 took it to0.89.0— somaincurrently carries0.89.0andchangelog.pycarries two separate unreleased blocks.Publishing that as-is would retroactively ship two releases nobody could ever
have installed. This collapses the whole span into one
0.88.0.What
0.89.0bullets merge into0.88.0and the key is gone.Bullets are reordered so the
storage describe-columnwrites column descriptions where the MCP server never reads them #624 column-description fix leads — it is thelargest user-visible change of the span, and the first bullet is what
kbagent changelogrenders as the one-line summary. The internalprompt-budget note moves to the end.
pyproject.toml0.89.0->0.88.0, propagated toplugin.json,marketplace.jsonanduv.lockbymake version-sync.0.89.0+/(since v0.89.0)marker rewritten inCLAUDE.md,plugins/kbagent/agents/keboola-expert.md,commands-reference.md,gotchas.md,commands/context.py,docs/sdk.mdand two test comments. Leaving these stale is the silent failure that matters:
the agent would refuse
token list --with-last-usedorsearch --scopeon auser who actually has them, because the gate claims a version that will never
exist.
No behaviour change — this is purely release bookkeeping.
Release span covered by 0.88.0
storage table-detailreturns the tabledefinition(BigQuery partitioning)describe-migratetoken list --with-last-used/--columnskeboola-expertprompt trimmed to ~47.8 KBVerification
make checkgreen: lint, format, changelog-check, sentinel guards,version-check, 5831 passed / 12 skipped.