Skip to content

List recently visited projects - #1018

Open
robzolkos wants to merge 3 commits into
mainfrom
basecamp-first-batch/recent-projects-10439716943
Open

robzolkos wants to merge 3 commits into
mainfrom
basecamp-first-batch/recent-projects-10439716943

Conversation

@robzolkos

@robzolkos robzolkos commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

What

Adds basecamp projects recent to list the current user's recently visited projects through the supported SDK Projects().ListRecent call. Preserves the API's visit order; this is not a sorted or paginated replacement for projects list.

Updates command help, the command catalog, the surface snapshot, API coverage documentation, and a read-only smoke case. Includes the standard missing-app-context error and a projects show <id> next-step hint, preserving the selected profile/account and addressing the scoped review suggestions.

Why

The API and SDK already expose recent projects, but the CLI has no command for this personal project list.

Testing

  • Full local bin/ci (make check) passes on final committed head 4349999e1a8045bc9f3ec954baacdba2625f7f9d, using mise exec golangci-lint@2.11.1 ruby@3.4.12 -- bin/ci.
  • Seven TestProjectsRecent tests rerun on that exact committed head: exact GET and visit order, empty result, API refusal, argument rejection before a request, missing app context, the show hint, and preservation of the selected profile/account in that hint.
  • Actual final-head development binary read the real isolated localhost API and matched its project ID and name, with unchanged before/after API results. The filtered read-only smoke case also passed against that binary.
  • The original six-file candidate received independent Codex review with no blocking finding. The follow-up is limited to the two remote review suggestions and their regression tests; remote review/checks apply separately to the published head.

The real development response contained one project. Multi-project ordering is unit-tested, not demonstrated live. The API's 50-visit cap and access filtering were not separately boundary-tested. No expanded permission matrix, Windows, ONCE, production/beta, release or deployment validation is claimed. Own development token was revoked and the server stopped after verification.

@robzolkos
robzolkos requested a review from a team as a code owner November 8, 2026 18:29
Copilot AI balanced review requested due to automatic review settings November 8, 2026 18:29
@github-actions github-actions Bot added commands CLI command implementations tests Tests (unit and e2e) docs labels Nov 8, 2026
Copilot AI previously approved these changes Nov 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approved

No active review issues block the addition of the basecamp projects recent command.

No open issues 🎉

What changed in this PR

Adds basecamp projects recent using the existing SDK to show the current user’s recently visited projects in API visit order, separate from the full project listing.

Changes:

  • Adds the command with help describing its single-page result and 50-visit limit.
  • Registers it in the command catalog, CLI surface snapshot, and API coverage documentation.
  • Adds four unit tests and a read-only smoke test.

[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

File Description
internal/​commands/​projects.go Implements and registers projects recent using Projects().ListRecent.
internal/​commands/​projects_recent_test.go Tests request routing, visit order, empty results, API refusal, and argument rejection.
internal/​commands/​commands.go Adds recent to the project command catalog.
e2e/​smoke/​smoke_projects.bats Adds a read-only smoke check for the response structure.
API-COVERAGE.md Documents the endpoint, ordering, and result limits.
.surface Records the command and inherited flags for both project aliases.

Review effort: Balanced

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 6 files

Tip: Get a Slack DM when cubic finishes reviewing your PRs. Connect Slack

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread internal/commands/projects.go Resolved
Comment thread internal/commands/projects.go Resolved
Copilot AI balanced review requested due to automatic review settings November 8, 2026 18:44
Copilot AI dismissed their stale review, a newer Copilot review was requested November 8, 2026 18:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The show hint omits the selected profile and account, so following it can use the default scope and fail to find a project returned by recent.

1 open issue

Review effort: Balanced

Comment thread internal/commands/projects.go Resolved
Copilot AI balanced review requested due to automatic review settings November 8, 2026 18:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approved

No active review issues are identified for the change adding basecamp projects recent.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands CLI command implementations docs tests Tests (unit and e2e)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants