Skip to content

QA batch 5: command gaps and affordances#243

Closed
jeremy wants to merge 6 commits intomainfrom
qa-command-gaps-pr
Closed

QA batch 5: command gaps and affordances#243
jeremy wants to merge 6 commits intomainfrom
qa-command-gaps-pr

Conversation

@jeremy
Copy link
Member

@jeremy jeremy commented Mar 11, 2026

Summary

Addresses 7 QA cards from batch 5 (command gaps, missing flags, discoverability):

  • --completed flag on todos list — boolean shorthand for --status completed
  • Presenter schemas — project detail now shows dock section, app_url visible in plain-text output for todo/todolist/comment/project, project ID no longer dimmed
  • --message-board help — both messages group and message shortcut mention the flag for multi-board projects
  • accounts commandaccounts list and accounts use <id> for viewing and setting the default account; --scope validates at CLI layer
  • Single-account wizard — auto-selected accounts now populate Label and display "Using account: ..." during setup
  • Recordable trash/archive/restore — reusable helpers registered on todos, todolists, messages, cards, comments, files (docs/uploads/vaults inherit); catalog updated for all groups including aliases

Two cards skipped per plan (comments create already exists; app_url already hyperlinked via OSC 8).

Test plan

  • bin/ci passes (fmt, vet, lint, unit, e2e, catalog parity, surface snapshot, skill drift, SDK provenance)
  • basecamp todos list --completed shows completed todos
  • basecamp todos list --completed --status pending returns mutual exclusion error
  • basecamp projects show <id> shows dock section and non-dim ID
  • basecamp messages -h mentions --message-board
  • basecamp message -h also mentions --message-board
  • basecamp cards trash <id> trashes via recordings API
  • basecamp accounts list lists authorized accounts
  • basecamp accounts use <id> persists account selection
  • basecamp accounts use <id> --scope bogus returns structured usage error
  • Re-run basecamp setup with 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 --completed filter for todos, and clearer project/message outputs.

  • New Features
    • Accounts: accounts list and accounts use <id> --scope global|local with CLI scope validation; setup wizard now shows “Using account: …” when a single account is auto-selected.
    • Record actions: added trash, archive, and restore for todos, todolists, messages, cards, comments, and files (docs/uploads/vaults inherit via aliases).
    • Todos: todos list --completed as shorthand for --status completed; rejects use with --status.
    • Messages help: messages -h and message -h now explain --message-board for multi-board projects.
    • Presenter: project detail shows Dock; app_url is 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.

jeremy added 6 commits March 10, 2026 19:47
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.
@jeremy jeremy requested a review from a team as a code owner March 11, 2026 02:50
Copilot AI review requested due to automatic review settings March 11, 2026 02:50
@github-actions github-actions bot added commands CLI command implementations tui Terminal UI tests Tests (unit and e2e) output Output formatting and presentation enhancement New feature or request labels Mar 11, 2026
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 accounts command group (accounts list, accounts use <id>) and improves single-account wizard UX.
  • Adds --completed to todos list as shorthand for --status completed (with mutual exclusion validation).
  • Enhances presenter schemas/output (project dock section, app_url visibility) and adds reusable recordable trash/archive/restore subcommands 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.

Copy link

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

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: 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".

@jeremy
Copy link
Member Author

jeremy commented Mar 11, 2026

Was split into #260 message-board help, #258 todos --completed, #257 presenter affordances, #259 recordable status actions, #261 account switching last. All merged.

@jeremy jeremy closed this Mar 11, 2026
@jeremy jeremy deleted the qa-command-gaps-pr branch March 11, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands CLI command implementations enhancement New feature or request output Output formatting and presentation tests Tests (unit and e2e) tui Terminal UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants