Skip to content

[beta.31][P2] Admit receipt-bound deleted job replay through the local delegation exchange #339

Closed

Description

@Proxicon

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

At released source 4b148ebe824b3de445a12d30e95b8f5c30d53655, create and delete an owned disposable metadata-only job. The successful deletion returns its resulting version; the exact confirmation retry before expiry fails HTTP 403 local_delegation_binding_mismatch with failure.layer=target in both tested tenants.

This failure occurs before business dispatch. McpOperationObjectTargetResolver.JobOwnerAsync excludes tombstoned rows, so McpLocalDelegationEndpoints cannot establish the deleted object's owner for its own successful receipt. The direct endpoint repair in #333/#335 does not resolve this boundary. Inspect the analogous deleted-run path covered by #334 as well.

Required narrow admission

Use retained authenticated ownership/tombstone provenance only when the exact request is cryptographically bound to a consumed successful confirmation. Preserve the signed ingress/local exchange, current recheck, payload and actor/tenant/agent/client/resource/instance binding, expiry and policy/credential revocation. Never broaden the normal resolver to admit arbitrary missing/deleted references.

Add regression coverage through the actual local HTTP exchange and business recheck. Direct endpoint tests alone cannot establish this repair. Exercise admitted exact deletion replay and denied changed payload, new confirmation, unrelated/missing/deleted/wrong-owner references; use synthetic jobs/runs and preserve retained audit history.

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] Admit receipt-bound deleted job replay through the local delegation exchange[/-] [+][beta.31][P2] Admit receipt-bound deleted job replay through the local delegation exchange[/+] 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.

    Deleted job and run replay now crosses the actual local HTTP exchange only with a signed delegation containing hashes of the normalized plan token, idempotency key and business payload. Retained owner lookup requires the linked unexpired consumed-success receipt under the authenticated owner/current credential. Middleware repeats admission; business confirmation retains current policy and replay-only enforcement. Ordinary deleted reads/previews remain denied, and ordinary relay identities and binding-error precedence remain compatible.

    Existing HTTP exchange/middleware/endpoint regressions cover exact original-result replay, altered proof/body/target, wrong client, and authority withdrawal after exchange. The initial hosted run exposed 13 ordinary-delegation compatibility regressions; those assertions were retained and the owning production boundary was corrected.

    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