wip(#1838): add MergeConfigPr approvalkind + match-site arms

This commit is contained in:
damocles 2026-06-22 22:37:17 +02:00
commit 449e3fcb7b
4 changed files with 66 additions and 3 deletions

View file

@ -154,10 +154,12 @@ pub struct Approval {
/// Kind-specific payload (git sha / inputs array / schedule
/// payload / empty). See the Approval struct doc.
pub commit_ref: String,
/// `ApplyCommit` only: the canonical hive-c0re-vouched sha after
/// the proposal fetch, tagged `proposal/<id>`. Stable for the
/// The canonical hive-c0re-vouched sha. For `ApplyCommit`: the sha
/// after the proposal fetch, tagged `proposal/<id>` (stable for the
/// approval's lifetime — manager amends in proposed don't change
/// what gets built.
/// what gets built). For `MergeConfigPr`: the reviewed PR head
/// pinned at submit; if the PR head drifts off it before merge,
/// hive-c0re refreshes this + re-renders the card for re-review.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fetched_sha: Option<String>,
pub requested_at: i64,
@ -192,6 +194,12 @@ pub enum ApprovalKind {
UpdateMetaInputs,
/// Add a scheduled prompt to the broker queue.
SchedulePrompt,
/// Merge an operator-reviewed config PR: hive-c0re verifies the
/// reviewed PR head, fast-forwards the forge config repo's `main`
/// to it, marks the PR merged, then runs the same deploy tail as
/// `ApplyCommit`. `commit_ref` = PR number; `fetched_sha` = the
/// reviewed PR head pinned at submit. See `docs/approvals.md`.
MergeConfigPr,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]