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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions