Skip to content

[FLO-13.2c.2] Reject corrupt, changed, stale, and contradictory artifact evidence #57

Description

@szmyty

Parent: #46
Parent kit: #29
Roadmap-Step: FLO-Q03
Depends on: #56

Outcome

Close the remaining artifact-correlation adversaries with stable corrupt, changed, stale, and contradictory evidence cases, including protocol-valid provider success followed by host observation or acceptance failure.

Scope

  • Add closed, named cases for:
    • changed artifact bytes or identity evidence;
    • corrupt digest/evidence or explicitly synthetic validation corruption;
    • stale run, invocation, binding, or observation correlation; and
    • contradictions across events, results, bindings, and observations.
  • Identify the exact owning rejection boundary for every case.
  • Use only the accepted public Flow contracts and preserve the existing opaque-token promotion boundaries.
  • Determine the smallest contract-safe hardening needed for changed output identity without casually redefining the provisional v1 provenance model.

Acceptance criteria

  • Every case has a stable name, explicit trigger, owning boundary, and exact typed outcome.
  • Altered bytes/evidence, stale correlation, or contradictory identifiers cannot construct AcceptedArtifactSet.
  • Protocol-invalid evidence remains distinguishable from host-observation and artifact-acceptance failures.
  • “Corrupt” means digest/evidence corruption or an explicitly synthetic validation failure, not generic provider-native semantic validation by Flow.
  • Undeclared files outside bound locators are not described as automatically discovered.
  • Evidence and outputs remain deterministic, immutable where required, bounded, offline, and root-confined.
  • Focused tests, Rust 1.85, stable Rust, package checks, and repository validators pass.

Non-goals

  • Graph execution or production scheduling.
  • Real Aniflow, Optiflow, or Renderflow algorithms.
  • Generic semantic validation of provider-native formats.
  • Durable state, retry, or resume.

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