Add Bubble Up Now and Pop commands - #164
Conversation
|
@basecamp/cli The Test, CI, and Security workflows are currently waiting for maintainer approval ( |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds Bubble Up mutation commands to the HEY CLI (bubble an exact posting now, or pop it back out), including verification logic and documentation updates, alongside SDK-driven API signature adjustments.
Changes:
- Introduces
hey bubble-up-nowandhey popcommands with exact posting/topic preflight and post-mutation verification. - Adds unit tests for Bubble Up behaviors and a new smoke test exercising the real CLI against an authenticated account.
- Updates docs/surface area and adapts callsites to updated SDK types/signatures (calendar recordings params, timetrack start, mute vs ignore in TUI).
Reviewed changes
Copilot reviewed 16 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/smoke/bubble_up_test.go | Adds an end-to-end smoke test for Bubble Up + Pop using real CLI calls |
| skills/hey/SKILL.md | Documents new Bubble Up commands and the “exact posting/topic pair” requirement |
| internal/tui/mail.go | Renames “ignore” action/binding to “mute” and routes to SDK mute call |
| internal/tui/calendar.go | Adjusts recordings query params to new SDK pointer fields |
| internal/cmd/timetrack.go | Updates timetrack start to new SDK method signature |
| internal/cmd/sdk.go | Updates recordings params to new SDK pointer fields |
| internal/cmd/root.go | Registers the new Bubble Up commands |
| internal/cmd/reply.go | Refactors reply logic into helper for reuse |
| internal/cmd/recordings.go | Updates recordings params to new SDK pointer fields |
| internal/cmd/compose.go | Reuses reply helper for thread-targeted compose flow |
| internal/cmd/bubble_up_test.go | Adds comprehensive unit tests for Bubble Up/Pop behaviors |
| internal/cmd/bubble_up.go | Implements Bubble Up Now / Pop commands with guarded mutation + verification |
| go.mod | Bumps hey-sdk and related deps to match new API/types |
| go.sum | Updates checksums for bumped dependencies |
| README.md | Adds examples and behavior notes for new Bubble Up commands |
| API-COVERAGE.md | Documents new endpoints/coverage for Bubble Up mutations |
| .surface | Adds new commands/flags to surfaced CLI trigger list |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
b7bfeeb to
7bcbcf6
Compare
|
@basecamp/cli PR #164 is now rebased onto current main at 8d3e675, uses released hey-sdk v0.7.0, and has all review threads resolved at head 7bcbcf6. Focused tests, full make check, make build, surface compatibility, smoke-suite compilation, and the 70.8% coverage floor pass locally. Test, Security, and CodeQL Advanced are action_required; please approve the fork workflows when convenient. |
7bcbcf6 to
fe52c28
Compare
|
@basecamp/cli PR #164 is now rebuilt as one commit on current main 79b5a1a at head fe52c28 and is mergeable. Test, Security, CodeQL Advanced, and Dependabot Auto-Merge are action_required; please approve the fork workflows when convenient. Focused Bubble Up tests, all non-TUI internal tests, formatting, vet, pinned lint, dependency tidiness, generated surface, release lockstep, build, and smoke-suite compilation pass. The two local TUI calendar assertions and stale surface-compat exemptions reproduce on pristine current main and are documented in the refreshed PR body. |
|
Thank you @jr-lillard for the PR. |
Summary
hey bubble-up-now <box-item-id> --topic-id <thread-id>andhey pop <box-item-id> --topic-id <thread-id>.SDK dependency
Current main already uses
github.com/basecamp/hey-sdk/go v0.21.0, which exposesPostings().BubbleUpNowandPostings().CancelBubbleUp. This PR changes no dependency or generated SDK source.Safety and automation behavior
target_incompletewithout mutation.topic_idURL handling stay centralized.Verification
internal/tuicalendar assertions fail identically on pristine current main79b5a1a; the PR does not touch TUI code.check-surface-compatalso reproduces current main's stale.surface-breakingentries against v1.0.0; this PR only adds four surface entries and removes none.No production mailbox mutation was performed while rebuilding this current-main port.
Summary by cubic
Adds
hey bubble-up-now <posting-id> --topic-id <topic-id>andhey pop <posting-id> --topic-id <topic-id>to move one exact thread into or out of Bubble Up. Previously the CLI couldn’t control Bubble Up; now it requires an exact posting/topic pair and fails closed on incomplete, mismatched, or missing targets.not_foundon absence,target_mismatchon ID conflicts, andtarget_incompletewhen a row is missing a parseable topic inapp_url.changed/no_op,verified, andbefore/after.Postings().BubbleUpNow,Postings().CancelBubbleUp). Updates.surface,README.md,skills/hey/SKILL.md,API-COVERAGE.md, and adds focused unit and smoke tests.Migration
idandtopic_id); do not infer. Retry only after a complete box read shows the exact pair.Written for commit fe52c28. Summary will update on new commits.