Skip to content

Deliver accepted artifacts without redundant asset scans or compiler files - #273

Merged
Hona merged 3 commits into
mainfrom
work/release-artifact-verifier
Sep 1, 2026
Merged

Hona merged 3 commits into
mainfrom
work/release-artifact-verifier

Conversation

@Hona

@Hona Hona commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Failure and correction

Release33459511801 accepted the exact package, then attempted an obsolete compiler-tree read inside a redundant remote asset scan. Its broad catch retried ENOENT for ten minutes.

  • Remove the deployment-time full asset GET/HEAD scan and its readiness retry loop, including the obsolete compiler read. Complete conditional publication/readback and public-origin verification are already owned by publication; the unchanged v0.1.0 closure has real retained proof.
  • Keep authenticated artifact/source/receipt checks and package immutability checks around infrastructure apply and deployment. No rebuild, waiver or invented publication pass.
  • Keep the distinct compiler-versus-approved WASM contract check in package preparation only, using actual generated bytes and one hash-authenticated approved WASM object.
  • Resolve local configuration before deployed-route readiness polling, so deterministic local failures cannot become network waits.

Regression

A bounded isolated test executes real delivery control flow with an empty compiler tree and synthetic static files, mocking only acceptance/production boundaries. It requires receipt and all three package checks, permits only the three application readiness requests, rejects any asset-origin scan, and proves missing local files fail before production. It performs no production operation and produces no browser receipt. Focused delivery/package/interface tests: 8 pass, 36 assertions.

CAS descriptors are unchanged. No upload, 2650-object rescan or solver/gameplay campaign is repeated. After merge, only the newly source-bound artifact and its required headed startup receipt are prepared.

Copilot AI lite review requested due to automatic review settings September 1, 2026 01:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

It changes release/deployment integrity verification logic and failure behavior in a security- and operations-sensitive path that warrants final human review.

Pull request overview

This PR refactors release artifact delivery verification to avoid depending on any local compiler/build tree, ensuring delivery validates only published, immutable remote assets and fails fast on deterministic errors. It shifts the “compiled vs approved WASM interface” comparison into release package preparation, where the compiled bytes exist and the approved remote bytes are hash-authenticated.

Changes:

  • Replaces delivery-time “read local compiler WASM + retry readiness loop” with strict, timeout-bounded remote object GET/HEAD verification against a prepared (authenticated) release descriptor.
  • Moves WASM interface comparison into prepare-release-package.ts by fetching the approved remote WASM and comparing it to the locally compiled WASM before building/packaging.
  • Adds an isolated regression test that runs remote artifact verification with an empty repository root and asserts request counts plus immediate failure behavior.
File summaries
File Description
tools/playsrc/tests/release-remote-artifact.test.ts Adds an isolated regression test ensuring delivery verification works without a local games/wasm tree and fails immediately on deterministic errors.
tools/playsrc/src/prepare-release-package.ts Moves the compiled-vs-approved WASM interface check into package preparation by reading local compiled bytes and fetching approved remote bytes.
tools/playsrc/src/deploy.ts Refactors remote object verification to consume a prepared release descriptor, remove readiness retries/compiler-tree reads, and enforce per-request timeouts.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tools/playsrc/src/deploy.ts Outdated
Comment on lines +123 to +125
if (response.status !== 200) throw new DeploymentError(`remote object ${descriptor.sha256} metadata response differs (HTTP ${response.status})`)
if (response.headers.get("content-length") !== descriptor.byteLength || response.headers.get("etag") === null
|| response.headers.get("access-control-allow-origin") !== TF2_APPLICATION_ORIGIN) throw new DeploymentError(`remote object ${descriptor.sha256} metadata differs`)
@Hona Hona changed the title Remove compiler-tree dependency from artifact delivery verification Deliver accepted artifacts without redundant asset scans or compiler files Sep 1, 2026
@Hona
Hona merged commit a7d695b into main Sep 1, 2026
1 check passed
@Hona
Hona deleted the work/release-artifact-verifier branch September 1, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants