Skip to content

[beta.31][P2] Reconcile policy replace disable and revoke retries before mutable version checks #337

Closed

Description

@Proxicon

Confirmed final beta.29 finding: DEF-B29-03

At released source 4b148ebe824b3de445a12d30e95b8f5c30d53655, an exact successful policy replace confirmation advances version, then its unchanged retry returns HTTP 409 operator_policy_version_conflict. The same failure reproduces for successful disable and revoke confirmations. Exact create replay succeeds, and fresh stale writes are correctly rejected.

McpOperatorPolicyMutationEndpoints runs current durable-state CanReplace, CanDisable or CanRevoke guards before confirmation reconciliation. Reconcile the consumed outcome first without relaxing current management authorization or turning a policy's own lifecycle state into authority. Preserve the original normalized policy/result version after intervening lifecycle changes. Related existing replay work: #333 and #335.

Required behavior and regression boundary

Reconcile only an authenticated exact consumed-success confirmation within its original validity. Keep current principal/client/resource/instance/tenant/agent ownership, policy, payload, revocation and expiry checks. Return the recorded successful outcome without a second write, execution, version increment or accepted-operation audit. Changed requests, other identities/targets, arbitrary missing objects and fresh stale writes must remain denied; invalid fresh confirmations must remain unconsumed. Cover response loss, exact replay, concurrent completion, original-result fidelity and current-authority denial in the existing focused owning-layer tests.

The final owner evidence is private. Use synthetic fixtures and identifiers in code, tests, issue discussions and release notes. Source delivery and publication do not close owner production acceptance in #294/#305. Reuse the existing generic CI and publication workflows.

Activity

  1. changed the title [-][beta.30][P2] Reconcile policy replace disable and revoke retries before mutable version checks[/-] [+][beta.31][P2] Reconcile policy replace disable and revoke retries before mutable version checks[/+] on Oct 19, 2026
  2. Proxicon commented on Oct 19, 2026

    @Proxicon
    ContributorAuthor

    Delivered through merged PR #340 at f89593ccef6fa7385779baf1ba18328426218c07 in v0.1.1-beta.31.

    Exact successful policy replace, disable and revoke confirmations now reconcile before mutable lifecycle/version guards and return the recorded normalized result/version after later changes. Current management authorization remains mandatory; fresh stale/invalid requests remain denied without consuming a new plan. Existing owning-layer regressions cover original-result fidelity, receipt/payload binding and authority withdrawal.

    Corrected PR validation and merged-main validation each passed 4,973 tests (4,352 Core + 36 API + 585 Components), with zero failures/skips; complete runs took 11m54s and 16m57s. These are separate executions of the same suites.

    Historical tag/publication evidence: tag build attempt 1 failed one Core case (4,351 passed, one failed, zero skipped); API and Components did not execute. The recorded mechanism review supports a pre-existing TestServer/gRPC request-flush race, and the failed execution remains retained. Publication attempt 1 stopped on that prerequisite before registry writes or public asset uploads; it produced no publication journal or release asset. The one documented failed-jobs recovery on the unchanged tagged source completed successfully as build attempt 2, followed by successful publisher attempt 2. No source, test, assertion or workflow gate was changed for this recovery. The 168 passing release contract tests from build attempt 1 remain retained successful evidence.

    Tag build: attempt 2 succeeded with all eight required jobs; fresh source validation passed 4,973 tests (4,352 Core + 36 API + 585 Components), zero failed/skipped, in 17m34s. All four unsafe-frame cases passed the original assertions; Windows MCP passed 15 bounded synthetic checks; three native Client archive integrity checks and all five package provenance-upload steps passed. The 168 contract tests are the retained successful attempt 1 execution. Publication: attempt 2 succeeded with all seven required jobs in 7m29s; five anonymous digest pulls/rescans, all 15 public assets and 14 public-download checksum matches passed. Independent distribution verification: 2026-10-19T12:37:08.811855+00:00; 15 completed-publication files matched public asset metadata, with 14 checksum entries, 13 artifact hashes, exact source and authenticated build attempt 2, all five Compose image pins, and the published Windows MCP ZIP matching its 15-check smoke receipt. Public downloads and anonymous image pulls were verified by the publication workflow; the independent local check used the completed artifact and public digest metadata. Functional acceptance remains pending owner testing. publication.json and SHA256SUMS bind the delivered artifacts.

    Closing the release-delivery repair. Fresh deployed replay and current-authority acceptance remain open in #305/#294, with #282 retaining production readiness. Publication supplies no owner deployment, native workflow or endurance result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions