Skip to content

Performance evidence: support explicit direct-binary provenance without dummy overlays #914

Description

@glennmichael123

Parents: #460, #496. Blocking complete modern evidence publication for #913.

Current behavior

tools/exact-parent-regression.ts defaults to attribution schema v3. Its v3 branch always calls validateSharedMeasurementOverlay, requiring each binary revision to be a one-commit child of its logical engine revision with a non-empty symmetric changed-path set. A binary built directly from the named logical parent/candidate therefore fails before collection. The existing validateDirectBinaryRevisions helper is reachable only for older schemas.

The frozen v3 contract explicitly describes identical measurement overlays, and the artifact validator requires a non-empty overlay inventory. That contract must not silently change. The ordinary direct-parent command shown in docs/benchmarks.md also omits the now-required binary provenance options.

Required change

Introduce a versioned first-class direct-binary provenance mode alongside the existing overlay mode. Direct mode must attest exact equality of logical and binary revisions, an empty overlay inventory, identical workload source, exact first-parent relation, clean source/dependencies and binary/source hashes. Overlay mode must retain the current strict symmetric-path/blob checks. Reject mixed modes, ambiguous or stale revisions, undeclared changes, missing metadata, and attempts to label an overlay as direct.

Keep v1/v2/v3 artifacts and validators byte-compatible. Do not create dummy overlay commits, downgrade a new experiment merely to bypass provenance, weaken checksum/occupancy/thermal/dispersion guards, or invent performance results. Add negative fixtures and update the owned collector/growth contracts and documented direct-parent invocation. Then collect #913's actual parent/candidate evidence using the matching mode.

Activity

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