Skip to content

Support for projects with multiple todosets #218

@cesarho

Description

@cesarho

Problem

When a project has multiple todosets, the todos command fails with an ambiguous error and there's no way to specify which todoset to query.

Steps to Reproduce

  1. Run basecamp todos on a project with multiple todosets:
basecamp todos --in 25151xxx --assignee me
  1. Observe the error:
╭──────────────────────────────────────────────╮
│ ✗ Error                                      │
│                                              │
│ Project has 5 todosets                       │
│                                              │
│ → Specify ID directly. Available:            │
│   - Invoice / Our Income (ID: 4392637xxx)    │
│   - Payment / Our Expense (ID: 4573107xxx)   │
│   - Unused (ID: 4901390xxx)                  │
│   - Reimbursement / Expense (ID: 6697194xxx) │
│   - Credit Card Expense (ID: 6904934xxx)     │ 
╰──────────────────────────────────────────────╯
  1. Try to use the suggested IDs with various flags:

Attempt 1: Use todoset ID as --todolist

basecamp todos --in 25151xxx --todolist 4392637xxx --assignee me

Error: resource not found

Attempt 2: Use --todoset flag

basecamp todos --in 25151xxx --todoset 4392637xxx --assignee me

Error: Unknown option: --todoset

Attempt 3: Use todoset ID as project ID (misinterpreting the hint)

basecamp todos --in 4392637xxx --assignee me

Error: Resource not found: https://3.basecampapi.com/3926xxx/projects/4392637xxx.json

Expected Behavior

  1. The todos command should accept a --todoset flag to specify which todoset to query when a project has multiple:
basecamp todos --in 25151xxx --todoset 4392637xxx --assignee me
  1. The todos command should search all todoset when a project has multiple:
basecamp todos --in 25151xxx --assignee me

Actual Behavior

  • --todoset flag is not recognized on the todos command
  • --todolist flag expects a todolist ID within a todoset, not a todoset ID itself
  • Using the todoset ID as a project ID fails with "Resource not found"
  • The error message suggests "Specify ID directly" but provides no working mechanism to do so

Suggested Solution

  1. Add --todoset flag to the todos command
  2. When --todoset is provided, use that specific todoset instead of default
  3. Update the error message to show the correct flag syntax:
Project has 5 todosets

→ Specify a todoset with --todoset <ID>. Available:
  --todoset 4392637xxx  Invoice / Our Income
  --todoset 4573107xxx  Payment / Our Expense
  ...

Related Commands

This issue may also affect:

  • basecamp todolists list - lacks --todoset flag
  • basecamp todolists create - may need todoset specification

Environment

  • basecamp CLI version: (run basecamp version to get)
  • OS: macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions