Rename and extend the payload mount struct to StagedPreparedPayload
Intent: Replace the narrow StagedPayloadMount (which only carried a local path and device prefix) with a richer StagedPreparedPayload that also captures the prepare node ID, Nix installable, output name, and human-readable description. This makes the struct a self-contained specification of everything needed to prepare and mount a staged payload.
Affected files: crates/pikaci/src/executor.rs
@@ -27,9 +27,13 @@ mod incus;
-pub struct StagedPayloadMount {
+pub struct StagedPreparedPayload {
+ pub prepare_node_id: String,
+ pub installable: String,
+ pub output_name: &'static str,
pub local_mount_path: PathBuf,
pub device_prefix: String,
+ pub prepare_description: String,
}
@@ -45,7 +49,7 @@ pub struct HostContext {
- pub staged_payload_mounts: Vec<StagedPayloadMount>,
+ pub staged_payloads: Vec<StagedPreparedPayload>,
The core data model change renames StagedPayloadMount to StagedPreparedPayload and adds four new fields:
| Field | Type | Purpose |
|---|---|---|
prepare_node_id | String | Unique ID for the prepare node in the execution plan graph |
installable | String | Full Nix installable URI (e.g. path:/snapshot#ci.x86_64-linux.workspaceDeps) |
output_name | &'static str | Nix output attribute name |
prepare_description | String | Human-readable description used in plan records |
The existing local_mount_path and device_prefix fields are preserved. On HostContext, the field is renamed from staged_payload_mounts to staged_payloads to reflect the broader scope of the struct.