On the missing-create path, SyncCreation creates a new Plane work item and
returns SyncActionProjected before any workflow task has been registered for
the new work item UUID. Calling CompleteTaskByExternalRef with an empty Ref.ID
caused pgx.ErrNoRows → River retry → reconcile returning not_ready, leaving
only develop_matched recorded.
Fix 1 (roadmap_sync_jobs.go): guard CompleteTaskByExternalRef with args.Ref.ID != ""
so missing-create jobs complete cleanly without retrying.
Fix 2 (workflow/service.go): CompleteTaskByExternalRef now returns (zero, false, nil)
when GetTaskByExternalRef returns pgx.ErrNoRows, so reconcile jobs that have no
registered workflow task also complete cleanly rather than triggering retry loops.
Also adds PLANE_PROJECT_ID to docker-compose.yml environment so the missing-create
bridge receives non-empty tenant/project inputs at runtime.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add code review and plan logs for cloud G07, G08 subtasks
- Add stale task detection to scheduler
- Update OpenAI client config and tests
- Fix core services Makefile, README, docker-compose, and run script
- Update agent-roadmap ROADMAP.md and PHASE.md
- Add mcp-control-surface-sketch.md and plane-origin-authoring-roundtrip-sync.md
- Update live-cycle-smoke.md test doc
- Fix services/core: Dockerfile, docker-compose, config, OpenAI client, authoring request
- Update config and test files for core service
- Add plane adapter client with test coverage
- Add task external refs migration
- Update workflow service with tests
- Add HTTP handler tests
- Update router and middleware tests
- Update database models and queries
- Update scheduler jobs
- Update storage store
- Update server main and docker-compose
- Update roadmaps and documentation