Skip to content

[FLO-13.3] Prove compatibility, artifact, and provider-failure scenarios #30

Description

@szmyty

Parent: #13
Depends on: #28, #29, #25
Coordinates with: #3

Outcome

Use the versioned scenario contract and hermetic provider kit to prove Flow fails closed across compatibility, contract, artifact, and provider-evidence boundaries.

This checkpoint covers acceptance and refusal around one execution boundary. Lifecycle recovery and resume are owned by the next checkpoint.

Required scenario families

Compatibility and contract

  • compatible, unavailable, missing, stale, future, and mismatched provider/capability versions;
  • valid and invalid manifests, provider locks, execution reports, provenance, output declarations, and schema versions;
  • configuration, publisher, executable, capability, authorization, and integrity disagreement;
  • deterministic conflict and fallback behavior, with fallback forbidden after invocation begins.

Artifact acceptance

  • complete, partial, missing, extra, stale, corrupt, and contradictory artifact sets;
  • absolute paths, parent traversal, path escape, symlinks, file/directory mismatch, duplicate identity, digest conflict, and undeclared output;
  • provider success or exit zero followed by failed Flow-owned validation.

Diagnostics and privacy

  • typed, actionable explanations naming the failing boundary;
  • bounded and redacted operational evidence;
  • canaries proving argv, environment, secrets, and private content do not leak into portable results.

Acceptance criteria

Non-goals

  • Durable interruption, retry, checkpoint, or resume.
  • Real provider algorithms or broad raw-format coverage.
  • Publication, upload, signing, or destructive mutation.

Verified closeout — 2026-09-25

PR #61 merged as dfb16b347975e3292dc2928c8c48463f51dcf6d1. Default-branch CI passed on that exact commit. The 81-case acceptance suite, two fresh-workspace repetitions, Rust 1.85/stable checks, and repository validators are complete. #49 now supplies durable state before #31 extends lifecycle coverage. #62 owns the later documentation showcase.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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