Drain the milestone-merge GitHub outbox (every 10 minutes)
POST
/cron/milestone-merge-sync
const url = 'https://example.com/api/cron/milestone-merge-sync';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/cron/milestone-merge-syncHO-15660. Runs one bounded drain of the milestone-merge GitHub outbox (roadmap_sync_intents): at most 10 intents, two at a time, each GitHub exchange capped at 10 s, legacy direct-send recovery first. While any intent of a merge is unsynced, every edit of its survivor is refused (MILESTONE_SYNC_UNRESOLVED). A GitHub refusal is a count, retried with backoff on a later run; ok is false only when the drain itself threw. Protected by CRON_SECRET via the x-cron-secret header. Scheduled by the milestone-merge-sync stage of the embedding-drain schedule in .slipstream.json.
Responses
Section titled “ Responses ”Run result
Media type application/json
object
ok
required
boolean
claimed
integer
sent
integer
reconciled
integer
uncertain
integer
failed
integer
error
string
Missing or invalid CRON_SECRET