Integrate name resolution into commands

Merged
JE
9mo ago
+61-139

Summary

  • Refactors todos.sh and todolists.sh commands to use the centralized name resolution from lib/names.sh (introduced in #12)
  • Enables users to specify projects and todolists by name instead of numeric IDs
  • Removes ~78 lines of duplicated resolution boilerplate

Example Usage

# Use project name instead of ID
bcq todos --in "My Project"

# Use both project and todolist names
bcq todo "New task" --list "Sprint 42" --in "Acme Corp"

# Works for todolist groups too
bcq todolistgroups --list "Backlog" --in "Engineering"

Files Changed

  • lib/commands/todos.sh - All functions now use require_project_id()
  • lib/commands/todolists.sh - Uses require_project_id() and require_todolist_id()
  • lib/commands/people.sh - resolve_assignee() delegates to resolve_person_id()

Test plan

  • All 374 existing tests pass
  • Manual testing with name-based project resolution
  • Manual testing with name-based todolist resolution