- Update tasks.sql.go with new query mappings
- Add scheduler job definitions and tests
- Extend storage store with new methods
- Update workflow lifecycle and service tests
- Add task query definitions for authoring
When the missing-create path stores a RoadmapRevision, a later reconcile push
(after the authoring roundtrip adds the Plane identity to the milestone file)
conflicts with ReconcileCreationCycle's revision guard because the new push has
a different revision than the original missing-create push.
Since missing-create has no completed projection steps, a future reconcile on a
different revision should be allowed to resume. Omit RoadmapRevision from the
missing-create job args so the persisted row stores NULL and the revision guard
does not block the subsequent reconcile push.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a milestone file's provider identity block omits Tenant and Project
(both are optional since MatchDevelopMilestone fills them from expected),
the bridge's FetchWorkItem call fails with ErrInvalidInput because
planeWorkItemRef requires all three: tenant, project, id.
Fill in missing Tenant/Project from BridgeConfig before building the ref,
mirroring the missing-create path which always uses b.cfg.Tenant/Project.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
- roadmapsync pipeline에 retry 로직 및 개발 일치 검증 로직 추가
- gitosync scanner에 slug 재조정 및 plane 매칭 로직 강화
- roadmap sync identity 관리를 위한 migration(00009) 및 SQL 쿼리 추가
- milestone parser 테스트 및 retry 테스트 보강
- agent-ops 문서(PHASE, SDD, milestones) 갱신
- agent-task archive 및 작업 디렉터리 추가
- authoring: identity write 도메인 구현 (identity_write.go)
- authoring: request/result 도메인 정리 및 테스트 개선
- scheduler: job/river 구조 리팩토링 및 테스트 보완
- gitosync: bridge/scanner 테스트 개선
- roadmap: plane-origin-authoring-roundtrip-sync 마일스톤 업데이트
- 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
- Move strings.TrimSpace into validateBranchUpdatedPayload to avoid
duplicate validation in ReceiveGitoWebhook
- Update CODE_REVIEW to reflect the improvement
- Add validateBranchUpdatedPayload() to check body type and changed_files
- Extend gitoWebhookPayload struct with Type and ChangedFiles fields
- Add tests for wrong body type and malformed changed_files rejection
- All tests pass: ./internal/http, ./internal/config, ./cmd/server, ./...
- 마일스톤 문서 archive로 이동 (gito-branch-event-sync-bridge, plane-work-item-webhook-intake)
- PHASE.md 및 ROADMAP.md 갱신
- gitoevents/client.go: 클라이언트 로직 개선
- gitoevents/client_test.go: 테스트 커버리지 추가
- 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 웹훅 테스트를 보강한다.
- gitoevents: Gito 이벤트 클라이언트 및 이벤트 모델 구현
- gitosync: 브리지, 러너, 스캐너 구현으로 브랜치 이벤트 및 작업 항목 동기화
- config: 새 설정 항목 추가 및 테스트
- roadmapsync: plane projection 수정 및 테스트
- agent-task: G07 관련 계획 및 코드 리뷰 로그 추가
- roadmap: PHASE 및 마일스톤 업데이트
- contracts: Flutter core API 후보 노트 업데이트
- Plane 프로젝트의 work-item 생성 시 Orchestrator로 동기화
- scheduler에 roadmap sync job 등록 및 river client 지원
- roadmapsycpipeline adapter 패키지 추가
- 관련 테스트 파일 및 브리지 문서 추가
- Add Plane API client integration for work item creation
- Update HTTP handlers for work item sync endpoints
- Implement workitem provider and pipeline service updates
- Add test cases for Plane client, handlers, and pipeline
- Update milestone documentation
- Archive task artifacts from 09_creation_trigger_gate and 10+09_plane_draft_authoring
- Add develop_match.go/handlers for matching Plane tasks to local develop areas
- Add identity.go for external ID mapping and lookup
- Add milestone_parser.go for parsing agent-roadmap milestone files
- Include unit tests for all new modules
- Archive completed subtask documents for 03+02_develop_match
- 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
- projectsync: checkout, config 모듈 개선 및 테스트 추가
- workitempipeline: service 개선 및 테스트 추가
- http handlers 테스트 업데이트
- client: proto_socket_branch_event_service.dart 추가 및 테스트
- contracts notes 업데이트
- agent-task: milestone 하위 subtask PLAN/CODE_REVIEW 문서 추가
- Add projectsync package with checkout logic and tests
- Integrate project sync into server initialization
- Update HTTP handlers and middleware for project sync endpoints
- Update workitempipeline service with project sync support
- Migrate task documents to archive structure with standardized naming
Milestone work item 생성 동기화에서 workspace slot 상태를 DB에 저장하고 available slot을 원자적으로 예약할 수 있어야 한다.
리뷰 루프 산출물을 archive하고, 현재 로드맵 우선순위를 Workbench Provider Slot Composition으로 조정한다.
- external-integration 마일스톤 아카이브 추가 (01_provider_intake_registry, 02+01_adapter_boundary)
- HTTP 핸들러에 외부 통합 관련 로직 추가
- HTTP 핸들러 테스트 케이스 보강
- HTTP 라우터 설정 추가
- 외부 통합 마일스톤 문서 업데이트