Conversation
Convenience boolean flag that sets --status completed. Includes mutual exclusion check so --completed and --status cannot be combined.
- Add dock section to project detail view with new "dock" format that renders enabled tools as "Title (name, ID: xxx)" - Add app_url field to project, todo, todolist, and comment schemas so the URL appears in plain-text output for terminals without OSC 8 - Remove muted emphasis from project id so it renders at normal weight
Both the messages group and the message shortcut now explain that multi-board projects need --message-board <id>.
accounts list: shows all authorized Basecamp accounts. accounts use <id>: persists the default account (--scope global|local). Also fixes the setup wizard to populate Label on auto-selected single accounts and display "Using account: <name>" instead of skipping silently.
Reusable newRecordableTrashCmd/ArchiveCmd/RestoreCmd helpers delegate to runRecordingsStatus. Registered on todos, todolists, messages, cards, comments, and files (docs/uploads/vaults inherit via alias). Catalog actions updated for all affected groups including the aliases.
There was a problem hiding this comment.
1 issue found across 19 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="internal/presenter/format.go">
<violation number="1" location="internal/presenter/format.go:163">
P2: When a dock item has neither `title` nor `name`, this appends an empty string to `lines`, producing a blank line in the output. Add a guard to skip items with no displayable label.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
Pull request overview
This PR closes several QA “command gaps” in the Basecamp CLI by improving discoverability/help text, adding missing flags/commands, and expanding presenter schemas for richer plain-text output.
Changes:
- Adds an
accountscommand group (accounts list,accounts use <id>) and improves single-account wizard UX. - Adds
--completedtotodos listas shorthand for--status completed(with mutual exclusion validation). - Enhances presenter schemas/output (project dock section,
app_urlvisibility) and adds reusable recordabletrash/archive/restoresubcommands across multiple entities.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/tui/resolve/account.go | Adds single-account label and exposes account listing via resolver. |
| internal/presenter/schemas/todolist.yaml | Adds app_url to todolist presenter detail metadata. |
| internal/presenter/schemas/todo.yaml | Adds app_url to todo presenter detail metadata. |
| internal/presenter/schemas/project.yaml | Adds dock + app_url to project presenter; updates metadata emphasis. |
| internal/presenter/schemas/comment.yaml | Adds app_url to comment presenter metadata. |
| internal/presenter/format.go | Introduces dock formatter for presenter output. |
| internal/commands/wizard.go | Prints “Using account: …” when a single account is auto-selected. |
| internal/commands/todos.go | Adds --completed and recordable trash/archive/restore subcommands. |
| internal/commands/todolists.go | Adds recordable trash/archive/restore subcommands. |
| internal/commands/recordings.go | Adds reusable constructors for recordable trash/archive/restore commands. |
| internal/commands/messages.go | Improves help text for --message-board; adds recordable subcommands. |
| internal/commands/files.go | Adds recordable subcommands (inherited by docs/uploads/vaults aliases). |
| internal/commands/comment.go | Adds recordable subcommands. |
| internal/commands/commands_test.go | Registers accounts in the test root command builder. |
| internal/commands/commands.go | Updates command catalog categories/actions, adds accounts. |
| internal/commands/cards.go | Adds recordable subcommands. |
| internal/commands/accounts.go | New accounts command implementation (list/use + persistence). |
| internal/cli/root.go | Registers accounts on the real root command. |
| .surface | Updates CLI surface snapshot for new commands/flags/subcommands. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dbf0cacecd
ℹ️ 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".
Summary
Addresses 7 QA cards from batch 5 (command gaps, missing flags, discoverability):
--completedflag ontodos list— boolean shorthand for--status completedapp_urlvisible in plain-text output for todo/todolist/comment/project, project ID no longer dimmed--message-boardhelp — bothmessagesgroup andmessageshortcut mention the flag for multi-board projectsaccountscommand —accounts listandaccounts use <id>for viewing and setting the default account;--scopevalidates at CLI layerLabeland display "Using account: ..." during setupTwo cards skipped per plan (comments create already exists; app_url already hyperlinked via OSC 8).
Test plan
bin/cipasses (fmt, vet, lint, unit, e2e, catalog parity, surface snapshot, skill drift, SDK provenance)basecamp todos list --completedshows completed todosbasecamp todos list --completed --status pendingreturns mutual exclusion errorbasecamp projects show <id>shows dock section and non-dim IDbasecamp messages -hmentions--message-boardbasecamp message -halso mentions--message-boardbasecamp cards trash <id>trashes via recordings APIbasecamp accounts listlists authorized accountsbasecamp accounts use <id>persists account selectionbasecamp accounts use <id> --scope bogusreturns structured usage errorbasecamp setupwith single account — shows "Using account: ..."Summary by cubic
Closes several command gaps to improve discoverability and workflow: adds account management, trash/archive/restore actions across key resources, a
--completedfilter for todos, and clearer project/message outputs.accounts listandaccounts use <id> --scope global|localwith CLI scope validation; setup wizard now shows “Using account: …” when a single account is auto-selected.trash,archive, andrestorefor todos, todolists, messages, cards, comments, and files (docs/uploads/vaults inherit via aliases).todos list --completedas shorthand for--status completed; rejects use with--status.messages -handmessage -hnow explain--message-boardfor multi-board projects.app_urlis now visible in plain-text views for project/todo/todolist/comment; project ID no longer dimmed.Written for commit dbf0cac. Summary will update on new commits.