Commit 53b9f5b
feat(api/base): add PROMOTE merge strategy (#266)
## Summary
### Why?
Stovepipe promotes an already-verified commit onto a verified branch
(e.g. `verified/main`) as-is. The existing
`REBASE`/`SQUASH_REBASE`/`MERGE` strategies cannot express this — they
all transform the change and produce new revisions. We need a shared,
VCS-neutral way for a client to ask Runway to advance a branch to an
already-existing commit.
### What?
Adds `PROMOTE` (= 4) to the shared `Strategy` enum in
`api/base/mergestrategy` and the matching `MergeStrategyPromote` Go
entity constant in `platform/base/mergestrategy`. `PROMOTE` means
"integrate the exact revision as-is, with no content transform": each
backend realizes it natively (git fast-forward, Mercurial bookmark
advance, Subversion/Perforce copy), so a step's output revision is the
same commit the request named rather than a freshly created one. The
Runway merge-queue contract README gains a "Merge strategy" section
documenting the semantics.
This is contract + docs only — no producer or consumer wiring is added
yet.
## Test Plan
✅ `make proto` (regenerated `api/base/mergestrategy/protopb`)
✅ `bazel build //api/base/mergestrategy/protopb
//platform/base/mergestrategy`
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent 3227a7a commit 53b9f5b
4 files changed
Lines changed: 21 additions & 3 deletions
File tree
- api
- base/mergestrategy
- protopb
- proto
- runway/messagequeue
- platform/base/mergestrategy
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
39 | 43 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
9 | 13 | | |
10 | 14 | | |
11 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| 33 | + | |
| 34 | + | |
32 | 35 | | |
0 commit comments