commit 583121dcba2474343686083cc2fa7ab3225cf708
parent 4d08f9d00d2c84f090e17fba09add7a366ae341a
Author: triesap <tyson@radroots.org>
Date: Thu, 6 Aug 2026 08:49:46 +0000
consolidation: prove legacy studio source
- verify the path-scoped fast-export against its original commit
- preserve reconstructed metadata and normalized patch equivalence
- record the MPL source tree in a machine-readable commit map
- keep the import isolated for unique-behavior extraction
Diffstat:
3 files changed, 90 insertions(+), 9 deletions(-)
diff --git a/contracts/consolidation/history.v1.toml b/contracts/consolidation/history.v1.toml
@@ -77,6 +77,16 @@ bytes = 986718
final_tree_sha256 = "8158d9dd59199fa28faca31327ff20d8fe654dc15cc38dc2f2ce2adc9c049b32"
path_map_sha256 = "7b0302d616114ddc769d88eee05309ddaa5fb978a683ac5f7e49692ce810a7be"
+[[import]]
+source_id = "studio_mpl_legacy_core"
+frozen_commit = "6074a4745be361f21bb47d4778c74a14b2d57954"
+filtered_head = "09b463c5875c2cefc09569468db1bff6472cfc3b"
+artifact = "studio_mpl_legacy_core.commit-map.v1.json"
+sha256 = "a1f6a9feade4bc972287b02989b0962e679d2053e743308f966b4c985593ce1f"
+bytes = 2391
+final_tree_sha256 = "0e04a38aa0c9f1f1db055e01bed2ce11154b2d9d0cf2e746e5d89dbfe5d1ce9e"
+path_map_sha256 = "cab788f7be2329c906c993e168c0dbbbd6b6facf5e2afbd0a54290fb3d88190e"
+
[[archive]]
source_id = "sdk"
kind = "git_bundle"
diff --git a/contracts/consolidation/imports/studio_mpl_legacy_core.commit-map.v1.json b/contracts/consolidation/imports/studio_mpl_legacy_core.commit-map.v1.json
@@ -0,0 +1,61 @@
+{
+ "schema_version": 1,
+ "schema": "radroots.history-import.commit-map.v1",
+ "source_id": "studio_mpl_legacy_core",
+ "frozen_commit": "6074a4745be361f21bb47d4778c74a14b2d57954",
+ "filtered_head": "09b463c5875c2cefc09569468db1bff6472cfc3b",
+ "source_commit_count": 1,
+ "source_path_commit_count": 1,
+ "rewritten_commit_count": 1,
+ "topology_support_commit_count": 0,
+ "omitted_empty_commit_count": 0,
+ "final_tree_sha256": "0e04a38aa0c9f1f1db055e01bed2ce11154b2d9d0cf2e746e5d89dbfe5d1ce9e",
+ "path_map_sha256": "cab788f7be2329c906c993e168c0dbbbd6b6facf5e2afbd0a54290fb3d88190e",
+ "verifications": [
+ "archive_restore",
+ "git_fsck",
+ "mapped_parent_closure",
+ "commit_count",
+ "path_coverage",
+ "normalized_patch_equivalence",
+ "final_tree_digest",
+ "authorship",
+ "timestamps",
+ "message_scope_only",
+ "git_log_follow",
+ "secret_scan",
+ "license_scan",
+ "bot_identity_scan",
+ "github_workflow_exclusion",
+ "context_firewall"
+ ],
+ "commits": [
+ {
+ "source_commit": "6074a4745be361f21bb47d4778c74a14b2d57954",
+ "target_commit": "09b463c5875c2cefc09569468db1bff6472cfc3b",
+ "source_parents": [],
+ "target_parents": [],
+ "source_subject": "studio: track native dashboard refactor",
+ "target_subject": "studio: track native dashboard refactor",
+ "source_author": "triesap <tyson@radroots.org>",
+ "target_author": "triesap <tyson@radroots.org>",
+ "source_author_time": "2026-08-03T22:45:35Z",
+ "target_author_time": "2026-08-03T22:45:35Z",
+ "source_committer_time": "2026-08-03T22:45:35Z",
+ "target_committer_time": "2026-08-03T22:45:35Z",
+ "source_paths": [
+ "studio_app/studio_app_core/Cargo.lock",
+ "studio_app/studio_app_core/Cargo.toml",
+ "studio_app/studio_app_core/RADROOTS_PATCH_VERSION",
+ "studio_app/studio_app_core/crates/core/Cargo.toml",
+ "studio_app/studio_app_core/crates/core/src/lib.rs",
+ "studio_app/studio_app_core/crates/core/uniffi.toml",
+ "studio_app/studio_app_core/rust-toolchain.toml",
+ "studio_app/studio_app_core/tools/uniffi-bindgen/Cargo.toml",
+ "studio_app/studio_app_core/tools/uniffi-bindgen/src/main.rs"
+ ],
+ "normalized_patch_sha256": "5aeb305010a8a711e78d9a63e94a432facfab2ead97cbd4bd95c7a00d0e11849",
+ "empty_commit_disposition": "retained"
+ }
+ ]
+}
diff --git a/tools/xtask/src/consolidation.rs b/tools/xtask/src/consolidation.rs
@@ -239,8 +239,10 @@ fn verify_history_import(
.iter()
.find(|archive| archive.source_id == source_id)
.ok_or_else(|| format!("unknown history source {source_id}"))?;
- if archive.kind != "git_bundle" {
- return Err(format!("history source {source_id} is not a Git bundle"));
+ if !matches!(archive.kind.as_str(), "git_bundle" | "path_fast_export") {
+ return Err(format!(
+ "history source {source_id} has an unsupported archive kind"
+ ));
}
let path_maps = history
.path_map
@@ -250,7 +252,11 @@ fn verify_history_import(
if path_maps.is_empty() {
return Err(format!("history source {source_id} has no path map"));
}
- if git_stdout(source_root, &["rev-parse", "master"])?.trim() != archive.frozen_commit {
+ let source_head = git_stdout(source_root, &["rev-parse", "master"])?
+ .trim()
+ .to_owned();
+ validate_oid(&source_head, "source head")?;
+ if archive.kind == "git_bundle" && source_head != archive.frozen_commit {
return Err(format!(
"history source {source_id} is not at its frozen commit"
));
@@ -286,7 +292,7 @@ fn verify_history_import(
.to_owned();
validate_oid(&filtered_head, "filtered head")?;
let expected_filtered_head = by_source
- .get(archive.frozen_commit.as_str())
+ .get(source_head.as_str())
.and_then(|target| *target)
.ok_or_else(|| "frozen source head was omitted by filtering".to_owned())?;
if filtered_head != expected_filtered_head {
@@ -296,14 +302,14 @@ fn verify_history_import(
verify_import_path_coverage(
source_root,
filtered_root,
- archive,
+ &source_head,
&path_maps,
&filtered_head,
)?;
verify_import_final_tree(
source_root,
filtered_root,
- &archive.frozen_commit,
+ &source_head,
&filtered_head,
&path_maps,
)?;
@@ -386,7 +392,11 @@ fn verify_history_import(
}
};
commits.push(ImportCommit {
- source_commit: entry.source.clone(),
+ source_commit: if archive.kind == "path_fast_export" {
+ archive.frozen_commit.clone()
+ } else {
+ entry.source.clone()
+ },
target_commit: entry.target.clone(),
source_parents,
target_parents,
@@ -721,7 +731,7 @@ fn verify_import_final_tree(
fn verify_import_path_coverage(
source_root: &Path,
filtered_root: &Path,
- archive: &Archive,
+ source_commit: &str,
path_maps: &[&PathMap],
filtered_head: &str,
) -> Result<(), String> {
@@ -731,7 +741,7 @@ fn verify_import_path_coverage(
&[
"cat-file",
"-e",
- &format!("{}:{}", archive.frozen_commit, path_map.source),
+ &format!("{source_commit}:{}", path_map.source),
],
)?;
git(