Plexus.Record.File (Plexus v0.1.0)

Copy Markdown View Source

Versioned, checksummed fixed-response replay files.

The JSON envelope holds an uncompressed ETF payload decoded with :safe; only inert scalars, lists, tuples and maps are accepted. PIDs, references, ports and functions are rejected. Existing atoms only: importing a contract with application atoms requires loading that application's modules first. Files are capped at 64 MiB and nesting at 128 levels. SHA-256 detects damage, not malicious replacement; files should come from a trusted experiment.

Manifests freeze engine/kernel versions, registered contract fingerprints and admission limits. Scheduling and replay mode are intentionally excluded. Use replay_identity at run startup to freeze strategy, dataset and evaluation options for a scientific comparison. Import is all-or-nothing after validation.

Summary

Functions

load(run_id, path)

@spec load(term(), Path.t()) :: :ok | {:error, term()}

manifest(run_id)

@spec manifest(term()) :: map()

write(run_id, path)

@spec write(term(), Path.t()) :: :ok | {:error, term()}