fix(control-plane): confirm provider merge + configurable required-check wait policy - #3
Open
DanielSoCra wants to merge 2 commits into
Open
fix(control-plane): confirm provider merge + configurable required-check wait policy#3DanielSoCra wants to merge 2 commits into
DanielSoCra wants to merge 2 commits into
Conversation
…policy (#2 quick wins) Two fail-closed fixes extracted from #2: - deliverCodeChangeViaPR records the join transition only when GitHub responds merged: true; a 200 with merged: false now parks the work item with the provider's message instead of reporting success. - LandingTarget gains optional checkBudgetMs/checkPollMs so a deployment whose required checks take longer than the built-in 60s budget can be supported without a source change. Values thread from the deployment registry through readLandingTarget into awaitRequiredChecks; absent values keep the existing defaults. Regression tests cover merged: false, budget forwarding, and schema acceptance/rejection of the new wait-policy fields. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9 tasks
…ation contract (#2) Drafted from the Operator-authored issue #2 (remaining scope after the quick wins in PR #3): semantic label roles, proposal wording templates, per-repository check patience, governance/containment profiles, read-only compatibility preflight, and fail-closed behavior on an incomplete contract. Status draft — L1 content awaits Operator approval before L2/L3 are written. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extracts the two bugfix-class quick wins from #2 so they land ahead of the full integration-contract design.
Changes
Provider-confirmed merge (fail-closed).
deliverCodeChangeViaPRpreviously setmerged: trueand marked the phase artifactjoinedright after the merge API call, without checkingmergeResponse.data.merged. It now requiresmerged === true; a response withmerged: falsereturns a parked result that preserves GitHub's message (e.g. "Base branch was modified.") and leaves the artifact un-joined.Configurable required-check wait policy.
awaitRequiredChecksalready acceptedbudgetMs/pollMs, but the delivery path never passed them — every deployment was pinned to the 60s default budget.LandingTargetnow accepts optionalcheckBudgetMs/checkPollMs(strict zod, positive ints), threaded from the deployment registry throughreadLandingTargetinto the check-polling call. Absent values keep today's defaults, so existing profiles are unaffected.Tests
p1-pr-delivery.gate.test.ts: regression formerged: false(result, reason, artifact status) and for budget/poll forwarding.deployment-registry/schema.test.ts: wait-policy fields parse; non-positivecheckBudgetMsis rejected.src/control-planesuite: 147 files / 1866 tests green.tsc --noEmitclean. The 10 eslint errors inphases.tsare pre-existing (identical on baseline).Spec: STACK-AC-CONTROLLED-ARTIFACT-DELIVERY (no new files; traceability unchanged).
Refs #2
🤖 Generated with Claude Code