Skip to content

[Quality][Medium] Add deterministic wasm-size and budget regression gates #2416

Description

@Baskarayelu

Objective

Make size and representative budget thresholds explicit, reproducible, and enforced for the affected contract paths.

Why this matters

Contract behavior can remain correct while a change pushes WASM size or host budget beyond deployable limits.

This is a substantive production-quality improvement. It must change runtime behavior, security guarantees, correctness, reliability, or meaningful user functionality. It is not a documentation-only, formatting-only, or trivial dependency task.

Scope

Area: performance and deployment safety

Starting points: scripts/check-wasm-size.sh, scripts/coverage-drift.sh, Cargo.toml, docs/RUSTDOC.md

The contributor should verify the current implementation before changing it and keep the PR limited to this issue. Do not introduce unrelated refactors or weaken existing CI/security gates.

Acceptance criteria

  • CI reports the size and budget baseline for each deployable contract.
  • Thresholds are versioned and fail when exceeded without an explicit reviewed update.
  • Representative worst-case paths are measured rather than only trivial calls.
  • The check is reproducible locally with documented commands.

Required validation

  • Add fixtures for worst-case invoice, bid, settlement, and query paths.

  • Test the gate against an intentional threshold violation.

  • Run the complete release/WASM pipeline.

  • The PR explains the failure mode, the chosen design, backward-compatibility impact, and rollback or migration considerations.

  • The PR includes CI evidence and does not contain secrets, generated noise, unrelated cleanup, or disabled checks.

Contributor deliverables

  • Open a focused feature branch and do not begin implementation until assigned.
  • Reference this issue with Closes #<issue-number> or Fixes #<issue-number>.
  • Check off every acceptance criterion in the PR with links to the relevant code and tests.
  • Include a security/correctness note explaining why adversarial inputs cannot bypass the new guarantee.

Maintainer quality bar

The PR must be independently reviewable, preserve existing behavior outside this scope, exercise failure paths, and pass the repository's complete required CI/CD checks. Reward eligibility is not guaranteed by this issue or by merging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions