From 3780ec67e11452a202a1ae82822f95be588f59f8 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Thu, 16 Jul 2026 13:49:49 +0800 Subject: [PATCH] docs: record sync governance contract --- .../cross_project_contract/sync_ledger.json | 21 +++++++++++++++++++ tests/test_cross_project_contract.py | 7 ++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/references/cross_project_contract/sync_ledger.json b/references/cross_project_contract/sync_ledger.json index a9b67279..732b4867 100644 --- a/references/cross_project_contract/sync_ledger.json +++ b/references/cross_project_contract/sync_ledger.json @@ -22,6 +22,27 @@ ], "hash_contract_result": "pass: 257042461fe303aa3bff5a8333f65090832ce8a2be395f038523838d724b474b", "rollback": "git revert f4d8148 / git revert fd06bdc" + }, + { + "source_repository": "732642856/yinduzhanxing", + "source_commit": "25070634e26162a2ed7a5734aa783a4e42b26546", + "target_repository": "jesse-ux/Jyotisha", + "target_commit": "b6d292a7cd1a5c50d4b920caeec11b462248c21d", + "change_class": "sync_governance", + "copied_files": [ + "references/cross_project_contract/sync_policy.v1.json", + "scripts/cross_project_sync_status.py", + "tests/test_cross_project_sync_status.py" + ], + "dependency_delta": "none", + "privacy_review": "pass: public sync policy and file hashes only; no production configuration or user data", + "focused_tests": [ + "python3 -m pytest -q tests/test_cross_project_contract.py tests/test_cross_project_sync_status.py", + "python3 scripts/cross_project_sync_status.py --peer /tmp/Jyotisha-jesse-ux --format json", + "python3 scripts/public_release_privacy_scan.py --json" + ], + "hash_contract_result": "pass: shared file sha256 comparison returned status=pass", + "rollback": "git revert 2507063 / git revert b6d292a" } ] } diff --git a/tests/test_cross_project_contract.py b/tests/test_cross_project_contract.py index 024420ce..f840452c 100644 --- a/tests/test_cross_project_contract.py +++ b/tests/test_cross_project_contract.py @@ -67,9 +67,10 @@ def test_sync_ledger_requires_provenance_privacy_tests_hash_and_rollback() -> No ledger = contract.load_ledger(LEDGER) assert ledger["schema_version"] == 1 - assert len(ledger["entries"]) == 1 - assert contract.validate_ledger_entry(ledger["entries"][0]) == [] - assert ledger["entries"][0]["privacy_review"].startswith("pass:") + assert len(ledger["entries"]) >= 1 + for entry in ledger["entries"]: + assert contract.validate_ledger_entry(entry) == [] + assert entry["privacy_review"].startswith("pass:") missing = contract.validate_ledger_entry({"source_repository": "x"}) assert "target_commit" in missing assert "privacy_review" in missing