record-verified-main-consolidation-and-recoverable-branch-cleanup
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
92971baaa32a1698f300938827b8f2067d66604106a60ad6c3331a1ea77b75e5 registry/branch-consolidation-20261001/archive-recovery.json
|
||||||
|
e4d767d20e338f2128e59d9cb7cc849639d6329ecb946c714e170a883a01e80b registry/branch-consolidation-20261001/completion.json
|
||||||
|
ea6a4f41e0d3dfff97a628781ed763b1028a9048c5446fb7dff335d2441cc858 registry/branch-consolidation-20261001/merge-audit-final.json
|
||||||
|
c10e8a1941946480acee7f168f68ea4796d22e987a8225058871b5062ddaba45 registry/branch-consolidation-20261001/merge-audit.json
|
||||||
|
8d1367b6326e2165fb11564dd25ba90e6b5ee526a914f5f143fc7ac03002a53a registry/branch-consolidation-20261001/plan.json
|
||||||
|
203a02aa6bec59db3a645d8c639e3d13186e8841048b46f00451b76b6227b20a registry/branch-consolidation-20261001/remote-cleanup.json
|
||||||
|
4d2ba2306801462539766348d93600f984f324f2b8a9020e90af7bb402aba34e registry/branch-consolidation-20261001/source-protection-final.json
|
||||||
|
81a33f1c4371e1013fbb5a2d997cb5c6c0c1dc115efb8b2db098a20a9683661f registry/branch-consolidation-20261001/source-protection.json
|
||||||
|
36f8d0519937ecf42869f364cc4a6a2a7f86443a40dab5800f2bf271f681fc1b tools/branch-consolidation/manage_refs.py
|
||||||
|
54f17a3cd3636d8a7231ae6180100b4010a19a8ce1d46c175a4e8b692f608c2c tools/branch-consolidation/seal_receipt.py
|
||||||
|
7e74da3b46d16d29d31d6da05b4b8b74992a2bc35342775267c5a1890880ea2f tools/branch-consolidation/verify_merge.py
|
||||||
|
b342f80fa91b73a1d5af3672cada52e015bcc8e4c093652270dee504aa10cbd7 docs/30-reproducibility/main-restore.md
|
||||||
|
993291500e4bf30cefb275bdf7cc1c1ff989e736475977a85449d85306d8dcdf docs/40-operations/branches-20261001.md
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"all_old_tips_recoverable_and_ancestors_of_main": true,
|
||||||
|
"archived_tags": 7,
|
||||||
|
"created_utc": "2026-10-01T08:58:00.393849+00:00",
|
||||||
|
"final_receipt_publication": "This report is committed after the integration commit; containing Git commit is the receipt publication revision.",
|
||||||
|
"integration_commit": "9fde10d970474bf4223dec7536c396d3afaccbe3",
|
||||||
|
"lfs_objects_deleted": false,
|
||||||
|
"lfs_payloads_reuploaded": false,
|
||||||
|
"lfs_verification_scope": "Original pointers preserved; authenticated availability checked. Prior fresh-download hash verification receipts remain unchanged.",
|
||||||
|
"local_branches_preserved": true,
|
||||||
|
"model_or_science_changes": false,
|
||||||
|
"remote_branches": 1,
|
||||||
|
"remote_default": "main",
|
||||||
|
"removed_remote_branch_refs": 7,
|
||||||
|
"schema": "branch-consolidation-completion-v1",
|
||||||
|
"scientific_execution": false,
|
||||||
|
"source_protection": {
|
||||||
|
"bytes_checked": 3103901058,
|
||||||
|
"created_utc": "2026-10-01T08:56:09.890381+00:00",
|
||||||
|
"file_mismatches": [],
|
||||||
|
"files_checked": 64034,
|
||||||
|
"inventory_sha256": "d7b675b0d0d4647d8fe2fcf9616b9a599e5bc3c15565e604e0d66a046afb835a",
|
||||||
|
"original_experiment_resumed": false,
|
||||||
|
"original_git_head": "09187e4d4d67badf1b418c5f211258ca5d8fb328",
|
||||||
|
"original_git_status": "",
|
||||||
|
"probes_completed_unchanged": 138,
|
||||||
|
"registered_science_commit": "80aeb2093db655329774eff7b32fb6e417b8b40b",
|
||||||
|
"registration_sha256": "b63e6281b6505ca3b60acb467dd0b3fae274cf513dcbfd653649ba52e9ba9740",
|
||||||
|
"scope": "Saved Phase4AR experiment/control files and registered source files; NOT a new Phase1-4AQ numerical regression",
|
||||||
|
"source_mismatches": [],
|
||||||
|
"sources_checked": 16,
|
||||||
|
"status": "PASS",
|
||||||
|
"training_epochs_cpu_verified_unchanged": 1033,
|
||||||
|
"wall_seconds": 4.999353606001023
|
||||||
|
},
|
||||||
|
"source_worktrees": {
|
||||||
|
"/data/digital-drosophila": {
|
||||||
|
"branch": "codex/lif-author-semantics-lab",
|
||||||
|
"head": "09187e4d4d67badf1b418c5f211258ca5d8fb328",
|
||||||
|
"status": ""
|
||||||
|
},
|
||||||
|
"/home/qishizhe/digital-drosophila-v100-acceleration": {
|
||||||
|
"branch": "codex/v100-conditioning-acceleration",
|
||||||
|
"head": "018f038c7857c7e0236dd7408a680458520d92ce",
|
||||||
|
"status": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"staged_publication_guard": {
|
||||||
|
"files": 12690,
|
||||||
|
"issues": [],
|
||||||
|
"logical_bytes": 121522918,
|
||||||
|
"pass": true
|
||||||
|
},
|
||||||
|
"status": "PASS"
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"all_old_tips_ancestors_of_main": true,
|
||||||
|
"created_utc": "2026-10-01T08:55:25.347213+00:00",
|
||||||
|
"deleted_remote_branch_refs": {
|
||||||
|
"refs/heads/codex/apl-pn-scope-audit": "d6843e675dec5ae38a06f2ba70d74836aea53ace",
|
||||||
|
"refs/heads/codex/lfs-public-resources": "5b1d1b72d7683b5c3dcc1f78b408e1d9dd2832ac",
|
||||||
|
"refs/heads/codex/lif-author-semantics-lab": "09187e4d4d67badf1b418c5f211258ca5d8fb328",
|
||||||
|
"refs/heads/codex/lif-semantics-audit": "5008cd85ca11750f23ce7bc001e8e821763b7501",
|
||||||
|
"refs/heads/codex/project-bootstrap": "3981628ff893132a8148668aa94726886dba57a3",
|
||||||
|
"refs/heads/codex/terminal-scope-diagnostic": "3213aada793740961885ba525494e95f019be6f8",
|
||||||
|
"refs/heads/codex/v100-conditioning-acceleration": "4436241976887d8cc10088b0d44bc7ed70978fe6"
|
||||||
|
},
|
||||||
|
"lfs_objects_deleted": false,
|
||||||
|
"local_branches_deleted": false,
|
||||||
|
"main_commit": "9fde10d970474bf4223dec7536c396d3afaccbe3",
|
||||||
|
"pass_all": true,
|
||||||
|
"preserved_archive_tags": {
|
||||||
|
"archive/2026-10-01/apl-pn-scope-audit": "d6843e675dec5ae38a06f2ba70d74836aea53ace",
|
||||||
|
"archive/2026-10-01/lfs-public-resources": "5b1d1b72d7683b5c3dcc1f78b408e1d9dd2832ac",
|
||||||
|
"archive/2026-10-01/lif-author-semantics-lab": "09187e4d4d67badf1b418c5f211258ca5d8fb328",
|
||||||
|
"archive/2026-10-01/lif-semantics-audit": "5008cd85ca11750f23ce7bc001e8e821763b7501",
|
||||||
|
"archive/2026-10-01/project-bootstrap": "3981628ff893132a8148668aa94726886dba57a3",
|
||||||
|
"archive/2026-10-01/terminal-scope-diagnostic": "3213aada793740961885ba525494e95f019be6f8",
|
||||||
|
"archive/2026-10-01/v100-conditioning-acceleration": "4436241976887d8cc10088b0d44bc7ed70978fe6"
|
||||||
|
},
|
||||||
|
"remaining_remote_heads": {
|
||||||
|
"main": "9fde10d970474bf4223dec7536c396d3afaccbe3"
|
||||||
|
},
|
||||||
|
"remote": "ssh://git@192.168.10.31:2222/qishizhe/digital-drosophila.git",
|
||||||
|
"remote_default": "refs/heads/main",
|
||||||
|
"schema": "branch-consolidation-ref-audit-v1",
|
||||||
|
"source_worktrees_write_operations": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"status": "PASS",
|
||||||
|
"created_utc": "2026-10-01T08:56:09.890381+00:00",
|
||||||
|
"files_checked": 64034,
|
||||||
|
"bytes_checked": 3103901058,
|
||||||
|
"inventory_sha256": "d7b675b0d0d4647d8fe2fcf9616b9a599e5bc3c15565e604e0d66a046afb835a",
|
||||||
|
"registration_sha256": "b63e6281b6505ca3b60acb467dd0b3fae274cf513dcbfd653649ba52e9ba9740",
|
||||||
|
"registered_science_commit": "80aeb2093db655329774eff7b32fb6e417b8b40b",
|
||||||
|
"sources_checked": 16,
|
||||||
|
"file_mismatches": [],
|
||||||
|
"source_mismatches": [],
|
||||||
|
"original_git_head": "09187e4d4d67badf1b418c5f211258ca5d8fb328",
|
||||||
|
"original_git_status": "",
|
||||||
|
"wall_seconds": 4.999353606001023,
|
||||||
|
"scope": "Saved Phase4AR experiment/control files and registered source files; NOT a new Phase1-4AQ numerical regression",
|
||||||
|
"training_epochs_cpu_verified_unchanged": 1033,
|
||||||
|
"probes_completed_unchanged": 138,
|
||||||
|
"original_experiment_resumed": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
"""Save final consolidation evidence; no writes outside this integration clone."""
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
ROOT = Path('/home/qishizhe/digital-drosophila-main-integration-20261001')
|
||||||
|
AUDIT = ROOT / 'registry/branch-consolidation-20261001'
|
||||||
|
|
||||||
|
|
||||||
|
def git(*args, cwd=ROOT):
|
||||||
|
return subprocess.check_output(['git', *args], cwd=cwd, text=True).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
assert Path.cwd().resolve() == ROOT
|
||||||
|
assert not (AUDIT / 'completion.json').exists()
|
||||||
|
plan = json.loads((AUDIT / 'plan.json').read_text())
|
||||||
|
cleanup = json.loads((AUDIT / 'remote-cleanup.json').read_text())
|
||||||
|
integrity = json.loads((AUDIT / 'source-protection-final.json').read_text())
|
||||||
|
assert cleanup['pass_all'] and integrity['status'] == 'PASS'
|
||||||
|
refs = git('ls-remote', '--symref', 'origin').splitlines()
|
||||||
|
assert 'ref: refs/heads/main\tHEAD' in refs
|
||||||
|
heads = [line for line in refs if '\trefs/heads/' in line]
|
||||||
|
assert heads == [cleanup['main_commit'] + '\trefs/heads/main']
|
||||||
|
tag_refs = {line.split('\t')[1]: line.split('\t')[0] for line in refs
|
||||||
|
if '\trefs/tags/' in line}
|
||||||
|
assert len(tag_refs) == 14
|
||||||
|
for branch, sha in plan['branches'].items():
|
||||||
|
tag = plan['archive_tag_prefix'] + branch.removeprefix('codex/')
|
||||||
|
assert tag_refs['refs/tags/' + tag + '^{}'] == sha
|
||||||
|
git('merge-base', '--is-ancestor', sha, 'HEAD')
|
||||||
|
source_trees = {}
|
||||||
|
expected = {
|
||||||
|
'/data/digital-drosophila': ('codex/lif-author-semantics-lab', '09187e4d4d67badf1b418c5f211258ca5d8fb328'),
|
||||||
|
'/home/qishizhe/digital-drosophila-v100-acceleration': ('codex/v100-conditioning-acceleration', '018f038c7857c7e0236dd7408a680458520d92ce'),
|
||||||
|
}
|
||||||
|
for path, (branch, sha) in expected.items():
|
||||||
|
actual = dict(branch=git('branch', '--show-current', cwd=path),
|
||||||
|
head=git('rev-parse', 'HEAD', cwd=path),
|
||||||
|
status=git('status', '--porcelain', cwd=path))
|
||||||
|
assert actual == dict(branch=branch, head=sha, status='')
|
||||||
|
source_trees[path] = actual
|
||||||
|
guard = json.loads(subprocess.check_output(['python3', '-B', 'tools/repo_guard.py'], text=True))
|
||||||
|
assert guard['pass']
|
||||||
|
report = dict(schema='branch-consolidation-completion-v1', status='PASS',
|
||||||
|
created_utc=datetime.now(timezone.utc).isoformat(), integration_commit=cleanup['main_commit'],
|
||||||
|
remote_default='main', remote_branches=1, archived_tags=7,
|
||||||
|
removed_remote_branch_refs=7, local_branches_preserved=True,
|
||||||
|
all_old_tips_recoverable_and_ancestors_of_main=True, source_worktrees=source_trees,
|
||||||
|
source_protection=integrity, staged_publication_guard=guard,
|
||||||
|
model_or_science_changes=False, scientific_execution=False,
|
||||||
|
lfs_objects_deleted=False, lfs_payloads_reuploaded=False,
|
||||||
|
lfs_verification_scope='Original pointers preserved; authenticated availability checked. Prior fresh-download hash verification receipts remain unchanged.',
|
||||||
|
final_receipt_publication='This report is committed after the integration commit; containing Git commit is the receipt publication revision.')
|
||||||
|
with (AUDIT / 'completion.json').open('x') as f:
|
||||||
|
json.dump(report, f, indent=2, sort_keys=True)
|
||||||
|
f.write('\n')
|
||||||
|
files = sorted(p for p in AUDIT.iterdir() if p.is_file())
|
||||||
|
files += sorted((ROOT / 'tools/branch-consolidation').glob('*.py'))
|
||||||
|
files += [ROOT / 'docs/30-reproducibility/main-restore.md', ROOT / 'docs/40-operations/branches-20261001.md']
|
||||||
|
with (AUDIT / 'SHA256SUMS').open('x') as f:
|
||||||
|
for path in files:
|
||||||
|
f.write(hashlib.sha256(path.read_bytes()).hexdigest() + ' ' + str(path.relative_to(ROOT)) + '\n')
|
||||||
|
print(json.dumps(report, indent=2))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user