fix(gitosync): omit RoadmapRevision on missing-create to allow authoring roundtrip

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>
This commit is contained in:
toki 2026-06-21 15:28:53 +09:00
parent 9338a8500c
commit 9e534d8133

View file

@ -151,9 +151,12 @@ func (b *Bridge) enqueueDoc(ctx context.Context, scan roadmapsync.ScanResult, do
}, },
TodoStateID: b.cfg.TodoStateID, TodoStateID: b.cfg.TodoStateID,
MilestoneMarkdown: doc.Markdown, MilestoneMarkdown: doc.Markdown,
RoadmapRevision: scan.Revision.Revision, // RoadmapRevision is intentionally omitted on missing-create: the identity
ExternalSource: b.cfg.ExternalSource, // has no completed projection steps yet, so a later reconcile push (after
ExternalID: "", // the authoring roundtrip adds the Plane identity to the milestone file)
// must not conflict on revision.
ExternalSource: b.cfg.ExternalSource,
ExternalID: "",
} }
if err := b.enqueuer.EnqueueRoadmapCreationSync(ctx, args); err != nil { if err := b.enqueuer.EnqueueRoadmapCreationSync(ctx, args); err != nil {
return err return err