feat(gatorwalk-factory): retarget a work item to another issue, journaled (swamp-club #2798) #388
Loading…
Reference in a new issue
No description provided.
Delete branch "cue/2798-gatorwalk-factory-retarget"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes swamp-club #2798. Part of the tracker-seam decision; #2799 (mark a duplicate) builds on it.
What
retargetwork-item method (engine side):externalRefs(JSON object),reason, the usual expect inputs andonBehalfOf. It replacesexternalRefswhole and journals aretargetedevent (from,to,reason, actor). There is no gate and no stage change. It is refused on a finished work item, on a stale expectation, for a map that names no ticket (no non-empty stable id), and for an unchanged map. It commits through the committing store, so the awaiting event and metrics are recomputed; CEL can readitem.externalRefs.publishrouting (tracker side):ticketSegmentsinprojection.tssplits the journal into one segment per ticket at each retarget of this tracker's ref.-opening), and the old ticket's status is keyed on the version before the retarget, so no delivery key names two tickets.publishis then up to date.retargetpassage).The claim index is not moved; that is #2799. Until then,
claimof the old ticket is refused andclaimof the new one reserves a fresh key. This is documented and pinned by a test.Tests
issuebinding names the new ticket, and the summary shows both refs.retargetwith a JSON-stringexternalRefs.Verified at
fef06af: verify-build and verify-reviews all green (attestation 301c2d26). No manifest bump, because gatorwalk-factory has no manifest.🤖 Generated with Claude Code