lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

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:
Mcontracts/consolidation/history.v1.toml | 10++++++++++
Acontracts/consolidation/imports/studio_mpl_legacy_core.commit-map.v1.json | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtools/xtask/src/consolidation.rs | 28+++++++++++++++++++---------
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(