Skip to content

feat: add Todoist REST API v2 fake service#32

Merged
rotemtam merged 4 commits intomainfrom
feat/todoist-v2
Feb 26, 2026
Merged

feat: add Todoist REST API v2 fake service#32
rotemtam merged 4 commits intomainfrom
feat/todoist-v2

Conversation

@rotemtam
Copy link
Collaborator

Summary

  • Adds a stateful fake implementation of the Todoist REST API v2 (FastAPI server)
  • 10 contract test modules covering the core API surface
  • Tests validated against the real Todoist API using grounding mode
  • Supersedes feat: add Todoist REST API v1 fake service #31

API Coverage

  • Tasks: CRUD, completion/reopening, subtask cascading, recurring due dates
  • Projects: CRUD, archiving, nesting, view styles
  • Sections: CRUD, ordering, task organization, cascade delete
  • Labels: Personal CRUD, shared labels, task association
  • Comments: Task/project comments, markdown
  • Due Dates & Priorities: Priority mapping, date/datetime, recurring patterns
  • Filtering & Search: Priority, label, date, project, AND/OR operators
  • Cross-Resource Workflows: Multi-step agent scenarios across resource types

Contract Tests

10 test modules in services/todoist/contracts/:

Module Coverage
test_task_crud_lifecycle Task create, read, update, delete
test_task_completion_lifecycle Close, reopen, recurring reschedule
test_project_management Project CRUD, archiving, nesting
test_section_organization Section CRUD, ordering, cascade
test_label_management Label CRUD, task association
test_comment_threading Task/project comments
test_subtask_hierarchy Parent-child relationships, cascading
test_due_dates_and_priorities Priority values, date formats, recurring
test_task_filtering_and_search Filter expressions, query operators
test_cross_resource_agent_workflows End-to-end multi-resource scenarios

Running tests

# Against fake server
DOUBLEAGENT_TODOIST_URL=http://localhost:8080 uv run pytest -v

# Against real Todoist API (grounding mode)
TODOIST_GROUNDING_TOKEN=<real-token> uv run pytest -v

Test plan

  • All contract tests pass against fake server
  • Contract tests pass against real Todoist API (grounding mode)
  • doubleagent run todoist starts the server correctly

🤖 Generated with da-agent + Claude Code

Copy link
Contributor

@zozo123 zozo123 left a comment

Choose a reason for hiding this comment

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

LGTM

assaf-benjosef and others added 3 commits February 26, 2026 14:44
Add a PostHog fake implementing event capture, feature flag evaluation,
and user/group identification for AI agent testing.

Endpoints:
- POST /batch/ (capture, set, set_once, group_identify)
- POST /flags/ (feature_enabled, get_feature_flag, get_all_flags)
- POST /decide/ (legacy flag evaluation)
- GET /api/feature_flag/local_evaluation/ (load_feature_flags)

19 contract tests verify all endpoints using the official PostHog
Python SDK v7.9.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds a stateful fake of the Todoist REST API v2 with 10 contract test
modules covering tasks, projects, sections, labels, comments, subtasks,
due dates, filtering, and cross-resource agent workflows.

Generated by da-agent (multi-phase pipeline).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Missing tool declaration caused CI to fail with "No such file or
directory" because uv/python weren't installed by mise.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rotemtam rotemtam merged commit 1f5bade into main Feb 26, 2026
16 checks passed
@rotemtam rotemtam deleted the feat/todoist-v2 branch February 26, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants