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 slot_finalizer.go for terminal state management
- Add live cycle smoke test documentation
- Archive completed subtasks (slot terminal state, live cycle smoke)
- Update scheduler jobs and workflow service for roadmap sync
- Update authoring request/result handlers
- Update milestone documentation
Tasks 테이블에 external_provider, external_id 기반 UPSERT 로직을 추가하고
GetTaskByExternalRef 쿼리를 신설하여 중복 작업을 효율적으로 처리한다.
외부 참조 고유 인덱스 마이그레이션(00008)을 추가한다.
Workspace slots 쿼리에서 alias를 명시하여 FOR UPDATE SKIP LOCKED 동시성 처리를 개선한다.
Storage, workflow, workitempipeline의 중복 처리 로직을 일관되게 적용하고
Plane 웹훅 테스트를 보강한다.
- Add authoring adapter for openai integration
- Move 02+01_iop_authoring_bridge to archive
- Update scheduler jobs and workflow lifecycle
- Enhance openai client and model definitions
- enqueuer가 설정되지 않은 경우에도 FailTask를 호출하여 task 상태를 failed로 표시
- scheduler/jobs.go에 책임 경계 주석 추가
- README에 작업 라이프사이클 책임 경계 문서 추가
- EnqueueTask 실패 시 lifecycle를 통한 상태 전이 테스트 추가
- Lifecycle에 taskStore interface를 도입해 storage 의존성 추상화
- validTaskStatus, terminalTaskStatus, canEnqueueStatus helper 함수로 상태 검사 로직 분리
- QueueTask 메서드를 Lifecycle로 이동해 상태 전이 통합 관리
- Service에 lifecycle 필드 추가하고 EnqueueTask에서 lifecycle 활용
- lifecycle 전이 검증 및 enqueue 흐름 테스트 추가
- Add migration for task metadata column (00003)
- Update workflow model and service with metadata support
- Update database layer (models, queries) for metadata field
- Update storage store to handle metadata
- Update roadmap documents and milestones
- 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