Skip to content

Adopt basecamp-sdk v0.12.0 - #610

Closed
jeremy wants to merge 1 commit into
mainfrom
sdk-0.12.0
Closed

Adopt basecamp-sdk v0.12.0#610
jeremy wants to merge 1 commit into
mainfrom
sdk-0.12.0

Conversation

@jeremy

@jeremy jeremy commented Aug 4, 2026

Copy link
Copy Markdown
Member

PR 1 of 3. Bump only — no new commands. B (bc5-command-surface) and C
(account-wide-task-filters) stack on top.

What changed

Everything() gained a parameter in v0.12.0. Eleven call sites across
cards.go and todos.go pass nil, preserving today's behaviour exactly.

internal/version/sdk-provenance.json moves to v0.12.0.

vendorHash

nix/package.nix is updated to sha256-+j9bY0gS… via make update-nix-hash.
A go.mod change invalidates it and the nix-build job gates on it, so the bump
cannot land without this. Recomputed and re-verified by rebuild — through the
shared classifier that #609 just extracted, which is a nice first real exercise
of it.

Rebase provenance

Rebased from 1bf961f2 onto ec979fc8. git range-diff against
backup/sdk-0.12.0-pre-rebase shows the only intra-commit change is the
vendorHash line; everything else is byte-identical.

go.mod resolved cleanly because the two moves are disjoint — main bumped goldmark
1.8.4 → 1.8.5 and left the SDK alone; this branch bumps the SDK and leaves
goldmark alone. Result is SDK v0.12.0 + goldmark v1.8.5, which is the intended
resolution. No replace directive.

Verification

  • bin/ci exit 0 at this head.
  • goldmark renderer re-smoked, and this is the interesting one. The stack
    carried goldmark 1.8.4, main carries 1.8.5, and internal/commands/notes.go
    renders through richtext.MarkdownToHTML — so the renderer under that path
    changed on rebase. Rendering one corpus (headings, nested lists, tables, fenced
    code, footnotes, emoji, raw HTML, hard breaks, entities) under both versions
    produces byte-identical output.
  • Live round-trip against production as well: notes set --filenotes show
    returns correct HTML for headings, emphasis, lists, links (target/rel),
    blockquote and entity escaping. Test note restored to its prior content
    byte-for-byte afterwards.

Backup branch: backup/sdk-0.12.0-pre-rebase


Summary by cubic

Upgrade to github.com/basecamp/basecamp-sdk/go v0.12.0 and update Everything() selectors to accept the new filters param, passing nil to keep behavior unchanged. No user-facing changes; sets up future account-wide filtering.

  • Dependencies
    • Bumped SDK to v0.12.0 in go.mod/go.sum.
    • Updated nix/package.nix vendorHash.
    • Refreshed internal/version/sdk-provenance.json.

Written for commit 4e232e9. Summary will update on new commits.

Review in cubic

Eleven Everything() aggregate methods gained a trailing
*EverythingTaskFilters parameter: the nine paginated todo and card
selectors, plus the two unpaginated overdue endpoints. Pass nil at every
call site, so this bump is behavior-preserving — no test changes, and the
account-wide listings issue exactly the requests they did before.

The filters themselves are the point of the signature change, but
threading real values through belongs with the flags that produce them.
This commit is the mechanical half.

SDK v0.12.0 is 7e2925d25078; the API provenance moves to bc3
d0edc1283b23.
Copilot AI review requested due to automatic review settings August 4, 2026 00:25
@github-actions github-actions Bot added commands CLI command implementations sdk SDK wrapper and provenance deps labels Aug 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e232e9e30

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread go.mod
charm.land/bubbletea/v2 v2.0.8
charm.land/lipgloss/v2 v2.0.5
github.com/basecamp/basecamp-sdk/go v0.11.0
github.com/basecamp/basecamp-sdk/go v0.12.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update API coverage with the SDK bump

When this bump lands independently, the repository pins v0.12.0 here while API-COVERAGE.md still identifies v0.11.0 as the pinned SDK and does not document the v0.12 command surface. That leaves the repository's SDK coverage record inaccurate and defers required commands for newly available service methods to a later change; include the corresponding command and coverage updates with this bump.

AGENTS.md reference: AGENTS.md:L118-L130

Useful? React with 👍 / 👎.

@jeremy

jeremy commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

Closing as superseded by #611, which now targets main directly.

Review was right that this is not a valid independent landing unit. At
4e232e9e this branch pins go.mod to SDK v0.12.0 while API-COVERAGE.md
still identifies v0.11.0 and none of the 20 new methods are covered — which is
exactly what AGENTS.md's completeness bar forbids. It does not touch
API-COVERAGE.md at all. Splitting the bump away from the coverage that
documents it made a landing unit that is green but incomplete, and there was no
mechanical hold to catch it.

#611 carries this commit plus the surface work, so A+B is one complete SDK
landing unit, and no commits have to be rewritten to get there. #612 has been
rebased onto it.

Correcting my own earlier claim: I described this PR as "fully green (22
checks)". gh pr checks reported pass: 22, skipping: 3 — it folded a neutral
result into "skipping" and did not surface a failing Copilot reviewer check at
all. That is the same under-reporting I have hit before; the check-runs API
against the exact SHA is the reliable read, and I should have used it before
saying "fully green."

@jeremy jeremy closed this Aug 4, 2026
jeremy added a commit that referenced this pull request Aug 4, 2026
Bumps the SDK to v0.12.0 and lands the command surface it opened, as one
complete unit: splitting the bump from the coverage that documents it
produced a PR that was green but violated the completeness bar (#610,
closed).

Adds bookmarks, drafts, notes and calendars, the Up Next verbs, and the
remaining v0.12.0 operations on todos and checkins. Every new SDK service
method gets a command file, catalog entry, registration and an
API-COVERAGE.md row.

Review found four defects that bin/ci could not see:

notes set could silently discard piped content — stdin was consulted only
after an argument and --file had been ruled out, so a generated body lost
to a fallback file in the one command that replaces everything.

checkins reminders silently ignored --project/--in/--questionnaire,
inherited as persistent flags from the parent while the handler always
called the account-wide endpoint.

--ids-only emitted the wrong id twice over: assignments exposed the
parent card rather than the prioritized step, so piping into deprioritize
reported success and changed nothing (204 either way); reminders exposed
no id at all, so it printed nothing.

API-COVERAGE.md claimed a 400's exit code moves from 7 to 9. It does not
— there is no validation mapping and clioutput defaults to ExitAPI, so a
400 still exits 7.

The note-clearing gap is documented and deferred to its own change.
@jeremy
jeremy deleted the sdk-0.12.0 branch August 4, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands CLI command implementations deps sdk SDK wrapper and provenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants