20namespace neograph::program {
24 std::string source_run_id;
25 std::string source_checkpoint_id;
30enum class ForkCompatibilityField : std::uint8_t {
43NEOGRAPH_PROGRAM_API std::string_view to_string(ForkCompatibilityField field)
noexcept;
44NEOGRAPH_PROGRAM_API ForkCompatibilityField
45fork_compatibility_field_from_string(std::string_view value);
49 ForkCompatibilityField field = ForkCompatibilityField::Continuation;
57enum class ForkCompatibilityStatus : std::uint8_t { Compatible, Rejected };
59NEOGRAPH_PROGRAM_API std::string_view to_string(ForkCompatibilityStatus status)
noexcept;
60NEOGRAPH_PROGRAM_API ForkCompatibilityStatus
61fork_compatibility_status_from_string(std::string_view value);
71 std::string owner_scope;
72 std::string source_owner_scope;
73 std::string target_owner_scope;
76 std::string stored_source_run_id;
77 std::string source_program_version_id;
78 std::string target_program_version_id;
79 std::string resolved_target_program_version_id;
81 CoreCheckpointIdentity published_checkpoint;
84 CorePlanIdentity source_core_plan;
85 CorePlanIdentity target_core_plan;
86 SealedCoreDefinition source_core_definition;
87 SealedCoreDefinition target_core_definition;
88 ProgramContinuation source_continuation;
91struct ForkCompatibilityReceiptData {
92 std::string owner_scope;
93 std::string source_run_id;
94 std::string source_program_version_id;
95 std::string source_checkpoint_id;
96 std::string target_program_version_id;
97 ForkCompatibilityStatus status = ForkCompatibilityStatus::Rejected;
98 std::vector<ForkCompatibilityWitness> witnesses;
103 std::optional<std::string> target_pending_id;
104 std::string resume_value_identity;
113 static constexpr std::uint32_t STORAGE_SCHEMA_VERSION = 2;
118 const std::string& id()
const noexcept;
119 const std::string& owner_scope()
const noexcept;
120 const std::string& source_run_id()
const noexcept;
121 const std::string& source_program_version_id()
const noexcept;
122 const std::string& source_checkpoint_id()
const noexcept;
123 const std::string& target_program_version_id()
const noexcept;
124 ForkCompatibilityStatus status()
const noexcept;
125 const std::vector<ForkCompatibilityWitness>& witnesses()
const noexcept;
126 std::uint32_t storage_schema_version()
const noexcept;
127 const std::optional<ForkInitialResumeBinding>& initial_resume_binding()
const noexcept;
128 bool compatible()
const noexcept;
130 std::optional<std::string> target_pending_id,
const json& resume_value)
const;
131 bool matches_initial_resume(std::string_view target_pending_id,
const json& resume_value)
const;
132 std::string serialize_canonical()
const;
137 std::shared_ptr<const Impl> impl_;
142 :
public std::runtime_error {
Immutable, content-addressed Program compilation artifacts.
Checkpoint system for graph execution state persistence and time-travel.
Canonical immutable compatibility receipt stored with target-run lineage.
Typed pre-start rejection carrying the complete immutable witness receipt.
NEOGRAPH_PROGRAM_API ForkCompatibilityReceipt check_exact_fork_compatibility(ExactForkCompatibilityFacts facts)
Pure, fail-closed compatibility check.
Atomic, content-addressed Program continuation journal.
Immutable outcome of one Program run attempt.
Serialized snapshot of graph execution state at a single super-step.
Fully resolved facts for the PR7 single-call_core fork check.
Machine-readable reason that one exact fork fact is incompatible.
Immutable identity of the value applied at the target's initial fork boundary.