Uh oh!
There was an error while loading. Please reload this page.
fix(cli/api): address Bugbot findings on the v0.4.0 RC (#106) - #108
Merged
Conversation
…te (#106) ListClients followed DRF `next` via nextPath, which returned "" for BOTH an empty link (end of pages) and an unparseable one — so a non-empty `next` the server sends that url.Parse rejects silently ended the loop, and ListClients returned only the pages seen so far with a nil error. list / `use` / namespace-collision checks would then miss clients with no signal. nextPath now returns (string, error): "" + nil for an empty link, an error for a non-empty link that won't parse. Trigger is unlikely (DRF emits well-formed URLs, url.Parse is lenient), but the failure mode — silent partial list — is the wrong one for a correctness-sensitive call. Tests: pagination still followed end-to-end (page 1 → 2 → done); an unparseable next link is now a hard error, not a truncation. Bugbot: 8dadb5c2-804a-48ed-bc81-eb14e6317be1 (v0.4.0 RC, #107) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ote (#106) The dataset-push category gate only special-cased known-but-unsupported *image* categories (`case push.IsImage`), so a registry-known non-image category that isn't CLI-supported yet — `causal_language_modeling` (FamilyText, CLISupported:false, with a real UnsupportedNote) — fell to the default branch and was reported as "isn't a recognized task category". It IS recognized; it's pending support. Swap the gate to `case push.IsKnown`: supported categories are already caught by the prior case, so IsKnown here means known-but-unsupported (image or text), all routed through the registry's per-category pending-support note. The default branch is left for genuinely unknown/typo'd categories. Message-only (exit code was already 2). Test: causal_language_modeling now gets the pending-support note, not the unrecognized-category message. (The existing exit-2 test didn't assert the message, which is how this slipped through.) Bugbot: 16f5b945-5d67-4201-8bc6-1f6baf633672 (v0.4.0 RC, #107) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
LukasWodka
approved these changes
Jun 24, 2026
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 freeto 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.
Fixes the two Cursor Bugbot findings on the v0.4.0 release candidate (flagged on the promote PR #107). Both are pre-existing in the batch (not from #104). Rolls up under the release ticket #106.
1.
api: pagination silently truncates on an unparseablenext(Bugbot: Medium)ListClientsfollowed DRFnextvianextPath, which returned""for both an empty link (end of pages) and an unparseable one. So a non-emptynextthaturl.Parserejects silently ended the loop and returned only the pages seen so far with anilerror —list/use/namespace-collision checks would then miss clients with no signal.nextPathnow returns(string, error):"" , nilfor an empty link, an error for a non-empty link that won't parse. (Trigger is unlikely — DRF emits well-formed URLs,url.Parseis lenient — but a silent partial list is the wrong failure mode for a correctness-sensitive call.)2.
cli: known-but-unsupported non-image category misrouted (Bugbot: Low)The category gate only special-cased known-but-unsupported image categories, so
causal_language_modeling(registry-known,CLISupported:false, with a realUnsupportedNote) fell through to the default branch and was reported as "isn't a recognized task category" — when it is recognized, just pending support.Swapped
case push.IsImage→case push.IsKnown(supported categories are already caught above, soIsKnownhere means known-but-unsupported, image or text). Default branch is left for genuine typos. Message-only — exit code was already 2.Tests
nextis now a hard errorcausal_language_modelingnow gets the pending-support note, not the unrecognized-category message (the existing exit-2 test didn't assert the message, which is how this slipped through)gofmt/go vet/go buildclean; fullgo test -race -cover ./...green🤖 Generated with Claude Code
Note
Low Risk
Targeted correctness and UX fixes with regression tests; no auth or data-path changes beyond failing loudly on bad pagination links.
Overview
Addresses two v0.4.0 RC Bugbot findings: client list pagination and
dataset pushcategory messaging.API:
nextPathnow returns(string, error). An empty DRFnextstill ends pagination; a non-empty link thaturl.Parserejects is a hard error instead of being treated like end-of-list. That stopsListClientsfrom returning a partial client set with no error (which would breaklist,use, and namespace collision checks).CLI: The pre-schema category gate uses
push.IsKnowninstead ofpush.IsImagefor registry-known but CLI-unsupported categories (e.g.causal_language_modeling). Users get the registry pending-support message (isn't supported by the CLI yet+UnsupportedNote), not isn't a recognized task category.Tests: Pagination still follows page 1 → 2; unparseable
nextfails;causal_language_modelingasserts the corrected error text.Reviewed by Cursor Bugbot for commit e14685f. Bugbot is set up for automated code reviews on this repo. Configure here.