Summary
In Basecamp 5, todos can be created directly under the Todoset without being inside a Todolist. basecamp todos list returns 0 for projects where all todos are at the Todoset level.
Steps to reproduce
- Create a todo in a Basecamp 5 project without assigning it to a todolist (it lands under the Todoset directly)
- Run
basecamp todos list --in <project> - returns 0 todos
- Run
basecamp todolists list --in <project> - returns 0 todolists
- Run
basecamp recordings todos --in <project> - returns all todos correctly
- Run
basecamp todos show <id> --in <project> - works fine for individual todos
What is happening
The API returns these todos with parent.type: "Todoset" instead of parent.type: "Todolist". The todos list command apparently only queries todolists to enumerate todos, so it misses todos that live directly under the Todoset.
Example from a project with 6 active todos and zero todolists:
parent: {
type: "Todoset",
id: 4518217033,
title: "To-dos"
}
Compare a todo in a traditional todolist:
parent: {
type: "Todolist",
id: 7520915639,
title: "General"
}
Workaround
basecamp recordings todos --in <project> returns all todos regardless of parent type. basecamp reports assigned and basecamp assignments also work for assigned todos.
Expected behavior
basecamp todos list should return all incomplete todos in a project, including those that live directly under the Todoset. When there are no todolists, the command should query the Todoset for its todos directly.
Environment
- basecamp-cli v0.7.2
- Basecamp 5 projects
- Verified across 4 projects with a total of 16 Todoset-level todos
Summary
In Basecamp 5, todos can be created directly under the Todoset without being inside a Todolist.
basecamp todos listreturns 0 for projects where all todos are at the Todoset level.Steps to reproduce
basecamp todos list --in <project>- returns 0 todosbasecamp todolists list --in <project>- returns 0 todolistsbasecamp recordings todos --in <project>- returns all todos correctlybasecamp todos show <id> --in <project>- works fine for individual todosWhat is happening
The API returns these todos with
parent.type: "Todoset"instead ofparent.type: "Todolist". Thetodos listcommand apparently only queries todolists to enumerate todos, so it misses todos that live directly under the Todoset.Example from a project with 6 active todos and zero todolists:
Compare a todo in a traditional todolist:
Workaround
basecamp recordings todos --in <project>returns all todos regardless of parent type.basecamp reports assignedandbasecamp assignmentsalso work for assigned todos.Expected behavior
basecamp todos listshould return all incomplete todos in a project, including those that live directly under the Todoset. When there are no todolists, the command should query the Todoset for its todos directly.Environment