Compare commits
34
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afde233203 | ||
|
|
cb0a58bc28 | ||
|
|
1a6cc43f2e | ||
|
|
fe4289ed81 | ||
|
|
679a9273c9 | ||
|
|
e80c6c04b5 | ||
|
|
e3d606c137 | ||
|
|
32ca5b34c5 | ||
|
|
3f02b41f76 | ||
|
|
bd3a97ec74 | ||
|
|
bc1299acf5 | ||
|
|
57131ec616 | ||
|
|
50b2dbeba4 | ||
|
|
92546af5b7 | ||
|
|
dd74f65c4b | ||
|
|
3379e283e4 | ||
|
|
74228df24b | ||
|
|
a44eca6414 | ||
|
|
de6e7ced86 | ||
|
|
990a951e36 | ||
|
|
d1ac5ba065 | ||
|
|
f135814b8b | ||
|
|
9dbfa36b86 | ||
|
|
206cdb9c80 | ||
|
|
bc0cf3a4a1 | ||
|
|
3f868b0e41 | ||
|
|
71719f9186 | ||
|
|
27dec31228 | ||
|
|
7fae76c723 | ||
|
|
5df2e56faa | ||
|
|
4eaadd1c53 | ||
|
|
d7c5fadd39 | ||
|
|
451e0732c3 | ||
|
|
7645c55149 |
@@ -1,6 +1,24 @@
|
||||
## 現在の対象(2026-10-15・P13-03正式完了)
|
||||
|
||||
P13-03「内容差異の記録」を正式完了。提出bd3a97e、原8条件を別Opusレビュー、実統合/最終e80c6c0で確認。全7施設/84利用枠/6分類、33拒否+代替正常系、固定原30/88・部分点なし。記録1件のみ、内容/素材/P13パッケージ/原子/ゲーム完成の加点0。P13-01/02とD08/D09・未制作内容は未完了。 正式13/着手24/予定51、30パッケージ/88成果。[全条件閉鎖証拠](execution/p13-03-resume-20261015/ACCEPTANCE_CLOSED_E80C6C0.json)。次に閉じる候補は実Opus判断でP23-03、通常OSが実ロック中のため重複起動せず、代替指示の同一P18-01保存互換修正を先行。原P18-01の全条件と未承認初期値を保持し、backendのみで完了扱いしない。[現在と次の受入条件](execution/p18-01-resume-20261015/CURRENT_ACCEPTANCE_AUDIT.json)。以下は各記録時点の履歴。
|
||||
|
||||
原記録単位P13-03を次に閉じる対象へ。既存7645c551と保持5files217833Bを再利用し、消滅済み旧pyc停止理由から通常repair3→実OpusRUN→Sol同一作業場所で仕上げ中。全7施設/84利用slot/6非施設分類/8受入条件を維持し、状態接続と未制作内容を分離。製品/値/素材/engine変更なし。旧500k/個別回数上限は撤廃済。正式validate/別Opusreview/最新main統合final/台帳が残り、正式0。 原30/88、正式12/着手25/予定51・部分点なし。[P13現条件](execution/p13-03-resume-20261015/CURRENT_CLOSURE_AUDIT.json)。
|
||||
|
||||
提出9a26f9aはRoot局所108/native319parse/A+B/semantic17+17/component45に加え、同版全177/20533/179owned終了が成立。Root全1349source/stage/default保全を照合し全4491filesのSHA一致コピーをレビュー用buildへ公開。新normalOS/画像判断/登録validate/全条件Opusreview/統合final未達、正式0。Mac解除は既存質問、native接続はSCStream-3811。 終了済357専用profileは内容/mtime/SHAを保持して圧縮し、圧縮後も全inventoryが元receiptと一致。[P23全177実照合](execution/p23-03/ROOT_9A26F9A_FULL177_VERIFIED.json)。以下は各記録時点の履歴。
|
||||
|
||||
## 現在の対象(2026-10-15・P23-03提出9a26f9a、全177実行中)
|
||||
|
||||
Sol修正27が9a26f9aを提出しclean。Root局所108試験/native import319parse/A+B/semantic17+17/component45checks成功、描画/Runtime/保存は19fc3f5と不変。同需要7153→2585。実Opus判断により同版全177を通常OSに先行して単一実行中。新OS/独立画像・全条件review/登録validate/統合/final未達、正式0。旧R13実画像12falseと19fc3f5 readiness指摘は履歴保全。 原30/88、正式12/着手25/予定51・部分点なし。全回帰中はP04-01の独立した読取監査のみ行い、追加engine/実装は起動しない。[現候補監査](execution/p23-03/P23_03_CURRENT_ACCEPTANCE_AUDIT_9A26F9A.json)、[P04読取再確認](execution/p04-01-current-recheck-20261015/recheck.json)。以下は各記録時点の履歴。
|
||||
|
||||
## 現在の対象(2026-10-15・P23-03提出19fc3f5)
|
||||
|
||||
追記(同日): 19fc3f5はRoot局所99/native import319parse/A+B/semantic17+17/component45checks成功。同需要7153→2585。独立Opus readinessが移動EV投影と交通帯の検証器過剰制約1件を指摘し、全177は未起動。実Opusが描画不変・raw authority付き例外/交通帯の完全隠れ拒否を判断。現在同一P23-03でSol修正27実行中、既存99試験と全negative保持。新OS/全177/独立画像・全条件review/統合/final未達、正式0。 詳細: [実独立レビュー](execution/p23-03/READINESS_19FC3F5_ACTUAL.json)、[最小修正の実判断](execution/p23-03/OPUS_REPAIR27_RUN_DIRECTION.json)。
|
||||
|
||||
原30パッケージ/88成果単位・部分点なし、正式12/着手25/予定51を維持。P23-03「生活の観察」の同一作業場所でAstra修正26が19fc3f50c7ef66223a86b438d4327c5b1b308ed1を正式提出しclean。Root局所99試験、Godot import/全319依存解析/配置A+B、独立semantic17+17 snapshots、別component45checks/0が合格。同需要の事前定義指標は7153→2585分。旧49/R13の独立画像12falseは保持し、新版へ受入転用しない。新通常OS・同版全177・独立画像/全7条件レビュー・最新main統合/final/台帳が未達のため正式加点0。Mac解除質問は既存のまま、Opusの実判断に従い独立読取レビュー→問題がなければ先行全177を実行する。証拠: [現候補の受入監査](execution/p23-03/P23_03_CURRENT_ACCEPTANCE_AUDIT_19FC3F5.json)、[native実検証](execution/p23-03/ROOT_19FC3F5_NATIVE_IMPACT.json)、[実Opus検証順序](execution/p23-03/OPUS_19FC3F5_VERIFICATION_ORDER.json)。以下の「現在」は各記録時点の履歴。
|
||||
|
||||
## 現在の対象(2026-10-13・現版監査更新)
|
||||
|
||||
2026-10-15 P08-03を正式完了。原30パッケージ/88成果単位、部分点なし。台帳は正式12/着手25/予定51。実行版d369d1c・main統合版027861b。Root局所153・Godot構文313・native196+96・全176回帰20,488厳密チェック、連続通常OS writer21643(58要求)/別PID reader32505(4要求)の全5条件、独立Opus 5.5レビュー、Runner統合・最終確認が全PASS。1,330ソース・必須入力・engine・markerの一致を非改変の適用性記録で確認し、原証跡の記録先訂正も開示済み。軽微2指摘は別記。閉鎖証拠はexecution/p08-03/ACCEPTANCE_CLOSED_D369_027861B.json。終了済み試験プロファイル2,817ファイルのSHA・パス・mtime保持圧縮で実空き約1.79GB回収。Windows同一配布版実機受入と延期済みP23保持ジェスチャーは全体残件として維持。次の1件は実Opus5.5判断71ce1c9eでP23-03「生活の観察」を選定し、現版の表示・実状態対応/同需要動線比較/依存の監査に着手。原spec8568457/base860136fでRunner登録、実Opus5.5開始判断7886b19cによりAstra1担当の初回実装を開始。Phase0の11ソースSHAと実spawn/build経路をRoot確認。部分提出03100be(A/Bfixture・意味検査12局所試験)を保持し、未完成collector/--verify-only未対応を登録検査で記録。実Opus判断で同task/worktreeの修正2回目を6.1-sol担当に切替え、実収集・正常保存再開の接続を優先。外部/仕様ブロッカーなし、上限null・timeout900維持、重複実装なし。P23-03正式加点0。 ユーザー指示で旧Windows7件/P05旧診断4件(34,103files/3.32GB)をDriveへ退避、全分割/再結合SHA照合後のみ原実体を除去、Drive同期実体0byte・一時ファイル0を確認。P23のSol追加成果は未完成のまま同worktree保持、現行受入証拠は不変。
|
||||
2026-10-15: Original30/88 no partialcredit; completed12/in_progress25/planned51. P08-03 closed (execution/p08-03/ACCEPTANCE_CLOSED_D369_027861B.json). 2026-10-15: submitted21b5d3a has traffic audit + calibrated mechanical/crop/direct-review binding. Root47local PASS; exact nativeimport/319parse/A+B PASS, independent17+17 semantics and48demand7153/2585 PASS. NormalOS writer35972 ran31 actual inputs withACKs; allrequest/rawSHA/PID verified, firstFRONT10rows mechanicalPASS. OS collector900 expired before request32; ownedengine ended cleanup/guarderrors0. Failedrun notaccepted, reader/save/full pending. OS-only3600 separation submitted56bf5a3 under existingcaps-removal scope; worker/native900 unchanged. Postrun independentOS semantics revealed real product lookup defect supply_logistics_bridge vs Runtime supply_logistics; same-task narrowfix instructed. Original7/6/30-88 no partialcredit, formal0. Global Windows physical same-build/deferredgestures/finishedassets/undefinedoriginalvalues remain open. Corrected336a8cd now submitted, Root48local PASS; corrected native/OS/fullreview pending, inactive evidence offload before heavy execution.
|
||||
|
||||
|
||||
原30パッケージ/88成果、部分点なし。現在は正式10/着手24/予定54。P24-03は正式完了、MP-01-r02承認用資料は正式統合済みだが原88へ加点しない。P13-03既存最終修正は全7施設/84スロット/6分類が保全済み。P13/RP13の限定追加修正と正式host自己試験は直接許可待ちで、重複実装や無断上限変更をしない。
|
||||
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"recorded_at": "2026-10-15T09:04:02.442313+00:00",
|
||||
"scope": "Read-only recheck of completed cloud offload; no repeated upload or additional deletion",
|
||||
"free_bytes_now": 5403648000,
|
||||
"cloud_folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"historical_verified_offload_totals": {
|
||||
"batch_count": 20,
|
||||
"original_files_retired": 77191,
|
||||
"logical_original_bytes_retired": 11680979893,
|
||||
"compressed_archive_bytes": 4211475754
|
||||
},
|
||||
"protected_pins": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated/index.json",
|
||||
"expected_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"actual_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17/index.json",
|
||||
"expected_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"actual_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01/runner-ended.json",
|
||||
"expected_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"actual_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/index.json",
|
||||
"expected_sha256": "c0cc9e939845b5f3ae8375d414327821eb75c3e5f5158ae32eb872eda1b99a03",
|
||||
"actual_sha256": "c0cc9e939845b5f3ae8375d414327821eb75c3e5f5158ae32eb872eda1b99a03",
|
||||
"unchanged": true
|
||||
}
|
||||
],
|
||||
"all_protected_pins_unchanged": true,
|
||||
"retirement_records": [
|
||||
{
|
||||
"name": "p05-acceptance-partial-r01",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "054c89a7f9377efa8c16c7ffbad966e2324992a2db5703bf83a482bafd9062e9"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r02",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "d24033fd716f3ca92ded0739a1d213d39c2fbc39dea4794a9225546f68234cf4"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r03",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "0cc68958e4327bd20fd2e0820bd9e807c9eef6d9671577681a44dc28a3f33f76"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r04",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "48ddfc677beab57a7429787b47f132ba37b06c1b38b1e6691dbea130d162eaed"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r02",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "f5e3e44dbbf01228071d364038bcbe6a76739a6a120270c293d617bbcc63ca96"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r03",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "84d67389005d99a0225e5c4190cb850bf583f6e4ce37bac726e75e85ba80110f"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1237-release-candidate-r03",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "5912fc509cde37df7ec5338a532d6a8bb8b04430bba1def24984ccce5d428122"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-command-ownership-release-candidate-r01-d2927ce3313f4093b996920e4352adb3",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "9f60bacba8509534d5572d911ee2f665685a344ec88ea010fc55012e355aa861"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-paid-role-release-candidate-r02-ac42a5936a284c71bf54528cb561f366",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "a1406783cb56e5a27edd409af07e3821e4baf2f054ad9844bb3859ecb260bdfb"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1295-paired-bgm-release-candidate-r01-9aa8b4af72f640ccb44d0f0d8e6ced5f",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "e3a9ff57a7db949e624537820e0aa0472afbbc9b6ba166f60e5f973de43fbbdc"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1297-tomari-release-candidate-r01-fe476971367d4110b563b987e0cf3d5e",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "cd443d4fec9dc766f70fcbf9d6ba465f0455e7e6fd516beb5bfe2185d4f61912"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "2ece60a385894f1adaee1743b6bfef994ef52c4099cb706a55cfc4706bb3e4b8"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-more-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "6e73168d3562d3802ce18a7bda94689ca6075530e52a653fbf6fdfccd72a7147"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-stages-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "69246e87c6bb170707b9333cfb97be10e52429be5dc8c95f6879e244a94a9136"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-native-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "7e54d7cc1e1f655efffd311a510df7814549c27373fda68fe22a2e96f1b5be09"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-os-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "af6ad959c065e8f79085221b0bd3773520f9fa02cee923d1ea03ca7356497362"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-a-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "6ac0e9fb3b7db25e9a9cb8965b0d6b1cfb7f63cc0cf50cbd985822726515ab93"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-b-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "4fa4277f7e7a643ae9612636137307cb1b6a3e0cd019bf8e1af584bb63894e14"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r12-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "3cbcae176dada2ae1055c497e2559b2eeffcf2985daca7a720ff963ca7b412f9"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p08-cold-pairs-20261015",
|
||||
"retirement_record_exists": true,
|
||||
"retirement_record_sha256": "9c0b87f8a23fe110d850aa7f552885b3e9ff50af0a3d58a93ea6dcd5e37d2c8e"
|
||||
}
|
||||
],
|
||||
"all_retirement_records_exist": true,
|
||||
"capacity_note": "Current free space is independently measured, not a claim that logical offloaded bytes equal net recovered physical space."
|
||||
}
|
||||
+708
@@ -0,0 +1,708 @@
|
||||
{
|
||||
"checked_at": "2026-10-15T09:04:02Z",
|
||||
"folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"scope": "Current connector metadata readback, first 100 direct children only. Complete payload/hash verification is retained in original per-batch transfer receipts; not repeated here.",
|
||||
"listed_file_count": 100,
|
||||
"files": [
|
||||
{
|
||||
"id": "1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF",
|
||||
"title": "p08-cold-pair-history-RESTORE.md",
|
||||
"size": "1356",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV",
|
||||
"title": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"size": "11229",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo",
|
||||
"title": "p08-cold-pair-history-MANIFEST.json",
|
||||
"size": "1568336",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "11ACexUbYQMcgXFYBvaPW11ZBI_S7hO5Y",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0023",
|
||||
"size": "5287438",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/11ACexUbYQMcgXFYBvaPW11ZBI_S7hO5Y/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1GLs0pU6wlmb9t3NIQN2p2NaLb4DnpZrs",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0022",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1GLs0pU6wlmb9t3NIQN2p2NaLb4DnpZrs/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "19ojIdDMJdJcajXoH5YJU9Ex2fa5jnuyN",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0021",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/19ojIdDMJdJcajXoH5YJU9Ex2fa5jnuyN/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1a8K9E0EcbD3plvlagWfALjxG_-JGKGJ1",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0020",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1a8K9E0EcbD3plvlagWfALjxG_-JGKGJ1/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1INjy4dTBZqOAagUaVK1OxpO10sbhZUMf",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0019",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1INjy4dTBZqOAagUaVK1OxpO10sbhZUMf/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1UDiChWWYUaqieuOviFl5b-xNsvrN5hiL",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0018",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1UDiChWWYUaqieuOviFl5b-xNsvrN5hiL/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1CXr8DtVRFktn6H3itZv_17_upmkeiEEW",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0017",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1CXr8DtVRFktn6H3itZv_17_upmkeiEEW/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1it3DlzMJuv9cz5YZUNhFabqhVFjtnHsJ",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0016",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1it3DlzMJuv9cz5YZUNhFabqhVFjtnHsJ/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1S3HWxauf2Pu05zB-SmO7RBkWvI6sqWYR",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0015",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1S3HWxauf2Pu05zB-SmO7RBkWvI6sqWYR/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "10XOUAX8wDb7zI280yPzikRzt5jlQGTcp",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0014",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/10XOUAX8wDb7zI280yPzikRzt5jlQGTcp/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1GtH7cJcbSX00PcZfBESRV3OWObehmBw1",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0013",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1GtH7cJcbSX00PcZfBESRV3OWObehmBw1/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "16HAVPdocOw4tab6d77MG3SR8HkyyVPO0",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0012",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/16HAVPdocOw4tab6d77MG3SR8HkyyVPO0/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1A7ZiEeh5s6AHbKe7JyfMKWSsoRwp95OM",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0011",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1A7ZiEeh5s6AHbKe7JyfMKWSsoRwp95OM/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1DGvzmO2CvvmIV6y_wMGVZZ9UzXiTv9Fc",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0010",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1DGvzmO2CvvmIV6y_wMGVZZ9UzXiTv9Fc/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1wiP3kiIrr2KGwwol1TyrpklbLXBK1PHN",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0009",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1wiP3kiIrr2KGwwol1TyrpklbLXBK1PHN/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1PZ8oKNsBe2o31T_T-cNPEBWBu5VSiF0t",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0008",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1PZ8oKNsBe2o31T_T-cNPEBWBu5VSiF0t/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1LgpzDHNiFcr5dqyZ-4jXNYlKWlMd2bSe",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0007",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1LgpzDHNiFcr5dqyZ-4jXNYlKWlMd2bSe/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1SycABWIO4t9Ym6zCpxebtr-mi1dL3l3H",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0006",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1SycABWIO4t9Ym6zCpxebtr-mi1dL3l3H/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1pOEPbfD36yh89FbrxM8vVkaX3i__6qIb",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0005",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1pOEPbfD36yh89FbrxM8vVkaX3i__6qIb/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1Jke8wBULOCk9HAc6qNEtKm3XuXl74U_W",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0004",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1Jke8wBULOCk9HAc6qNEtKm3XuXl74U_W/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1FmXRL2ew7opitFI92QoXL0U049GGleAG",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0003",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1FmXRL2ew7opitFI92QoXL0U049GGleAG/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1ayfrWSRgPGitssKs-Sdcl16YbrtdERSg",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0002",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1ayfrWSRgPGitssKs-Sdcl16YbrtdERSg/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1xGEM_9v188XG0_rWEbafgIpCTA_xLNk_",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0001",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1xGEM_9v188XG0_rWEbafgIpCTA_xLNk_/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1HIAyxBgJdMS3iN6RlU2k15gupRizV8m-",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0000",
|
||||
"size": "8388608",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1HIAyxBgJdMS3iN6RlU2k15gupRizV8m-/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1PfcBOLzMq7YGoXKpM--iqWucc2XyxDjB",
|
||||
"title": "p23-r12-closed-disk-admission-history.RESTORE.md",
|
||||
"size": "466",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1PfcBOLzMq7YGoXKpM--iqWucc2XyxDjB/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1g9dZf7ZxwEuYploKueCxZJn_UNIly8Jw",
|
||||
"title": "p23-r12-closed-disk-admission-history.PARTS.json",
|
||||
"size": "3983",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1g9dZf7ZxwEuYploKueCxZJn_UNIly8Jw/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1xQ6Uvn-sqXsEjkCFICfaZR4WuiQ5gvy1",
|
||||
"title": "p23-r12-closed-disk-admission-history.MANIFEST.json",
|
||||
"size": "2136491",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1xQ6Uvn-sqXsEjkCFICfaZR4WuiQ5gvy1/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1kur4otBbclA6CtqMQgAvHRQSNr-ZLjcv",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0006",
|
||||
"size": "30395616",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1kur4otBbclA6CtqMQgAvHRQSNr-ZLjcv/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1VnS41xLT8Eph_oqN9UCPFYdSfc5DLlMs",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0005",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1VnS41xLT8Eph_oqN9UCPFYdSfc5DLlMs/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1f8zVes_NKcOgpwFxZMXx9OFz4bLhmOoV",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0004",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1f8zVes_NKcOgpwFxZMXx9OFz4bLhmOoV/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "18HFeG-9gCkWghctUO39-WEaG6pbpUF8q",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0003",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/18HFeG-9gCkWghctUO39-WEaG6pbpUF8q/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1ugnePNzsggELIIKqqbjrJll5NQ-bS0Cw",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0002",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1ugnePNzsggELIIKqqbjrJll5NQ-bS0Cw/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1zm2CC2XGOmtIfYLUczFuPqdEqlZTCBYN",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0001",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1zm2CC2XGOmtIfYLUczFuPqdEqlZTCBYN/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "12y_VT0_yd1CAMBYbPrb8xdPatuVO3U67",
|
||||
"title": "p23-r12-closed-disk-admission-history.tar.gz.part-0000",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/12y_VT0_yd1CAMBYbPrb8xdPatuVO3U67/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1J1vYv3TPOaw5P2qKgeWIUGKj3kbOWqRn",
|
||||
"title": "p23-closed-execution-copies-r08-r11.RESTORE.md",
|
||||
"size": "438",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1J1vYv3TPOaw5P2qKgeWIUGKj3kbOWqRn/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1gzR_XCLyoP-siPuRphlIgDoQg5Nd2OWE",
|
||||
"title": "p23-closed-execution-copies-r08-r11.PARTS.json",
|
||||
"size": "8089",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1gzR_XCLyoP-siPuRphlIgDoQg5Nd2OWE/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1fMB0fEGHdqS17rm1Eanx3UobSGE_3yDA",
|
||||
"title": "p23-closed-execution-copies-r08-r11.MANIFEST.json",
|
||||
"size": "2526862",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1fMB0fEGHdqS17rm1Eanx3UobSGE_3yDA/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1TJIy7qF6vCyoQRweFqvHDd5fy0Sohd0B",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0013",
|
||||
"size": "16038229",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1TJIy7qF6vCyoQRweFqvHDd5fy0Sohd0B/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1UATcgUav-BlpR0AWU5CLLexJci2almqj",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0012",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1UATcgUav-BlpR0AWU5CLLexJci2almqj/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1IR-NoNO5O9ARZ3ifGoVoGQGKrFNaB4zS",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0011",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1IR-NoNO5O9ARZ3ifGoVoGQGKrFNaB4zS/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "14QsPBNG3ov4N57GUJCa1WHMcd9CbGXmX",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0010",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/14QsPBNG3ov4N57GUJCa1WHMcd9CbGXmX/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1yrVJQJMfh_B3U-gvwF2auKf5Ht-RsZm_",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0009",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1yrVJQJMfh_B3U-gvwF2auKf5Ht-RsZm_/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "13F6NnFpgNOScb_je74ZP2KNgJBmkyPKH",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0008",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/13F6NnFpgNOScb_je74ZP2KNgJBmkyPKH/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1-GLIyD-Bk26zgr3pg0u6ADxxhAZ6QZxM",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0007",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1-GLIyD-Bk26zgr3pg0u6ADxxhAZ6QZxM/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1Gccz3uTuNef0wlrc88ZVOTzO9dVkoPM4",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0006",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1Gccz3uTuNef0wlrc88ZVOTzO9dVkoPM4/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1cRc_b3WZMnnhYx4Tqeq6nGzIwtRPhL75",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0005",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1cRc_b3WZMnnhYx4Tqeq6nGzIwtRPhL75/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1K3Y-dbgTUDg60EMNGQscB56o6wbj6s4_",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0004",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1K3Y-dbgTUDg60EMNGQscB56o6wbj6s4_/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "17TpjEhGWUTgK0an-N4FEdmdETdzhay_6",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0003",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/17TpjEhGWUTgK0an-N4FEdmdETdzhay_6/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1sSU4KmK_ry6b5T7exjsUch-rqPSvby6o",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0002",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1sSU4KmK_ry6b5T7exjsUch-rqPSvby6o/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1yuh0eUWmnBCLPBbji9Vo_yNq2VYWbAK5",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0001",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1yuh0eUWmnBCLPBbji9Vo_yNq2VYWbAK5/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "131UBVUotpfxrF1Ye10OtBOTxjDMx68g9",
|
||||
"title": "p23-closed-execution-copies-r08-r11.tar.gz.part-0000",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/131UBVUotpfxrF1Ye10OtBOTxjDMx68g9/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1HFqcyEssfS-UUrcQ1Lk2k3DwHXZ4QjVG",
|
||||
"title": "p23-r11-b-closed-native-os.RESTORE.md",
|
||||
"size": "449",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1HFqcyEssfS-UUrcQ1Lk2k3DwHXZ4QjVG/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "150W-XtmWY0qh-qnNVZC3BDzMd0Ilg3ed",
|
||||
"title": "p23-r11-a-closed-native-os.RESTORE.md",
|
||||
"size": "460",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/150W-XtmWY0qh-qnNVZC3BDzMd0Ilg3ed/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "13U9vQ0fDYlojFBEe_jWeLHu16m7q_tZs",
|
||||
"title": "p23-r10-closed-os-streams.RESTORE.md",
|
||||
"size": "433",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/13U9vQ0fDYlojFBEe_jWeLHu16m7q_tZs/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1YkoXPDN597tffLxGPAoj_8cMzlc1E2l3",
|
||||
"title": "p23-r11-b-closed-native-os.manifest.json",
|
||||
"size": "772061",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1YkoXPDN597tffLxGPAoj_8cMzlc1E2l3/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "13tRNN1C1lhGJfEY9KooUwozUVC2bi3T6",
|
||||
"title": "p23-r11-b-closed-native-os.tar.gz",
|
||||
"size": "63837114",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/13tRNN1C1lhGJfEY9KooUwozUVC2bi3T6/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1bGPG4kKbjqBVj0wbiMW8xM600fwv6XaL",
|
||||
"title": "p23-r11-a-closed-native-os.manifest.json",
|
||||
"size": "995684",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1bGPG4kKbjqBVj0wbiMW8xM600fwv6XaL/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1k-zMuWHhyyJOIbp4h_69GRTXAjcXplDF",
|
||||
"title": "p23-r11-a-closed-native-os.tar.gz",
|
||||
"size": "64489580",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1k-zMuWHhyyJOIbp4h_69GRTXAjcXplDF/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1EHq6eDsWQbVuIRXTXFa6STlwjjKXbKl-",
|
||||
"title": "p23-r10-closed-os-streams.manifest.json",
|
||||
"size": "461319",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1EHq6eDsWQbVuIRXTXFa6STlwjjKXbKl-/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1kSecKHMC9WowsIMJKmQCgWRbt6MkZuIE",
|
||||
"title": "p23-r10-closed-os-streams.tar.gz",
|
||||
"size": "65722730",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1kSecKHMC9WowsIMJKmQCgWRbt6MkZuIE/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1IiPcDgDWW2CJpVJdu5lj096NSL6mR7tZ",
|
||||
"title": "p23-r10-closed-native-streams.RESTORE.md",
|
||||
"size": "549",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1IiPcDgDWW2CJpVJdu5lj096NSL6mR7tZ/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1jqquwBfWmdXy3K-qZRUp3XFFHjyH29_o",
|
||||
"title": "p23-r10-closed-native-streams.manifest.json",
|
||||
"size": "886140",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1jqquwBfWmdXy3K-qZRUp3XFFHjyH29_o/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1f9Ao2YulvmK3Cg-uup3I0xzKGwSk409j",
|
||||
"title": "p23-r10-closed-native-streams.tar.gz",
|
||||
"size": "7532961",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1f9Ao2YulvmK3Cg-uup3I0xzKGwSk409j/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "18gO_JWAAbX9Jru1aF2EKw7jXPqnBnMa-",
|
||||
"title": "p23-closed-more-20261015.RESTORE.md",
|
||||
"size": "546",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/18gO_JWAAbX9Jru1aF2EKw7jXPqnBnMa-/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1iG_Lj1OSMgQW3KPuW1mWN5AdD5nAusLB",
|
||||
"title": "p23-closed-more-20261015.CLOUD_PARTS.json",
|
||||
"size": "3471",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1iG_Lj1OSMgQW3KPuW1mWN5AdD5nAusLB/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1PDHUiXEm7OsR9PbIv77YjDWKj_p1axIm",
|
||||
"title": "p23-closed-more-20261015.MANIFEST.json",
|
||||
"size": "1088622",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1PDHUiXEm7OsR9PbIv77YjDWKj_p1axIm/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1uyeHQO9q4WNI6XwGkwLlMOlOXT4n8aLG",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part011",
|
||||
"size": "24157286",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1uyeHQO9q4WNI6XwGkwLlMOlOXT4n8aLG/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "17yVsK8tb82YipJiN94K6EBzADnk45JUi",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part010",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/17yVsK8tb82YipJiN94K6EBzADnk45JUi/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1m4C8Uz9YfYTLuheiqENFd5KQHiD92og9",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part009",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1m4C8Uz9YfYTLuheiqENFd5KQHiD92og9/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1o_waFRP-NunkjF2S2WnBP3c-7xdzRuid",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part008",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1o_waFRP-NunkjF2S2WnBP3c-7xdzRuid/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1AOcQmnoCQCkucUvtn6EkGovDgaf5FXQ0",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part007",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1AOcQmnoCQCkucUvtn6EkGovDgaf5FXQ0/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1yZheCWjSca_gR7vWZEiRXn89w9D1UaX3",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part006",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1yZheCWjSca_gR7vWZEiRXn89w9D1UaX3/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1H867pyUvipR7pD0a0jTZqDNLcYp-HDFF",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part005",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1H867pyUvipR7pD0a0jTZqDNLcYp-HDFF/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "12342ccdxEfUx8sYReHik8kqJrzwHUW53",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part004",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/12342ccdxEfUx8sYReHik8kqJrzwHUW53/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1-t_BlRxF_jOqEVFr1FpLX1csoXuC1F4W",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part003",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1-t_BlRxF_jOqEVFr1FpLX1csoXuC1F4W/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1a58Whck6TpFoPdnPm2AghYl62OV7csnL",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part002",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1a58Whck6TpFoPdnPm2AghYl62OV7csnL/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1hi90373mxxqp0yYpRs9G_u9Mq9piHGAU",
|
||||
"title": "p23-closed-api-r69-r70-native-r09-os-r08.tar.gz.part001",
|
||||
"size": "33554432",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1hi90373mxxqp0yYpRs9G_u9Mq9piHGAU/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1aMi_UCFwjKxs6sRQwwVONfGxZiNibyiC",
|
||||
"title": "p23-closed-native-streams-r05-r08.RESTORE.md",
|
||||
"size": "1013",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1aMi_UCFwjKxs6sRQwwVONfGxZiNibyiC/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K",
|
||||
"title": "p23-closed-native-streams-r05-r08.manifest.json",
|
||||
"size": "3450515",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1RID5ModFGinXTSH-2XQaLWy2eSZFs71T",
|
||||
"title": "p23-closed-native-streams-r05-r08.tar.gz",
|
||||
"size": "30061832",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1xG0hS49uWH2xgRMvCqvZ-GyvItxYN6LN",
|
||||
"title": "OFFLOAD_INDEX.json",
|
||||
"size": "32995",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1xG0hS49uWH2xgRMvCqvZ-GyvItxYN6LN/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1D9pBPAMJBG7q1nx3g_d4ufED80d-97th",
|
||||
"title": "RESTORE.md",
|
||||
"size": "2150",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1D9pBPAMJBG7q1nx3g_d4ufED80d-97th/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1q0dSu34RryVYcAqKuOj1p-SpL6llrwsT",
|
||||
"title": "p05-acceptance-partial-r04.manifest.json",
|
||||
"size": "450442",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1q0dSu34RryVYcAqKuOj1p-SpL6llrwsT/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1k5jQjc-bxf8S4iyMZlfjQrjnywihy9Wi",
|
||||
"title": "p05-acceptance-partial-r04.tar.gz.part-0004",
|
||||
"size": "66750974",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1k5jQjc-bxf8S4iyMZlfjQrjnywihy9Wi/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1PNpkaiOuBtDVoisSS94u4wunChdaLkk8",
|
||||
"title": "p05-acceptance-partial-r04.tar.gz.part-0003",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1PNpkaiOuBtDVoisSS94u4wunChdaLkk8/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1YJkkF3Utz1ujENKwCNtwO1jlHNZcwQFQ",
|
||||
"title": "p05-acceptance-partial-r04.tar.gz.part-0002",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1YJkkF3Utz1ujENKwCNtwO1jlHNZcwQFQ/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1L6Sqw9qt41iSADceAqur4X9HPyi_1-fg",
|
||||
"title": "p05-acceptance-partial-r04.tar.gz.part-0001",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1L6Sqw9qt41iSADceAqur4X9HPyi_1-fg/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1SlBu1ioyahw4KHbp-4iWNCV51b8Q-FaM",
|
||||
"title": "p05-acceptance-partial-r04.tar.gz.part-0000",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1SlBu1ioyahw4KHbp-4iWNCV51b8Q-FaM/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "159rxXleYb0ihrl9r54ki8SXhKA_fgGWC",
|
||||
"title": "p05-acceptance-partial-r03.manifest.json",
|
||||
"size": "2521584",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/159rxXleYb0ihrl9r54ki8SXhKA_fgGWC/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1kJS7wrimiVQjh0x06esJS0LqG5rpFSeV",
|
||||
"title": "p05-acceptance-partial-r03.tar.gz.part-0004",
|
||||
"size": "62960058",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1kJS7wrimiVQjh0x06esJS0LqG5rpFSeV/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "17fuAGV3HpCehMRSR2eqxty3yUkBpAe8U",
|
||||
"title": "p05-acceptance-partial-r03.tar.gz.part-0003",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/17fuAGV3HpCehMRSR2eqxty3yUkBpAe8U/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1UrnzT-1OKFDa1dK8NlFD3tWTQjr8VNuC",
|
||||
"title": "p05-acceptance-partial-r03.tar.gz.part-0002",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1UrnzT-1OKFDa1dK8NlFD3tWTQjr8VNuC/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1gI2g_HDluW2KlQOfDWSPSW-0_Gue8gep",
|
||||
"title": "p05-acceptance-partial-r03.tar.gz.part-0001",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1gI2g_HDluW2KlQOfDWSPSW-0_Gue8gep/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1y7qqmPqQtgKruKlduF2DjCIaITLHnjQJ",
|
||||
"title": "p05-acceptance-partial-r03.tar.gz.part-0000",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1y7qqmPqQtgKruKlduF2DjCIaITLHnjQJ/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1437hqI_1qKHQIWn7qs9PdUaUXnwee4ZU",
|
||||
"title": "p05-acceptance-partial-r02.manifest.json",
|
||||
"size": "2499292",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1437hqI_1qKHQIWn7qs9PdUaUXnwee4ZU/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1QMalGxgyRK0-e8TDe1QrbhUdLFeSgpPk",
|
||||
"title": "p05-acceptance-partial-r02.tar.gz.part-0004",
|
||||
"size": "61524572",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1QMalGxgyRK0-e8TDe1QrbhUdLFeSgpPk/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1znVnhyxeH4wOJnKZ46j-nJoiS5h-Uenz",
|
||||
"title": "p05-acceptance-partial-r02.tar.gz.part-0003",
|
||||
"size": "67108864",
|
||||
"shared": false,
|
||||
"url": "https://drive.google.com/file/d/1znVnhyxeH4wOJnKZ46j-nJoiS5h-Uenz/view?usp=drivesdk"
|
||||
}
|
||||
]
|
||||
}
|
||||
+162
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"recorded_at": "2026-10-15T04:47:49.858785+00:00",
|
||||
"cloud_folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"batch_count": 18,
|
||||
"original_files_retired": 65148,
|
||||
"logical_original_bytes_retired": 7107793864,
|
||||
"compressed_archive_bytes": 3781528124,
|
||||
"extra_redundant_mirror_files_removed": 2622,
|
||||
"extra_mirror_bytes_excluded_from_total": true,
|
||||
"free_bytes_now": 1531011072,
|
||||
"capacity_note": "Cumulative logical retirement is not net free-space delta; native proof collection and OS activity ran during offload. R12 ended OS disk admission before B reader, no acceptance credit.",
|
||||
"protected_current_P08_pins": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated/index.json",
|
||||
"expected_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"actual_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b"
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17/index.json",
|
||||
"expected_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"actual_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1"
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01/runner-ended.json",
|
||||
"expected_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"actual_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264"
|
||||
}
|
||||
],
|
||||
"protected_current_R12_present": true,
|
||||
"drive_sync_cache": [],
|
||||
"batches": [
|
||||
{
|
||||
"name": "p05-acceptance-partial-r01",
|
||||
"files": 8629,
|
||||
"logical_bytes": 361987784,
|
||||
"archive_bytes": 329214394,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r01.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r02",
|
||||
"files": 8675,
|
||||
"logical_bytes": 364158371,
|
||||
"archive_bytes": 329960028,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r02.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r03",
|
||||
"files": 8743,
|
||||
"logical_bytes": 368221923,
|
||||
"archive_bytes": 331395514,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r04",
|
||||
"files": 1527,
|
||||
"logical_bytes": 352135723,
|
||||
"archive_bytes": 335186430,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r04.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r02",
|
||||
"files": 887,
|
||||
"logical_bytes": 88806618,
|
||||
"archive_bytes": 85243401,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current-release-candidate-r02.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r03",
|
||||
"files": 903,
|
||||
"logical_bytes": 317724191,
|
||||
"archive_bytes": 242293517,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current-release-candidate-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1237-release-candidate-r03",
|
||||
"files": 909,
|
||||
"logical_bytes": 276022697,
|
||||
"archive_bytes": 200327853,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1237-release-candidate-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-command-ownership-release-candidate-r01-d2927ce3313f4093b996920e4352adb3",
|
||||
"files": 953,
|
||||
"logical_bytes": 276715071,
|
||||
"archive_bytes": 200582260,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1287-command-ownership-release-candidate-r01-d2927ce3313f4093b996920e4352adb3.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-paid-role-release-candidate-r02-ac42a5936a284c71bf54528cb561f366",
|
||||
"files": 950,
|
||||
"logical_bytes": 276687260,
|
||||
"archive_bytes": 200576863,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1287-paid-role-release-candidate-r02-ac42a5936a284c71bf54528cb561f366.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1295-paired-bgm-release-candidate-r01-9aa8b4af72f640ccb44d0f0d8e6ced5f",
|
||||
"files": 962,
|
||||
"logical_bytes": 320543454,
|
||||
"archive_bytes": 241574909,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1295-paired-bgm-release-candidate-r01-9aa8b4af72f640ccb44d0f0d8e6ced5f.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1297-tomari-release-candidate-r01-fe476971367d4110b563b987e0cf3d5e",
|
||||
"files": 965,
|
||||
"logical_bytes": 320572956,
|
||||
"archive_bytes": 241581287,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1297-tomari-release-candidate-r01-fe476971367d4110b563b987e0cf3d5e.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-20261015",
|
||||
"files": 10456,
|
||||
"logical_bytes": 887222239,
|
||||
"archive_bytes": 30061832,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-more-20261015",
|
||||
"files": 3227,
|
||||
"logical_bytes": 1035272086,
|
||||
"archive_bytes": 359701606,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-closed-more-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-stages-20261015",
|
||||
"files": 8060,
|
||||
"logical_bytes": 504871487,
|
||||
"archive_bytes": 452245845,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-closed-stages-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-native-20261015",
|
||||
"files": 2622,
|
||||
"logical_bytes": 222061822,
|
||||
"archive_bytes": 7532961,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r10-native-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-os-20261015",
|
||||
"files": 1395,
|
||||
"logical_bytes": 364344399,
|
||||
"archive_bytes": 65722730,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r10-os-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-a-20261015",
|
||||
"files": 2984,
|
||||
"logical_bytes": 388939316,
|
||||
"archive_bytes": 64489580,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r11-a-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-b-20261015",
|
||||
"files": 2301,
|
||||
"logical_bytes": 381506467,
|
||||
"archive_bytes": 63837114,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r11-b-20261015/RETIREMENT.json"
|
||||
}
|
||||
],
|
||||
"restore_policy": "Ordered parts, archive SHA256, original relative paths, member SHA256/mode/mtime_ns. Small restored ledger-referenced records remain local.",
|
||||
"formal_game_credit": 0,
|
||||
"drive_sync_cache_observation": "Exact archive folder was not present in local My Drive listing at verification time; no content reads/download materialization requested. This is a bounded path check, not an internal Drive cache-size audit."
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
# 証跡のGoogleドライブ退避結果
|
||||
|
||||
2026-10-15T04:47:49.858785+00:00時点。
|
||||
|
||||
- 退避した元ファイル: 65,148件 / 7,107,793,864バイト(約7.11GB)
|
||||
- 圧縮アーカイブ: 3,781,528,124バイト
|
||||
- 別途整理した重複コピー: 2,622件(上の容量に加算しない)
|
||||
- 現在の空き: 1,531,695,104バイト(約1.53GB)
|
||||
- 保護したP08受入証拠3件: SHA-256一致
|
||||
- 現行R12: ローカル保持、B読込未実行、未受入
|
||||
- 内容保持・クラウド読戻し・一覧/復元手順を確認してから対応する原本だけ削除
|
||||
|
||||
[Googleドライブ保存先](https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK)
|
||||
|
||||
途中に新しい検証データを生成したため、累積退避量と空きの純増を区別します。元データは各退避台帳の順序・SHA・相対配置で復元できます。詳細はFINAL_OFFLOAD_REPORT.jsonと各退避台帳に保存しています。
|
||||
+212
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"recorded_at": "2026-10-15T06:44:10.411739+00:00",
|
||||
"cloud_folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"batch_count": 20,
|
||||
"original_files_retired": 77191,
|
||||
"logical_original_bytes_retired": 11680979893,
|
||||
"compressed_archive_bytes": 4211475754,
|
||||
"extra_redundant_mirror_files_removed": 2622,
|
||||
"extra_mirror_bytes_excluded_from_total": true,
|
||||
"batches": [
|
||||
{
|
||||
"name": "p05-acceptance-partial-r01",
|
||||
"files": 8629,
|
||||
"logical_bytes": 361987784,
|
||||
"archive_bytes": 329214394,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r01.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r02",
|
||||
"files": 8675,
|
||||
"logical_bytes": 364158371,
|
||||
"archive_bytes": 329960028,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r02.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r03",
|
||||
"files": 8743,
|
||||
"logical_bytes": 368221923,
|
||||
"archive_bytes": 331395514,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "p05-acceptance-partial-r04",
|
||||
"files": 1527,
|
||||
"logical_bytes": 352135723,
|
||||
"archive_bytes": 335186430,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/p05-acceptance-partial-r04.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r02",
|
||||
"files": 887,
|
||||
"logical_bytes": 88806618,
|
||||
"archive_bytes": 85243401,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current-release-candidate-r02.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current-release-candidate-r03",
|
||||
"files": 903,
|
||||
"logical_bytes": 317724191,
|
||||
"archive_bytes": 242293517,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current-release-candidate-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1237-release-candidate-r03",
|
||||
"files": 909,
|
||||
"logical_bytes": 276022697,
|
||||
"archive_bytes": 200327853,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1237-release-candidate-r03.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-command-ownership-release-candidate-r01-d2927ce3313f4093b996920e4352adb3",
|
||||
"files": 953,
|
||||
"logical_bytes": 276715071,
|
||||
"archive_bytes": 200582260,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1287-command-ownership-release-candidate-r01-d2927ce3313f4093b996920e4352adb3.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1287-paid-role-release-candidate-r02-ac42a5936a284c71bf54528cb561f366",
|
||||
"files": 950,
|
||||
"logical_bytes": 276687260,
|
||||
"archive_bytes": 200576863,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1287-paid-role-release-candidate-r02-ac42a5936a284c71bf54528cb561f366.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1295-paired-bgm-release-candidate-r01-9aa8b4af72f640ccb44d0f0d8e6ced5f",
|
||||
"files": 962,
|
||||
"logical_bytes": 320543454,
|
||||
"archive_bytes": 241574909,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1295-paired-bgm-release-candidate-r01-9aa8b4af72f640ccb44d0f0d8e6ced5f.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "windows-current1297-tomari-release-candidate-r01-fe476971367d4110b563b987e0cf3d5e",
|
||||
"files": 965,
|
||||
"logical_bytes": 320572956,
|
||||
"archive_bytes": 241581287,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-20261015/windows-current1297-tomari-release-candidate-r01-fe476971367d4110b563b987e0cf3d5e.retired.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-20261015",
|
||||
"files": 10456,
|
||||
"logical_bytes": 887222239,
|
||||
"archive_bytes": 30061832,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-more-20261015",
|
||||
"files": 3227,
|
||||
"logical_bytes": 1035272086,
|
||||
"archive_bytes": 359701606,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-closed-more-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-closed-stages-20261015",
|
||||
"files": 8060,
|
||||
"logical_bytes": 504871487,
|
||||
"archive_bytes": 452245845,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-closed-stages-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-native-20261015",
|
||||
"files": 2622,
|
||||
"logical_bytes": 222061822,
|
||||
"archive_bytes": 7532961,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r10-native-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r10-os-20261015",
|
||||
"files": 1395,
|
||||
"logical_bytes": 364344399,
|
||||
"archive_bytes": 65722730,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r10-os-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-a-20261015",
|
||||
"files": 2984,
|
||||
"logical_bytes": 388939316,
|
||||
"archive_bytes": 64489580,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r11-a-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r11-b-20261015",
|
||||
"files": 2301,
|
||||
"logical_bytes": 381506467,
|
||||
"archive_bytes": 63837114,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r11-b-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p23-r12-20261015",
|
||||
"files": 6489,
|
||||
"logical_bytes": 817797225,
|
||||
"archive_bytes": 231722208,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-r12-20261015/RETIREMENT.json"
|
||||
},
|
||||
{
|
||||
"name": "drive-offload-p08-cold-pairs-20261015",
|
||||
"files": 5554,
|
||||
"logical_bytes": 3755388804,
|
||||
"archive_bytes": 198225422,
|
||||
"record": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-p08-cold-pairs-20261015/RETIREMENT.json"
|
||||
}
|
||||
],
|
||||
"free_bytes_now": 2874818560,
|
||||
"capacity_note": "Logical original retirement and per-file allocation are not net volume recovery; APFS shared blocks and concurrent OS changes affect df. Current free is independently measured.",
|
||||
"protected_pins": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated/index.json",
|
||||
"sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17/index.json",
|
||||
"sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01/runner-ended.json",
|
||||
"sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/index.json",
|
||||
"sha256": "c0cc9e939845b5f3ae8375d414327821eb75c3e5f5158ae32eb872eda1b99a03",
|
||||
"unchanged": true
|
||||
}
|
||||
],
|
||||
"worker_sha": "49445d4a4d38281eb29dab1c1f85dd2b8ffbed11",
|
||||
"worker_clean": true,
|
||||
"compression": [
|
||||
{
|
||||
"name": "capacity-recovery-r01",
|
||||
"candidate_files": 2675,
|
||||
"compressed_files": 2645,
|
||||
"errors": [],
|
||||
"logical_bytes_preserved": 1840775652,
|
||||
"allocated_before_sum": 1845633024,
|
||||
"allocated_after_sum": 150609920,
|
||||
"free_before_bytes": 235634688,
|
||||
"free_after_bytes": 1934417920,
|
||||
"elapsed_seconds": 93.83740019798279,
|
||||
"method": "Transparent APFS compression only for phase-bound closed owned profiles; identical paths/bytes/mtime; SHA checked original/compressed/original-before-replacement/final; no user save, source, active file or raw proof deletion.",
|
||||
"measurement_limit": "Net volume free change is measured; per-file block sums are not APFS-exclusive allocation."
|
||||
},
|
||||
{
|
||||
"name": "capacity-recovery-old-fd643",
|
||||
"candidate_files": 2865,
|
||||
"compressed_files": 2817,
|
||||
"errors": [],
|
||||
"logical_bytes_preserved": 1938864035,
|
||||
"allocated_before_sum": 1944100864,
|
||||
"allocated_after_sum": 156975104,
|
||||
"free_before_bytes": 1930104832,
|
||||
"free_after_bytes": 3632488448,
|
||||
"elapsed_seconds": 80.38100981712341,
|
||||
"method": "Transparent APFS compression only for phase-bound closed owned profiles; identical paths/bytes/mtime; SHA checked original/compressed/original-before-replacement/final; no user save, source, active file or raw proof deletion.",
|
||||
"measurement_limit": "Net volume free change is measured; per-file block sums are not APFS-exclusive allocation."
|
||||
}
|
||||
],
|
||||
"all_cloud_parts_actual_readback_verified": true,
|
||||
"cloud_sharing_changed": false,
|
||||
"formal_game_credit": 0,
|
||||
"next_test_reserve_requirement": "Include private-profile generation (at least actual previous ~1.94GB) as well as output, review/temp copies and OS headroom; no duplicate native collection or failed-suite splicing."
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
# 証跡のクラウド退避・容量結果(更新版)
|
||||
|
||||
記録時刻: 2026-10-15T06:44:10.411739+00:00
|
||||
退避先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
- 退避済み原本: 77,191ファイル、11,680,979,893バイト(約11.68GB)。
|
||||
- Drive上の圧縮アーカイブ: 4,211,475,754バイト(約4.21GB)、20バッチ。
|
||||
- 重複ミラー2,622ファイルの整理は原本容量に二重加算していません。
|
||||
- 実測した現在の空き: 2,874,818,560バイト(約2.87GB、2.68GiB)。論理退避量を空きの増分とは扱いません。
|
||||
- 今回追加: R12旧履歴6,489ファイルと、P08旧版pair 5,554ファイル。原本はDriveからの実ダウンロードと全アーカイブ内容照合後に限定削除しました。復元用manifest、分割順、SHA、手順をローカルとDriveに保持しています。
|
||||
- 最新P23 R13とP08現行受入証跡の固定SHAは一致。実装作業場所は49445d4のままclean。ソース、製品素材、ユーザー保存は対象外です。
|
||||
|
||||
容量の再消費を調べると、全回帰の専用テストプロファイルが成果物フォルダの外で約1.84GBを生成していました。最初の見積りはこの生成量を含めていませんでした。終了済みの今回・旧回帰プロファイルを、パス・内容・更新日時を保つ透明圧縮で論理約3.78GB、割当合計約308MBへ縮小しました。全変更ファイルは処理内で元・圧縮後・置換直前・最終SHAを照合済み、両処理エラー0です。全回帰は容量による中断のままであり、受入完了は加算しません。
|
||||
|
||||
今後の全回帰前には専用プロファイル生成量(過去実測約1.94GB)、成果物、レビュー複製、一時領域、OSの余裕を含めて見積ります。旧版証跡は各バッチのRESTORE.mdとCLOUD_PARTS.jsonから復元できます。前版の報告・元の終了記録は改変せず残しています。
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
保管先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
`OFFLOAD_INDEX.json` は11アーカイブの一覧、43分割のDrive ID・URL・順序・SHA256と、元の場所を記録しています。各 `.manifest.json` に全メンバーのSHA256・型・モード・正確な更新時刻があります。各元フォルダの `CLOUD_ARCHIVE.json` からも参照できます。
|
||||
退避全体は20バッチです。`FINAL_OFFLOAD_REPORT_R02.json` の `batches` に全20件の退避記録の場所があります。`OFFLOAD_INDEX.json` は初回11アーカイブ・43分割のDrive ID・URL・順序・SHA256と元の場所を記録しています。追加9バッチは各記録と同じディレクトリの `RESTORE.md`、`CLOUD_PARTS.json`、`MANIFEST.json` を使います。各 `.manifest.json` に全メンバーのSHA256・型・モード・正確な更新時刻があります。各元フォルダの `CLOUD_ARCHIVE.json` からも参照できます。
|
||||
|
||||
1. 必要な候補版だけ、目録の `cloud_parts` をすべてダウンロードする。
|
||||
2. 各分割のバイト数とSHA256を照合する。
|
||||
|
||||
+233
@@ -0,0 +1,233 @@
|
||||
{
|
||||
"source_archive_verification": {
|
||||
"actual_cloud_readback": true,
|
||||
"whole_archive_sha256": "adf793994e1d0079b226f882d40fd9dc0d8282da42d7b04d24195e2b3a84c151",
|
||||
"bytes": 437422438,
|
||||
"all_unique_payloads_verified": 10804,
|
||||
"original_file_mappings_verified": 47574,
|
||||
"manifest_identical": true,
|
||||
"formal_credit": 0
|
||||
},
|
||||
"source_cloud_parts": [
|
||||
{
|
||||
"order": 0,
|
||||
"offset": 0,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0000.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "88c14f4fc36278bdbe953e60a4a9a0c03312c4a90fc4a18b6cdbb44af8c811c8",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1zDFSBgYRTnNh633ee8yzsjtq7dQeHoWp",
|
||||
"title": "review-material-r04.tar.gz.part-0000",
|
||||
"file_name": "review-material-r04.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/1zDFSBgYRTnNh633ee8yzsjtq7dQeHoWp/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1zDFSBgYRTnNh633ee8yzsjtq7dQeHoWp",
|
||||
"title": "review-material-r04.tar.gz.part-0000",
|
||||
"file_name": "review-material-r04.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/1zDFSBgYRTnNh633ee8yzsjtq7dQeHoWp/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"offset": 67108864,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0001.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "2c05a971176d0b5e9f3c288f69ce5d4ec9dc6c8623d6c52edbd709aa5f4b9b0c",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1adCPiKM7VECXZxCX1AHdBZxUSKXIyAiC",
|
||||
"title": "review-material-r04.tar.gz.part-0001",
|
||||
"file_name": "review-material-r04.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1adCPiKM7VECXZxCX1AHdBZxUSKXIyAiC/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1adCPiKM7VECXZxCX1AHdBZxUSKXIyAiC",
|
||||
"title": "review-material-r04.tar.gz.part-0001",
|
||||
"file_name": "review-material-r04.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1adCPiKM7VECXZxCX1AHdBZxUSKXIyAiC/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"offset": 134217728,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0002.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "608f89ef345bee96cd275ae67ee6b0636fc9165e7a3ef539b1e48d1b973f27ac",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "15_UXbGuW50NkTf1RgbkBSpUodPmXfcY9",
|
||||
"title": "review-material-r04.tar.gz.part-0002",
|
||||
"file_name": "review-material-r04.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/15_UXbGuW50NkTf1RgbkBSpUodPmXfcY9/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "15_UXbGuW50NkTf1RgbkBSpUodPmXfcY9",
|
||||
"title": "review-material-r04.tar.gz.part-0002",
|
||||
"file_name": "review-material-r04.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/15_UXbGuW50NkTf1RgbkBSpUodPmXfcY9/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"offset": 201326592,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0003.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "a6e73590c86b6282ef63fd88863de357911434998f389229cdb2ac1f470a53bc",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1ki8e92PBUZeOavzsuvfQU4zoMIvwQdyA",
|
||||
"title": "review-material-r04.tar.gz.part-0003",
|
||||
"file_name": "review-material-r04.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1ki8e92PBUZeOavzsuvfQU4zoMIvwQdyA/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1ki8e92PBUZeOavzsuvfQU4zoMIvwQdyA",
|
||||
"title": "review-material-r04.tar.gz.part-0003",
|
||||
"file_name": "review-material-r04.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1ki8e92PBUZeOavzsuvfQU4zoMIvwQdyA/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 4,
|
||||
"offset": 268435456,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0004.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "a50e262a1ec412b97f1185b469d436f4fcd1fc020cbbe972209a6f609448bb13",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1I8To-mkJC_kmQZyYiRbrCipaeF4cidcl",
|
||||
"title": "review-material-r04.tar.gz.part-0004",
|
||||
"file_name": "review-material-r04.tar.gz.part-0004",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1I8To-mkJC_kmQZyYiRbrCipaeF4cidcl/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1I8To-mkJC_kmQZyYiRbrCipaeF4cidcl",
|
||||
"title": "review-material-r04.tar.gz.part-0004",
|
||||
"file_name": "review-material-r04.tar.gz.part-0004",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1I8To-mkJC_kmQZyYiRbrCipaeF4cidcl/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 5,
|
||||
"offset": 335544320,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0005.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "67ba53bbd2dc2416661e888758419d9465d3a5dd5f8ffc191f788493e013f305",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1ILqHWPtXVjZ4nvgkaNBgjw4TrEdIuXpZ",
|
||||
"title": "review-material-r04.tar.gz.part-0005",
|
||||
"file_name": "review-material-r04.tar.gz.part-0005",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1ILqHWPtXVjZ4nvgkaNBgjw4TrEdIuXpZ/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1ILqHWPtXVjZ4nvgkaNBgjw4TrEdIuXpZ",
|
||||
"title": "review-material-r04.tar.gz.part-0005",
|
||||
"file_name": "review-material-r04.tar.gz.part-0005",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1ILqHWPtXVjZ4nvgkaNBgjw4TrEdIuXpZ/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 6,
|
||||
"offset": 402653184,
|
||||
"path": "/private/tmp/tree-offload-review-r04/upload-0006.bin",
|
||||
"bytes": 34769254,
|
||||
"sha256": "a88d6f246cef9c98686f94cf1167b4a6cb980610d44043e404f7515575adb202",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1K1xXtKe-PNuVtpqgjltLXMuJJVlOL-zO",
|
||||
"title": "review-material-r04.tar.gz.part-0006",
|
||||
"file_name": "review-material-r04.tar.gz.part-0006",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1K1xXtKe-PNuVtpqgjltLXMuJJVlOL-zO/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1K1xXtKe-PNuVtpqgjltLXMuJJVlOL-zO",
|
||||
"title": "review-material-r04.tar.gz.part-0006",
|
||||
"file_name": "review-material-r04.tar.gz.part-0006",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1K1xXtKe-PNuVtpqgjltLXMuJJVlOL-zO/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
],
|
||||
"source_cloud_manifest": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "19esHPY2m15iQD8A7dX-0TxXdbJoLShOA",
|
||||
"title": "review-material-r04-MANIFEST.json",
|
||||
"file_name": "review-material-r04-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/19esHPY2m15iQD8A7dX-0TxXdbJoLShOA/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "19esHPY2m15iQD8A7dX-0TxXdbJoLShOA",
|
||||
"title": "review-material-r04-MANIFEST.json",
|
||||
"file_name": "review-material-r04-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/19esHPY2m15iQD8A7dX-0TxXdbJoLShOA/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"new_file_mappings": 18305,
|
||||
"every_new_file_hash_and_size_in_verified_archive": true,
|
||||
"new_payload_upload_required": false,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"files": 18305,
|
||||
"missing_files": 0,
|
||||
"missing": [],
|
||||
"all_objects_available_in_verified_r04_cloud": true
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"scripts": [
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-canonical-r05.py",
|
||||
"preserved_script": "tree-offload-canonical-r05.py",
|
||||
"sha256": "8979a7b6eff80535d3657b5116f4e223a24a584bf3990dd7594edc9e00ea8339"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-canonical-r05-prepare.py",
|
||||
"preserved_script": "tree-offload-canonical-r05-prepare.py",
|
||||
"sha256": "2efadfe4b8d4fd272003f69db9d39ae75d365a3de086d7ec9b78e1b3300d5ee4"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-canonical-r05-source-recheck.py",
|
||||
"preserved_script": "tree-offload-canonical-r05-source-recheck.py",
|
||||
"sha256": "3b96d1392a2db2f0b9692e9fc30663f2aa8116a14ef13fa21aff9d439ebde730"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-canonical-r05-retire.py",
|
||||
"preserved_script": "tree-offload-canonical-r05-retire.py",
|
||||
"sha256": "c8eb635295056793c9e54bbe088890b02704a6e94e86edd8b74f454a7fcb8332"
|
||||
}
|
||||
],
|
||||
"note": "Historical executed tools; source manifests were gzip archived only after all execution/retirement gates passed. Restore.py is standalone recovery entrypoint."
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"original_name": "MANIFEST.json",
|
||||
"uncompressed_bytes": 7168589,
|
||||
"uncompressed_sha256": "37d86cbfd6e81bab12df7614087e4f5a1ef8646e65e1cd8531b16dac2c8a1eb7",
|
||||
"compressed_name": "MANIFEST.json.gz",
|
||||
"compressed_bytes": 1070751,
|
||||
"compressed_sha256": "01c715187d5bf110f11159fc564497e28ada446705181d694dde08fe681ba684",
|
||||
"cloud_manifest": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg",
|
||||
"title": "canonical-r05-MANIFEST.json",
|
||||
"file_name": "canonical-r05-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg",
|
||||
"title": "canonical-r05-MANIFEST.json",
|
||||
"file_name": "canonical-r05-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"exact_content_verified": true
|
||||
}
|
||||
BIN
Binary file not shown.
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Ex0Y1Ix6U8DY9FKKM-OJEDTL_im0Vq53",
|
||||
"title": "canonical-r05-CLOUD_OBJECT_REUSE.json",
|
||||
"file_name": "canonical-r05-CLOUD_OBJECT_REUSE.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1Ex0Y1Ix6U8DY9FKKM-OJEDTL_im0Vq53/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Ex0Y1Ix6U8DY9FKKM-OJEDTL_im0Vq53",
|
||||
"title": "canonical-r05-CLOUD_OBJECT_REUSE.json",
|
||||
"file_name": "canonical-r05-CLOUD_OBJECT_REUSE.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1Ex0Y1Ix6U8DY9FKKM-OJEDTL_im0Vq53/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "51b74dfc3c6a15ce151e460bdad1e98f53ffa40ed3f9949263381d72fcf7eca3",
|
||||
"bytes": 10097
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg",
|
||||
"title": "canonical-r05-MANIFEST.json",
|
||||
"file_name": "canonical-r05-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg",
|
||||
"title": "canonical-r05-MANIFEST.json",
|
||||
"file_name": "canonical-r05-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AT5t69o2vYVZQjF_Q9NiL9gBPhjRn_qg/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "37d86cbfd6e81bab12df7614087e4f5a1ef8646e65e1cd8531b16dac2c8a1eb7",
|
||||
"bytes": 7168589
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1bfAR3vso3sdA_joQ_GCA3MZ7EO8HCp2D",
|
||||
"title": "canonical-r05-RESTORE.md",
|
||||
"file_name": "canonical-r05-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1bfAR3vso3sdA_joQ_GCA3MZ7EO8HCp2D/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1bfAR3vso3sdA_joQ_GCA3MZ7EO8HCp2D",
|
||||
"title": "canonical-r05-RESTORE.md",
|
||||
"file_name": "canonical-r05-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1bfAR3vso3sdA_joQ_GCA3MZ7EO8HCp2D/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "4f9c6cc124f1650541d18224375125d908a25dfbaf15667b24ccedcc5fc2d50e",
|
||||
"bytes": 1005
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1TjnRzNCj-nJB7jlRxRIXwXGRqdnf6K8c",
|
||||
"title": "canonical-r05-restore.py",
|
||||
"file_name": "canonical-r05-restore.py",
|
||||
"mime_type": "text/x-python",
|
||||
"url": "https://drive.google.com/file/d/1TjnRzNCj-nJB7jlRxRIXwXGRqdnf6K8c/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1TjnRzNCj-nJB7jlRxRIXwXGRqdnf6K8c",
|
||||
"title": "canonical-r05-restore.py",
|
||||
"file_name": "canonical-r05-restore.py",
|
||||
"mime_type": "text/x-python",
|
||||
"url": "https://drive.google.com/file/d/1TjnRzNCj-nJB7jlRxRIXwXGRqdnf6K8c/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "a96e0ca7732a8b2840a42d29347ed49d45bd6032a40f48049b7bbb83b53e5827",
|
||||
"bytes": 1925
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
# 旧版P08証跡の復元
|
||||
|
||||
退避先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
CLOUD_OBJECT_REUSE.json の source_cloud_parts の順序で review-material-r04.tar.gz.part-0000〜0006 を取得。各サイズ・SHA-256を確認して連結し、source_archive_verification のSHA-256と照合する。アーカイブは r04 と共用し、追加本体の転送は行っていない。復元にはこのr05の MANIFEST.json(またはローカルの MANIFEST.json.gz)を使う。r04内蔵の別パス対応表を使わない。
|
||||
|
||||
`python3 restore.py review-material-r04.tar.gz MANIFEST.json /Users/korizatou114/Projects/TheTree-managed-worktrees`
|
||||
|
||||
既存のファイルへの上書きを拒否する。空の別ディレクトリへの復元も可。全復元ファイルのサイズ・SHA-256・モード・mtimeを照合する。現行版への validated-current-proof-alias、現行build、実装worktree、現在候補、実行記録はローカルに保持する。
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"unix": 1792068949.544412,
|
||||
"files": 18305,
|
||||
"logical_bytes": 2001146758,
|
||||
"free_before_selection": 2722979840,
|
||||
"free_before_retirement": 2702245888,
|
||||
"free_after": 3157508096,
|
||||
"net_free_change_from_selection": 434528256,
|
||||
"new_payload_upload_bytes": 0,
|
||||
"all_sources_and_cloud_object_hashes_verified": true,
|
||||
"current_alias_and_build_receipts_unchanged": true,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+2164
File diff suppressed because it is too large
Load Diff
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"all_sources_rehashed_and_unchanged": true,
|
||||
"manifest_sha256": "37d86cbfd6e81bab12df7614087e4f5a1ef8646e65e1cd8531b16dac2c8a1eb7",
|
||||
"unix": 1792068852.53724
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
"""Restore new path mappings from the byte-verified r04 content-addressed archive."""
|
||||
import argparse,contextlib,gzip,hashlib,json,os,tarfile
|
||||
from pathlib import Path
|
||||
p=argparse.ArgumentParser();p.add_argument('archive');p.add_argument('manifest');p.add_argument('destination');a=p.parse_args();mp=Path(a.manifest);raw=gzip.decompress(mp.read_bytes())if mp.suffix=='.gz'else mp.read_bytes();m=json.loads(raw);dest=Path(a.destination).resolve();h=hashlib.sha256()
|
||||
with open(a.archive,'rb')as f:
|
||||
for b in iter(lambda:f.read(1024**2),b''):h.update(b)
|
||||
assert h.hexdigest()==m['source_r04_archive_sha256'];rows=m['members'];by_hash={};seen=set();restored=0
|
||||
assert len({x['path']for x in rows})==len(rows)
|
||||
for x in rows:
|
||||
q=dest/x['path'];assert q.resolve().is_relative_to(dest)and not q.exists()and not q.is_symlink()
|
||||
if x['type']=='file':by_hash.setdefault(x['sha256'],[]).append(x)
|
||||
for x in rows:
|
||||
if x['type']=='directory':(dest/x['path']).mkdir(parents=True,exist_ok=True)
|
||||
with tarfile.open(a.archive,'r|gz')as t:
|
||||
for e in t:
|
||||
assert e.isfile()
|
||||
if not e.name.startswith('objects/'):continue
|
||||
key=e.name[8:]
|
||||
if key not in by_hash:continue
|
||||
assert key not in seen;seen.add(key);group=by_hash[key];assert all(x['bytes']==e.size for x in group);v=hashlib.sha256()
|
||||
with contextlib.ExitStack()as stack:
|
||||
out=[stack.enter_context((dest/x['path']).open('xb'))for x in group];f=stack.enter_context(t.extractfile(e))
|
||||
for b in iter(lambda:f.read(1024**2),b''):
|
||||
v.update(b)
|
||||
for o in out:o.write(b)
|
||||
assert v.hexdigest()==key
|
||||
for x in group:
|
||||
q=dest/x['path'];assert q.stat().st_size==x['bytes'];os.chmod(q,x['mode']);os.utime(q,ns=(x['mtime_ns'],x['mtime_ns']));restored+=1
|
||||
assert seen==set(by_hash)and restored==m['files']
|
||||
for x in reversed(rows):
|
||||
if x['type']=='directory':q=dest/x['path'];os.chmod(q,x['mode']);os.utime(q,ns=(x['mtime_ns'],x['mtime_ns']))
|
||||
print('Restored and verified',restored,'files')
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-canonical-r05.py',run_name='offload_library'))
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());coverage=json.loads((D/'COVERAGE_CHECK.json').read_bytes());assert coverage['all_objects_available_in_verified_r04_cloud'];v=json.loads((R04/'CLOUD_ARCHIVE_VERIFIED.json').read_bytes());assert v['actual_cloud_readback']and m['source_r04_archive_sha256']==v['whole_archive_sha256'];save(D/'CLOUD_OBJECT_REUSE.json',dict(source_archive_verification=v,source_cloud_parts=json.loads((R04/'CLOUD_PARTS.json').read_bytes()),source_cloud_manifest=json.loads((R04/'READBACK-MANIFEST.json.json').read_bytes())['cloud'],new_file_mappings=m['files'],every_new_file_hash_and_size_in_verified_archive=True,new_payload_upload_required=False,formal_credit=0))
|
||||
print('Verified archive reuse mapping saved')
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-canonical-r05.py',run_name='offload_library'))
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());s=json.loads((D/'SOURCE_RECHECK.json').read_bytes());assert s['all_sources_rehashed_and_unchanged']and s['manifest_sha256']==sha(D/'MANIFEST.json')and time.time()-s['unix']<3600;assert json.loads((D/'COVERAGE_CHECK.json').read_bytes())['all_objects_available_in_verified_r04_cloud']
|
||||
for n in ['MANIFEST.json','CLOUD_OBJECT_REUSE.json','restore.py','RESTORE.md']:
|
||||
j=json.loads((D/('READBACK-'+n+'.json')).read_bytes());assert j['actual_cloud_readback_verified']and j['sha256']==sha(D/n)
|
||||
assert not(D/'RETIREMENT.json').exists();check_idle();current=B/'p08-03-code/.runtime/P08-03/build';alias=parent/'validated-current-proof-alias';link=os.readlink(alias);assert Path(link).is_dir();protected={str(x):sha(x)for x in current.rglob('*.json')if 'stage'not in x.parts and 'profile'not in x.parts};assert protected
|
||||
for x in m['members']:
|
||||
q=B/x['path'];st=q.lstat();assert not q.is_symlink()and(q.is_file()if x['type']=='file'else q.is_dir());assert st.st_mtime_ns==x['mtime_ns']and st.st_mode&0o7777==x['mode'];assert x['type']!='file'or st.st_size==x['bytes']
|
||||
free=shutil.disk_usage(R).free;save(D/'RETIREMENT_INTENT.json',dict(unix=time.time(),manifest_sha256=sha(D/'MANIFEST.json'),all_sources_rehashed_and_stat_rechecked=True,only_cold_canonical_roots=m['roots'],current_alias_target=link,current_build_json_guards=protected))
|
||||
for x in m['members']:
|
||||
if x['type']=='file':(B/x['path']).unlink()
|
||||
for x in sorted(m['members'],key=lambda x:len(Path(x['path']).parts),reverse=True):
|
||||
if x['type']=='directory':(B/x['path']).rmdir()
|
||||
assert os.readlink(alias)==link and Path(link).is_dir();assert all(sha(Path(p))==h for p,h in protected.items());assert all(not(B/x).exists()for x in m['roots'])
|
||||
save(parent/'CLOUD_HISTORY_R05.json',dict(state='cloud_archived',roots=m['roots'],folder_url='https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK',manifest=str(D/'MANIFEST.json'),restore=str(D/'RESTORE.md'),source_archive_sha256=m['source_r04_archive_sha256'],alias_and_current_build_retained=True,formal_credit=0))
|
||||
r=dict(unix=time.time(),files=m['files'],logical_bytes=m['logical_bytes'],free_before_selection=m['free_before'],free_before_retirement=free,free_after=shutil.disk_usage(R).free,net_free_change_from_selection=shutil.disk_usage(R).free-m['free_before'],new_payload_upload_bytes=0,all_sources_and_cloud_object_hashes_verified=True,current_alias_and_build_receipts_unchanged=True,formal_credit=0);save(D/'RETIREMENT.json',r);print(json.dumps(r),flush=True)
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-canonical-r05.py',run_name='offload_library'))
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());roots=m['roots'];check_idle();assert inv()==m['members'];save(D/'SOURCE_RECHECK.json',dict(all_sources_rehashed_and_unchanged=True,manifest_sha256=sha(D/'MANIFEST.json'),unix=time.time()));print('All 18,305 historical canonical files rehashed and unchanged',flush=True)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
exec(open('/private/tmp/tree-offload-review-r04.py').read().split("if __name__")[0])
|
||||
R04=D;D=R/'docs/plans/original-completion-2026-10-02/execution/drive-offload-canonical-r05-20261015';parent=B/'p08-03-code/.runtime/P08-03/evidence-archive/pre-d369';roots=sorted(str(x.relative_to(B))for x in parent.iterdir()if x.is_dir()and not x.is_symlink());assert len(roots)==8
|
||||
def check_idle():
|
||||
c=sqlite3.connect('file:'+str(DB/'the-tree-p08-03-code/state.sqlite')+'?mode=ro',uri=True);assert c.execute("select count(*) from runs where finished is null and status not in ('failed','finished')").fetchone()[0]==0
|
||||
ps=subprocess.check_output(['ps','-axo','pid,command'],text=True);opened=subprocess.run(['lsof','-n','-F','n'],capture_output=True,text=True).stdout
|
||||
for s in roots:assert not any(str(B/s)in x for x in ps.splitlines())and not any(x.startswith('n'+str(B/s)+'/')for x in opened.splitlines())
|
||||
if __name__=='__main__':
|
||||
assert D.exists() and not any(D.iterdir());check_idle();old=json.loads((R04/'MANIFEST.json').read_bytes());objects={x['sha256']:x for x in old['members']if x['type']=='file'};before=shutil.disk_usage(R).free;rows=inv();missing=[x for x in rows if x['type']=='file'and(x['sha256']not in objects or objects[x['sha256']]['bytes']!=x['bytes'])]
|
||||
save(D/'COVERAGE_CHECK.json',dict(files=sum(x['type']=='file'for x in rows),missing_files=len(missing),missing=[dict(path=x['path'],bytes=x['bytes'],sha256=x['sha256'])for x in missing],all_objects_available_in_verified_r04_cloud=not missing))
|
||||
m=dict(base=str(B),roots=roots,members=rows,files=sum(x['type']=='file'for x in rows),logical_bytes=sum(x.get('bytes',0)for x in rows),free_before=before,source_r04_manifest_sha256=sha(R04/'MANIFEST.json'),source_r04_archive_sha256=json.loads((R04/'PREPARED.json').read_bytes())['sha256'],created=time.time(),scope='Idle superseded canonical pre-d369 historical P08 evidence only; current build and current candidates retained',formal_credit=0)
|
||||
save(D/'MANIFEST.json',m);print(json.dumps(dict(files=m['files'],logical_bytes=m['logical_bytes'],missing=len(missing))),flush=True)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"actual_cloud_readback": true,
|
||||
"whole_archive_sha256": "75953c3d35d5fbc633e7cb68c6510ea8ad33aa9b7591a83feccd1d8c69389cc0",
|
||||
"bytes": 236897320,
|
||||
"all_unique_payloads_verified": 6689,
|
||||
"original_file_mappings_verified": 14259,
|
||||
"manifest_identical": true,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
[
|
||||
{
|
||||
"order": 0,
|
||||
"offset": 0,
|
||||
"path": "/private/tmp/tree-offload-cold-r06/upload-0000.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "22c205b386248abf7b39b70c2b858a483654aa7e089a3d64b70a17a571886f53",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1MXFzQ_yfhmdJU9Q_dnWwqD7MNQlp8QYE",
|
||||
"title": "cold-r06.tar.gz.part-0000",
|
||||
"file_name": "cold-r06.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/1MXFzQ_yfhmdJU9Q_dnWwqD7MNQlp8QYE/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1MXFzQ_yfhmdJU9Q_dnWwqD7MNQlp8QYE",
|
||||
"title": "cold-r06.tar.gz.part-0000",
|
||||
"file_name": "cold-r06.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/1MXFzQ_yfhmdJU9Q_dnWwqD7MNQlp8QYE/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"offset": 67108864,
|
||||
"path": "/private/tmp/tree-offload-cold-r06/upload-0001.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "6e199f6f2d6efb73252038892f0dc2a41892aa1bbb3c2888b5b4b5e45270ba3c",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Ws-lJGHGUPFVg0i43hdhct3vue6pkOW-",
|
||||
"title": "cold-r06.tar.gz.part-0001",
|
||||
"file_name": "cold-r06.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1Ws-lJGHGUPFVg0i43hdhct3vue6pkOW-/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Ws-lJGHGUPFVg0i43hdhct3vue6pkOW-",
|
||||
"title": "cold-r06.tar.gz.part-0001",
|
||||
"file_name": "cold-r06.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1Ws-lJGHGUPFVg0i43hdhct3vue6pkOW-/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"offset": 134217728,
|
||||
"path": "/private/tmp/tree-offload-cold-r06/upload-0002.bin",
|
||||
"bytes": 67108864,
|
||||
"sha256": "70bc0439aceba6fd5642b8e819b69959e977db25e993dfa027a9abb3ba2d6549",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1wDnWAWPIdFxs1RqHAG5ow2vOt4mkNekY",
|
||||
"title": "cold-r06.tar.gz.part-0002",
|
||||
"file_name": "cold-r06.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1wDnWAWPIdFxs1RqHAG5ow2vOt4mkNekY/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1wDnWAWPIdFxs1RqHAG5ow2vOt4mkNekY",
|
||||
"title": "cold-r06.tar.gz.part-0002",
|
||||
"file_name": "cold-r06.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1wDnWAWPIdFxs1RqHAG5ow2vOt4mkNekY/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"offset": 201326592,
|
||||
"path": "/private/tmp/tree-offload-cold-r06/upload-0003.bin",
|
||||
"bytes": 35570728,
|
||||
"sha256": "ff1f41ae4c20f2b8c7b61877671e68f0e7e9fc6a8c8852e1748c5c06f99b0627",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1f-rJ_4Z1yV4lc7F2BBVartTFB84WZEJy",
|
||||
"title": "cold-r06.tar.gz.part-0003",
|
||||
"file_name": "cold-r06.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1f-rJ_4Z1yV4lc7F2BBVartTFB84WZEJy/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1f-rJ_4Z1yV4lc7F2BBVartTFB84WZEJy",
|
||||
"title": "cold-r06.tar.gz.part-0003",
|
||||
"file_name": "cold-r06.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1f-rJ_4Z1yV4lc7F2BBVartTFB84WZEJy/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
]
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"scripts": [
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-cold-r06.py",
|
||||
"preserved_script": "tree-offload-cold-r06.py",
|
||||
"sha256": "52ed2ad5db40d737f81309d524f0a6972d41120bb5d17aac80bc0f27c4ebf4b8"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-cold-r06-verify-cloud.py",
|
||||
"preserved_script": "tree-offload-cold-r06-verify-cloud.py",
|
||||
"sha256": "d4819004cc19f0f7c6c5811c8cc87956e8c72837c065f6bad27232f24debed3c"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-cold-r06-source-recheck.py",
|
||||
"preserved_script": "tree-offload-cold-r06-source-recheck.py",
|
||||
"sha256": "dfad371e44b3d047c6f72a90dd71c35519cb6949f9173d472b78928b04e93507"
|
||||
},
|
||||
{
|
||||
"actual_executed_path": "/private/tmp/tree-offload-cold-r06-retire.py",
|
||||
"preserved_script": "tree-offload-cold-r06-retire.py",
|
||||
"sha256": "8d3ac0929902f4853f5d9503c89dd7d184b1412d8d3784cc93dd1ea9b61ad52d"
|
||||
}
|
||||
],
|
||||
"note": "Historical executed tools; source manifests were gzip archived only after all execution/retirement gates passed. Restore.py is standalone recovery entrypoint."
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"recorded_unix": 1792069625.883337,
|
||||
"scope": "This request only: three new offload batches r04/r05/r06; prior offloads not added",
|
||||
"batches": [
|
||||
"drive-offload-review-material-r04-20261015",
|
||||
"drive-offload-canonical-r05-20261015",
|
||||
"drive-offload-cold-r06-20261015"
|
||||
],
|
||||
"retired_roots": 23,
|
||||
"archived_original_file_paths": 80138,
|
||||
"archived_logical_bytes": 14737457073,
|
||||
"uploaded_payload_archive_bytes": 674319758,
|
||||
"r05_reused_existing_cloud_objects_without_new_payload": true,
|
||||
"free_before": 2699243520,
|
||||
"free_after": 3348508672,
|
||||
"net_observed_free_change": 649265152,
|
||||
"logical_bytes_are_not_reclaimed_physical_bytes": true,
|
||||
"cloud_folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"all_cloud_archive_payloads_and_mappings_retrieved_and_verified": true,
|
||||
"all_source_members_rehashed_before_retirement": true,
|
||||
"local_current_candidates_and_build_evidence_retained": true,
|
||||
"p18_current_eight_receipts_unchanged": true,
|
||||
"p08_current_alias_and_build_receipts_unchanged": true,
|
||||
"p23_old_failed_diagnostic_outcomes_retained_locally": true,
|
||||
"local_manifests_gzip_roundtrip_verified": true,
|
||||
"formal_original_unit_credit": 0
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
# 証跡のGoogle Drive退避結果
|
||||
|
||||
今回の3バッチ(r04・r05・r06)だけを集計。23か所・80,138ファイル、論理サイズ14.737 GBを退避。実空き容量は開始時2.514 GiBから終了時3.119 GiBへ、純増0.605 GiB。論理サイズを物理回収量に換算しない。macOSの共有コピーのため見かけの容量と空きの回復量は異なる。
|
||||
|
||||
退避先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
- r04: 終了済みレビュー11件の資料コピー。全47,574ファイル分の内容をDrive再取得で照合。
|
||||
- r05: 旧版P08の8実行分、18,305ファイル。全内容がr04の検証済みオブジェクトに一致するため、本体の再送を省略。新しい元パス対応表・復元スクリプトもDrive再取得で照合。
|
||||
- r06: P23旧候補49445d4-r13の診断一式とP08旧プレビュー3件、14,259ファイル。旧P23の不合格条件を含む小さな実行結果はローカルにも同じバイト内容で保持。現行P23の9a26候補には充当しない。
|
||||
|
||||
各バッチのCLOUD_PARTS.jsonまたはCLOUD_OBJECT_REUSE.jsonに実際のDriveファイルURLとSHA-256を保持。RESTORE.mdに復元手順、MANIFEST.json.gzに全元パス・サイズ・SHA-256・mode・mtimeを保持。gzipから復号した全バイトも元対応表と照合済み。公開範囲の変更は行っていない。
|
||||
|
||||
現在のP18候補265ce30および統合予行の計8主要証跡、現在のP08参照とbuild証跡は不変。実装worktree、現行候補、現在の検証証跡、原本、ユーザー保存データ、実行記録、レビュー回答を保持。ゲームの正式完了数は加算しない。
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"original_name": "MANIFEST.json",
|
||||
"uncompressed_bytes": 4919377,
|
||||
"uncompressed_sha256": "db9c53deedb48cf78f8eda1b15481d6b15967870d5a12f190224073f7dbd9fb4",
|
||||
"compressed_name": "MANIFEST.json.gz",
|
||||
"compressed_bytes": 781400,
|
||||
"compressed_sha256": "d34769ecb7af2b80ad3e70e7572089d6dded20f23d50222cdb4d27c72631ee34",
|
||||
"cloud_manifest": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb",
|
||||
"title": "cold-r06-MANIFEST.json",
|
||||
"file_name": "cold-r06-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb",
|
||||
"title": "cold-r06-MANIFEST.json",
|
||||
"file_name": "cold-r06-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"exact_content_verified": true
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"reason": "Retain exact old unaccepted diagnostics and false conditions for ongoing audits while bulky source/profile copies are on Drive",
|
||||
"files": [
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/root-cua-trace.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/root-cua-trace.json",
|
||||
"sha256": "e1c8826a165d36c0bf2d9b2a4f02fba6f3d52ac2e0fc04f6a3bc9eadc95f0350",
|
||||
"bytes": 18858
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/os-proof.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/os-proof.json",
|
||||
"sha256": "7c5d043f10e6547d67fb60eabf215e740bdd86693ddddb42e9589c23bd2b40de",
|
||||
"bytes": 162904
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/parse-paths.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/parse-paths.json",
|
||||
"sha256": "47b7ecd0131e9e19b3a858f99424d91caac1323d3f447a712625e4fe20490e9e",
|
||||
"bytes": 15803
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/root-strict-pre-review.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/root-strict-pre-review.json",
|
||||
"sha256": "ad65ab0f2b2a5a8b0cccaf9e12dfc0be8231ab6f24589628089fe54c862353bc",
|
||||
"bytes": 3202
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/runner-input.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/runner-input.json",
|
||||
"sha256": "fd78bd2a24aa05f7b4cdf04a7d9358c2e859e2c70b3ce78a304c6a21451a4bbd",
|
||||
"bytes": 318720
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/index.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/index.json",
|
||||
"sha256": "c0cc9e939845b5f3ae8375d414327821eb75c3e5f5158ae32eb872eda1b99a03",
|
||||
"bytes": 1424167
|
||||
},
|
||||
{
|
||||
"original": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/runner-ended.json",
|
||||
"retained": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015/retained-p23-r13-outcomes/runner-ended.json",
|
||||
"sha256": "d3069a1de33f49bb5be426dd67147910bf52ca912ffad0743957cf582d535bac",
|
||||
"bytes": 3204
|
||||
}
|
||||
],
|
||||
"formal_credit": 0
|
||||
}
|
||||
BIN
Binary file not shown.
+7
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"archive": "/private/tmp/tree-offload-cold-r06/cold-r06.tar.gz",
|
||||
"bytes": 236897320,
|
||||
"sha256": "75953c3d35d5fbc633e7cb68c6510ea8ad33aa9b7591a83feccd1d8c69389cc0",
|
||||
"all_members_verified": true,
|
||||
"unique_payloads": 6689
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1fAnug1qqMbpC30j5NQ9MpEcAXOUk94fL",
|
||||
"title": "cold-r06-CLOUD_ARCHIVE_VERIFIED.json",
|
||||
"file_name": "cold-r06-CLOUD_ARCHIVE_VERIFIED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1fAnug1qqMbpC30j5NQ9MpEcAXOUk94fL/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1fAnug1qqMbpC30j5NQ9MpEcAXOUk94fL",
|
||||
"title": "cold-r06-CLOUD_ARCHIVE_VERIFIED.json",
|
||||
"file_name": "cold-r06-CLOUD_ARCHIVE_VERIFIED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1fAnug1qqMbpC30j5NQ9MpEcAXOUk94fL/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "07f53e41dd238db4e9ddc0fb29cd9cf38777c61298a5f5cf62cd401bf9441deb",
|
||||
"bytes": 288
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1hVH1bFxeRJR739YCJo6cejb5VouO4MAp",
|
||||
"title": "cold-r06-CLOUD_PARTS.json",
|
||||
"file_name": "cold-r06-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1hVH1bFxeRJR739YCJo6cejb5VouO4MAp/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1hVH1bFxeRJR739YCJo6cejb5VouO4MAp",
|
||||
"title": "cold-r06-CLOUD_PARTS.json",
|
||||
"file_name": "cold-r06-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1hVH1bFxeRJR739YCJo6cejb5VouO4MAp/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "ef6fea99bd5f2b092c38c2c066aee99f00fd47ef20bcf36a6c495a941de21113",
|
||||
"bytes": 4558
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "19sUILvigTR84_UFpn4x2OMw7tzC59k4z",
|
||||
"title": "offload-r04-r06-FINAL_REPORT.json",
|
||||
"file_name": "offload-r04-r06-FINAL_REPORT.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/19sUILvigTR84_UFpn4x2OMw7tzC59k4z/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "19sUILvigTR84_UFpn4x2OMw7tzC59k4z",
|
||||
"title": "offload-r04-r06-FINAL_REPORT.json",
|
||||
"file_name": "offload-r04-r06-FINAL_REPORT.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/19sUILvigTR84_UFpn4x2OMw7tzC59k4z/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "d34795aee5e9686ba7330e94f9d0856db96d2931549ab19a671e0c647e503bd6"
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "127T4_zEJhsGlgThLkhZbDR6-dR8e6FMv",
|
||||
"title": "offload-r04-r06-FINAL_REPORT.md",
|
||||
"file_name": "offload-r04-r06-FINAL_REPORT.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/127T4_zEJhsGlgThLkhZbDR6-dR8e6FMv/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "127T4_zEJhsGlgThLkhZbDR6-dR8e6FMv",
|
||||
"title": "offload-r04-r06-FINAL_REPORT.md",
|
||||
"file_name": "offload-r04-r06-FINAL_REPORT.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/127T4_zEJhsGlgThLkhZbDR6-dR8e6FMv/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "fa4ea3291637d060e671e5f99ad76ca9eee480953c7c425c079074137e945c61"
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb",
|
||||
"title": "cold-r06-MANIFEST.json",
|
||||
"file_name": "cold-r06-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb",
|
||||
"title": "cold-r06-MANIFEST.json",
|
||||
"file_name": "cold-r06-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1AjdqKoVypig1-47vbE1U8KpYqv2xKpFb/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "db9c53deedb48cf78f8eda1b15481d6b15967870d5a12f190224073f7dbd9fb4",
|
||||
"bytes": 4919377
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1SU1qY9FZd2I1uw0Kok4E64zBksIu7_oi",
|
||||
"title": "cold-r06-PREPARED.json",
|
||||
"file_name": "cold-r06-PREPARED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1SU1qY9FZd2I1uw0Kok4E64zBksIu7_oi/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1SU1qY9FZd2I1uw0Kok4E64zBksIu7_oi",
|
||||
"title": "cold-r06-PREPARED.json",
|
||||
"file_name": "cold-r06-PREPARED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1SU1qY9FZd2I1uw0Kok4E64zBksIu7_oi/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "7c166916784393ff2ebb9f857482382b45a853bdcbe1879d9ab150cb78ac4dd6",
|
||||
"bytes": 231
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1EzPkW1mZ6sSaaJzLVkK0ur1Lg8PSeVP4",
|
||||
"title": "cold-r06-RESTORE.md",
|
||||
"file_name": "cold-r06-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1EzPkW1mZ6sSaaJzLVkK0ur1Lg8PSeVP4/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1EzPkW1mZ6sSaaJzLVkK0ur1Lg8PSeVP4",
|
||||
"title": "cold-r06-RESTORE.md",
|
||||
"file_name": "cold-r06-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1EzPkW1mZ6sSaaJzLVkK0ur1Lg8PSeVP4/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "740d91711a465f535b82350ae0f2b83b360696d8859850a592545dd5965d0cc0",
|
||||
"bytes": 971
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1iRbjOkdZ4fuDapeye8vTL7reH5jf-J48",
|
||||
"title": "cold-r06-restore.py",
|
||||
"file_name": "cold-r06-restore.py",
|
||||
"mime_type": "text/x-python",
|
||||
"url": "https://drive.google.com/file/d/1iRbjOkdZ4fuDapeye8vTL7reH5jf-J48/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1iRbjOkdZ4fuDapeye8vTL7reH5jf-J48",
|
||||
"title": "cold-r06-restore.py",
|
||||
"file_name": "cold-r06-restore.py",
|
||||
"mime_type": "text/x-python",
|
||||
"url": "https://drive.google.com/file/d/1iRbjOkdZ4fuDapeye8vTL7reH5jf-J48/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"actual_cloud_readback_verified": true,
|
||||
"sha256": "9e5fae33042236e7c863931f6731c8867d89c075d14d28fd45571ee844ccdc4f",
|
||||
"bytes": 1288
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
# 旧P23診断とP08旧プレビューの復元
|
||||
|
||||
退避先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
CLOUD_PARTS.json の順に cold-r06.tar.gz.part-0000 以降を取得。各SHA-256とサイズを照合して連結し、PREPARED.json の全体SHA-256を確認する。
|
||||
|
||||
`python3 restore.py cold-r06.tar.gz /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02`
|
||||
|
||||
既存ファイルを上書きしない。全ファイルのサイズ・SHA-256・mode・mtimeを確認する。詳細な元パス対応はアーカイブ内 MANIFEST.json、ローカルの MANIFEST.json.gz、Driveの cold-r06-MANIFEST.json に保持。旧P23の index/os-proof/Rootの不合格条件/runner入出力は retained-p23-r13-outcomes に同じバイト内容を残す。旧診断を合格や現行9a26候補の証拠に変更しない。現行候補・全P18証跡・P08現行証跡は退避対象外。
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"recorded_unix": 1792069525.880496,
|
||||
"files": 14259,
|
||||
"roots": [
|
||||
"p23-03-native-os-49445d4-r13",
|
||||
"p08-runtime-preview-8d52b20-target-r02/stage",
|
||||
"p08-runtime-preview-78dc82d-targeted-r01/stage",
|
||||
"p08-runtime-preview-12f04d6-target-impact-r03/stage"
|
||||
],
|
||||
"logical_bytes": 1262084277,
|
||||
"unique_bytes": 784595702,
|
||||
"cloud_archive_bytes": 236897320,
|
||||
"free_before_selection": 3159797760,
|
||||
"free_before_retirement": 2663612416,
|
||||
"free_after": 3310927872,
|
||||
"net_free_change_from_selection": 151130112,
|
||||
"actual_cloud_readback_all_payloads_verified": true,
|
||||
"retired_only_manifest_members": true,
|
||||
"current_sources_build_evidence_run_records_review_results_retained": true,
|
||||
"temporary_archives_removed_after_verification": true,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"unix": 1792069524.3539698,
|
||||
"manifest_sha256": "db9c53deedb48cf78f8eda1b15481d6b15967870d5a12f190224073f7dbd9fb4",
|
||||
"whole_archive_sha256": "75953c3d35d5fbc633e7cb68c6510ea8ad33aa9b7591a83feccd1d8c69389cc0",
|
||||
"full_cloud_content_verified": true,
|
||||
"all_sources_rehashed_and_stat_rechecked": true,
|
||||
"active_jobs_and_open_files_zero": true,
|
||||
"files": 14259,
|
||||
"roots": [
|
||||
"p23-03-native-os-49445d4-r13",
|
||||
"p08-runtime-preview-8d52b20-target-r02/stage",
|
||||
"p08-runtime-preview-78dc82d-targeted-r01/stage",
|
||||
"p08-runtime-preview-12f04d6-target-impact-r03/stage"
|
||||
]
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"recorded_unix": 1792069422.347965,
|
||||
"all_sources_unchanged": true,
|
||||
"manifest_sha256": "db9c53deedb48cf78f8eda1b15481d6b15967870d5a12f190224073f7dbd9fb4"
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
"""Restore content-addressed archive without overwriting existing files."""
|
||||
import argparse,hashlib,json,os,tarfile
|
||||
from pathlib import Path
|
||||
p=argparse.ArgumentParser();p.add_argument('archive');p.add_argument('destination');a=p.parse_args();dest=Path(a.destination).resolve()
|
||||
with tarfile.open(a.archive,'r:gz')as t:
|
||||
m=json.loads(t.extractfile('MANIFEST.json').read());rows=m['members'];expected={'MANIFEST.json'}|{'objects/'+x['sha256']for x in rows if x['type']=='file'}
|
||||
assert {x.name for x in t.getmembers()}==expected and len(t.getmembers())==len(expected)
|
||||
for x in rows:
|
||||
target=dest/x['path'];assert target.resolve().is_relative_to(dest) and not target.exists()
|
||||
for x in rows:
|
||||
q=dest/x['path']
|
||||
if x['type']=='directory':q.mkdir(parents=True,exist_ok=True)
|
||||
else:
|
||||
q.parent.mkdir(parents=True,exist_ok=True);h=hashlib.sha256()
|
||||
with q.open('xb')as out,t.extractfile('objects/'+x['sha256'])as f:
|
||||
for b in iter(lambda:f.read(1048576),b''):h.update(b);out.write(b)
|
||||
assert q.stat().st_size==x['bytes'] and h.hexdigest()==x['sha256']
|
||||
os.chmod(q,x['mode']);os.utime(q,ns=(x['mtime_ns'],x['mtime_ns']))
|
||||
for x in reversed(rows):
|
||||
if x['type']=='directory':os.utime(dest/x['path'],ns=(x['mtime_ns'],x['mtime_ns']))
|
||||
print('Restored and verified',m['files'],'files')
|
||||
+16499
File diff suppressed because it is too large
Load Diff
+1377
File diff suppressed because it is too large
Load Diff
+321
@@ -0,0 +1,321 @@
|
||||
[
|
||||
"res://autoload/event_bus.gd",
|
||||
"res://autoload/game_clock.gd",
|
||||
"res://autoload/game_state.gd",
|
||||
"res://autoload/simulation_runtime.gd",
|
||||
"res://scenes/main/main.gd",
|
||||
"res://scenes/main/world_preview.gd",
|
||||
"res://scripts/authority/authority_service.gd",
|
||||
"res://scripts/authority/evidence.gd",
|
||||
"res://scripts/authority/heat_state.gd",
|
||||
"res://scripts/authority/incident.gd",
|
||||
"res://scripts/authority/inspection.gd",
|
||||
"res://scripts/construction/construction_job.gd",
|
||||
"res://scripts/construction/construction_service.gd",
|
||||
"res://scripts/construction/excavation_service.gd",
|
||||
"res://scripts/construction/facility_resize_preview.gd",
|
||||
"res://scripts/construction/facility_resize_routes.gd",
|
||||
"res://scripts/construction/placement_report.gd",
|
||||
"res://scripts/core/command.gd",
|
||||
"res://scripts/core/command_queue.gd",
|
||||
"res://scripts/core/command_result.gd",
|
||||
"res://scripts/core/definition_registry.gd",
|
||||
"res://scripts/core/deterministic_rng.gd",
|
||||
"res://scripts/core/domain_event.gd",
|
||||
"res://scripts/core/domain_event_stream.gd",
|
||||
"res://scripts/core/performance_budget.gd",
|
||||
"res://scripts/core/save_migration_registry.gd",
|
||||
"res://scripts/core/save_service.gd",
|
||||
"res://scripts/core/simulation_digest.gd",
|
||||
"res://scripts/core/simulation_kernel.gd",
|
||||
"res://scripts/core/simulation_snapshot.gd",
|
||||
"res://scripts/core/stable_id_generator.gd",
|
||||
"res://scripts/core/state_transaction.gd",
|
||||
"res://scripts/data/facility_catalog.gd",
|
||||
"res://scripts/data/facility_definition.gd",
|
||||
"res://scripts/data/mvp_content_catalog.gd",
|
||||
"res://scripts/defense/defense_service.gd",
|
||||
"res://scripts/economy/economy_service.gd",
|
||||
"res://scripts/economy/facility_upkeep_accrual.gd",
|
||||
"res://scripts/economy/facility_upkeep_settlement.gd",
|
||||
"res://scripts/economy/ledger_backed_resource_state.gd",
|
||||
"res://scripts/economy/ledger_entry.gd",
|
||||
"res://scripts/environment/facility_cleaning_bridge.gd",
|
||||
"res://scripts/environment/facility_cleaning_policy.gd",
|
||||
"res://scripts/environment/facility_cleanliness_service.gd",
|
||||
"res://scripts/environment/weather_timeline.gd",
|
||||
"res://scripts/events/event_action.gd",
|
||||
"res://scripts/events/event_choice.gd",
|
||||
"res://scripts/events/event_condition.gd",
|
||||
"res://scripts/events/event_definition.gd",
|
||||
"res://scripts/events/event_instance.gd",
|
||||
"res://scripts/events/event_service.gd",
|
||||
"res://scripts/facility/facility_instance.gd",
|
||||
"res://scripts/facility/facility_pricing.gd",
|
||||
"res://scripts/facility/facility_service.gd",
|
||||
"res://scripts/facility/service_instance.gd",
|
||||
"res://scripts/facility/service_request.gd",
|
||||
"res://scripts/guest/guest_definition.gd",
|
||||
"res://scripts/guest/guest_runtime.gd",
|
||||
"res://scripts/guest/guest_service.gd",
|
||||
"res://scripts/inventory/inventory_reservation.gd",
|
||||
"res://scripts/inventory/inventory_service.gd",
|
||||
"res://scripts/inventory/logistics_dispatcher.gd",
|
||||
"res://scripts/inventory/logistics_request.gd",
|
||||
"res://scripts/mana/mana_network_service.gd",
|
||||
"res://scripts/mana/mana_power_projection.gd",
|
||||
"res://scripts/mana/mana_reserve_balance.gd",
|
||||
"res://scripts/operations/operations_coordinator.gd",
|
||||
"res://scripts/progression/progression_service.gd",
|
||||
"res://scripts/relationship/placement_risk_preview_service.gd",
|
||||
"res://scripts/relationship/relationship_service.gd",
|
||||
"res://scripts/relationship/relationship_state.gd",
|
||||
"res://scripts/staff/shift_instance.gd",
|
||||
"res://scripts/staff/staff_commute_service.gd",
|
||||
"res://scripts/staff/staff_runtime.gd",
|
||||
"res://scripts/staff/staff_service.gd",
|
||||
"res://scripts/staff/staff_task.gd",
|
||||
"res://scripts/staff/task_dispatcher.gd",
|
||||
"res://scripts/supply/kitchen_production_service.gd",
|
||||
"res://scripts/supply/supply_auto_purchase_plans.gd",
|
||||
"res://scripts/supply/supply_auto_purchase_quote_plans.gd",
|
||||
"res://scripts/supply/supply_catalog.gd",
|
||||
"res://scripts/supply/supply_logistics_bridge.gd",
|
||||
"res://scripts/supply/supply_management_service.gd",
|
||||
"res://scripts/supply/supply_purchase_quote_v2.gd",
|
||||
"res://scripts/transport/elevator_service.gd",
|
||||
"res://scripts/ui/business_management_panel.gd",
|
||||
"res://scripts/ui/defense_management_panel.gd",
|
||||
"res://scripts/ui/event_log_dialog.gd",
|
||||
"res://scripts/ui/guest_observation_panel.gd",
|
||||
"res://scripts/ui/inactive_layer_rooms.gd",
|
||||
"res://scripts/ui/infirmary_room_art.gd",
|
||||
"res://scripts/ui/inn_opening_guide.gd",
|
||||
"res://scripts/ui/layer_interface_skin.gd",
|
||||
"res://scripts/ui/manual_save_slots_dialog.gd",
|
||||
"res://scripts/ui/operating_ledger_panel.gd",
|
||||
"res://scripts/ui/paired_bgm.gd",
|
||||
"res://scripts/ui/pixel_people.gd",
|
||||
"res://scripts/ui/pixel_tower_art.gd",
|
||||
"res://scripts/ui/pixel_tower_demo.gd",
|
||||
"res://scripts/ui/room_presentation.gd",
|
||||
"res://scripts/ui/staff_management_panel.gd",
|
||||
"res://scripts/ui/standard_room_art.gd",
|
||||
"res://scripts/ui/supply_management_panel.gd",
|
||||
"res://scripts/ui/ui_audio_feedback.gd",
|
||||
"res://scripts/ui/ui_audio_owner_shutdown.gd",
|
||||
"res://scripts/ui/ui_audio_settings_dialog.gd",
|
||||
"res://scripts/ui/visual_theme_profile.gd",
|
||||
"res://scripts/ui/world_tree_rank_dialog.gd",
|
||||
"res://scripts/world/facility_infrastructure_projector.gd",
|
||||
"res://scripts/world/legacy_stair_service.gd",
|
||||
"res://scripts/world/path_service.gd",
|
||||
"res://scripts/world/route_subslot_path_adapter.gd",
|
||||
"res://scripts/world/spatial_subslot_service.gd",
|
||||
"res://scripts/world/world_service.gd",
|
||||
"res://tests/business/test_business_closure.gd",
|
||||
"res://tests/business/test_business_operations.gd",
|
||||
"res://tests/business/test_required_kitchen.gd",
|
||||
"res://tests/environment/test_cleaning_access.gd",
|
||||
"res://tests/environment/test_facility_cleanliness.gd",
|
||||
"res://tests/environment/test_runtime_cleanliness.gd",
|
||||
"res://tests/environment/test_runtime_weather.gd",
|
||||
"res://tests/environment/test_weather_recovery.gd",
|
||||
"res://tests/environment/test_weather_timeline.gd",
|
||||
"res://tests/export/test_exported_opening.gd",
|
||||
"res://tests/fixtures/p08-02/mixed_world.gd",
|
||||
"res://tests/fixtures/p08-02/reader.gd",
|
||||
"res://tests/fixtures/p08-02/writer.gd",
|
||||
"res://tests/fixtures/p08-03/passive_placement.gd",
|
||||
"res://tests/fixtures/p08-03/placement.gd",
|
||||
"res://tests/fixtures/p23-03/diagnostic_stream.gd",
|
||||
"res://tests/fixtures/p23-03/layout_comparison.gd",
|
||||
"res://tests/fixtures/p23-03/observation.gd",
|
||||
"res://tests/fixtures/p23-03/passive_observation.gd",
|
||||
"res://tests/fixtures/p23-03/passive_os_recorder.gd",
|
||||
"res://tests/fixtures/pre_auto_purchase_runtime.gd",
|
||||
"res://tests/fixtures/pre_upkeep_runtime.gd",
|
||||
"res://tests/fixtures/required_kitchen_setup.gd",
|
||||
"res://tests/helpers/ui_audio_fixture_cleanup.gd",
|
||||
"res://tests/helpers/ui_audio_teardown.gd",
|
||||
"res://tests/mvp/test_amelia_donations.gd",
|
||||
"res://tests/mvp/test_anri_floor_pricing.gd",
|
||||
"res://tests/mvp/test_approved_free_unique_arrears.gd",
|
||||
"res://tests/mvp/test_chapel_boundaries.gd",
|
||||
"res://tests/mvp/test_chapel_service.gd",
|
||||
"res://tests/mvp/test_fine_cleaning_effect.gd",
|
||||
"res://tests/mvp/test_mvp_content_catalog.gd",
|
||||
"res://tests/mvp/test_operations_coordinator.gd",
|
||||
"res://tests/mvp/test_original_midnight_settlement.gd",
|
||||
"res://tests/mvp/test_original_room_zones.gd",
|
||||
"res://tests/mvp/test_pending_service_pricing_report.gd",
|
||||
"res://tests/mvp/test_premium_room.gd",
|
||||
"res://tests/mvp/test_premium_room_guest_flow.gd",
|
||||
"res://tests/mvp/test_progression_service.gd",
|
||||
"res://tests/mvp/test_runtime_content_progression.gd",
|
||||
"res://tests/mvp/test_runtime_mana_depletion.gd",
|
||||
"res://tests/mvp/test_runtime_operations_acceptance.gd",
|
||||
"res://tests/mvp/test_runtime_operations_integration.gd",
|
||||
"res://tests/mvp/test_runtime_upkeep.gd",
|
||||
"res://tests/mvp/test_staff_unique_contract_report.gd",
|
||||
"res://tests/mvp/test_tomari_floor_trouble.gd",
|
||||
"res://tests/mvp/test_unique_character_validation_policy.gd",
|
||||
"res://tests/mvp/test_upkeep_construction_boundaries.gd",
|
||||
"res://tests/mvp/test_upkeep_legacy_midnight.gd",
|
||||
"res://tests/mvp/test_upkeep_loss_streak.gd",
|
||||
"res://tests/performance/fixtures/linear_path_reference.gd",
|
||||
"res://tests/performance/fixtures/simulation_digest_v1_reference.gd",
|
||||
"res://tests/performance/fixtures/uncached_preview_reference.gd",
|
||||
"res://tests/performance/perf_mvp_001_harness.gd",
|
||||
"res://tests/performance/profile_production_scene.gd",
|
||||
"res://tests/performance/test_digest_performance.gd",
|
||||
"res://tests/performance/test_facility_reachability.gd",
|
||||
"res://tests/performance/test_lazy_digest.gd",
|
||||
"res://tests/performance/test_mvp_manifest_cache.gd",
|
||||
"res://tests/performance/test_path_membership.gd",
|
||||
"res://tests/performance/test_perf_mvp_001.gd",
|
||||
"res://tests/performance/test_snapshot_ownership.gd",
|
||||
"res://tests/performance/test_system_optimization.gd",
|
||||
"res://tests/performance/test_world_snapshot_cache.gd",
|
||||
"res://tests/run_tests.gd",
|
||||
"res://tests/s0/test_command_snapshot_key_order.gd",
|
||||
"res://tests/s0/test_command_transaction.gd",
|
||||
"res://tests/s0/test_definition_registry.gd",
|
||||
"res://tests/s0/test_determinism.gd",
|
||||
"res://tests/s0/test_domain_events.gd",
|
||||
"res://tests/s0/test_kernel_and_save.gd",
|
||||
"res://tests/s0/test_runtime_integration.gd",
|
||||
"res://tests/s0/test_stable_id_generator.gd",
|
||||
"res://tests/s1/test_construction_service.gd",
|
||||
"res://tests/s1/test_dimension_batch_save.gd",
|
||||
"res://tests/s1/test_excavation_service.gd",
|
||||
"res://tests/s1/test_facility_infrastructure_projector.gd",
|
||||
"res://tests/s1/test_facility_resize_preview.gd",
|
||||
"res://tests/s1/test_original_facility_dimensions.gd",
|
||||
"res://tests/s1/test_p08_combined_migration.gd",
|
||||
"res://tests/s1/test_path_congestion.gd",
|
||||
"res://tests/s1/test_path_service.gd",
|
||||
"res://tests/s1/test_path_snapshot_transit_guard.gd",
|
||||
"res://tests/s1/test_route_subslot_path_adapter.gd",
|
||||
"res://tests/s1/test_runtime_infrastructure_integration.gd",
|
||||
"res://tests/s1/test_runtime_world_construction.gd",
|
||||
"res://tests/s1/test_spatial_subslot_service.gd",
|
||||
"res://tests/s1/test_weighted_resize_runtime.gd",
|
||||
"res://tests/s1/test_world_service.gd",
|
||||
"res://tests/s2/test_economy_service.gd",
|
||||
"res://tests/s2/test_facility_pricing.gd",
|
||||
"res://tests/s2/test_facility_service.gd",
|
||||
"res://tests/s2/test_facility_upkeep_accrual.gd",
|
||||
"res://tests/s2/test_facility_upkeep_settlement.gd",
|
||||
"res://tests/s2/test_inventory_logistics.gd",
|
||||
"res://tests/s2/test_kitchen_production.gd",
|
||||
"res://tests/s2/test_ledger_backed_resources.gd",
|
||||
"res://tests/s2/test_mana_network_service.gd",
|
||||
"res://tests/s2/test_mana_power_projection.gd",
|
||||
"res://tests/s2/test_mana_reserve_balance.gd",
|
||||
"res://tests/s2/test_original_facility_parameters.gd",
|
||||
"res://tests/s2/test_runtime_operations_cycle.gd",
|
||||
"res://tests/s2/test_service_start_slots.gd",
|
||||
"res://tests/s3/test_guest_observation_restore_order.gd",
|
||||
"res://tests/s3/test_guest_service.gd",
|
||||
"res://tests/s3/test_runtime_actor_cycle.gd",
|
||||
"res://tests/s3/test_runtime_actor_hardening.gd",
|
||||
"res://tests/s3/test_runtime_path_traffic.gd",
|
||||
"res://tests/s3/test_runtime_staff_assignment.gd",
|
||||
"res://tests/s3/test_staff_payroll_operations.gd",
|
||||
"res://tests/s3/test_staff_service.gd",
|
||||
"res://tests/s4/test_placement_risk_preview_service.gd",
|
||||
"res://tests/s4/test_relationship_event_service.gd",
|
||||
"res://tests/s4/test_runtime_relationship_events.gd",
|
||||
"res://tests/s5/test_authority_service.gd",
|
||||
"res://tests/s5/test_defense_service.gd",
|
||||
"res://tests/s5/test_runtime_authority_cycle.gd",
|
||||
"res://tests/s5/test_runtime_defense_autonomy.gd",
|
||||
"res://tests/s5/test_runtime_defense_cycle.gd",
|
||||
"res://tests/s5/test_runtime_event_defense.gd",
|
||||
"res://tests/s6/test_performance_budget.gd",
|
||||
"res://tests/s6/test_runtime_save_lifecycle.gd",
|
||||
"res://tests/s6/test_runtime_snapshot_serialization.gd",
|
||||
"res://tests/s6/test_save_operations.gd",
|
||||
"res://tests/s6/test_save_preflight.gd",
|
||||
"res://tests/s6/test_save_recovery_preservation.gd",
|
||||
"res://tests/staff/test_dormitory_dimension_migration.gd",
|
||||
"res://tests/staff/test_dormitory_shift_cycle.gd",
|
||||
"res://tests/staff/test_rescue_elevator.gd",
|
||||
"res://tests/staff/test_shift_rush.gd",
|
||||
"res://tests/staff/test_staff_commute.gd",
|
||||
"res://tests/staff/test_staff_dormitory.gd",
|
||||
"res://tests/staff/test_staff_rescue.gd",
|
||||
"res://tests/staff/test_staff_rest.gd",
|
||||
"res://tests/staff/test_task_work_clock.gd",
|
||||
"res://tests/supply/test_mimi_purchase_quote.gd",
|
||||
"res://tests/supply/test_normal_auto_purchase_chain.gd",
|
||||
"res://tests/supply/test_normal_supply_chain.gd",
|
||||
"res://tests/supply/test_supply_auto_purchase.gd",
|
||||
"res://tests/supply/test_supply_auto_purchase_boundaries.gd",
|
||||
"res://tests/supply/test_supply_auto_purchase_destruction.gd",
|
||||
"res://tests/supply/test_supply_logistics_bridge.gd",
|
||||
"res://tests/supply/test_supply_management_service.gd",
|
||||
"res://tests/supply/test_supply_save_migration.gd",
|
||||
"res://tests/transport/test_elevator_service.gd",
|
||||
"res://tests/transport/test_runtime_build_preview.gd",
|
||||
"res://tests/transport/test_runtime_stairs.gd",
|
||||
"res://tests/transport/test_runtime_transport.gd",
|
||||
"res://tests/transport/test_runtime_transport_comparison.gd",
|
||||
"res://tests/transport/test_transport_boundaries.gd",
|
||||
"res://tests/transport/test_transport_comparison.gd",
|
||||
"res://tests/transport/test_transport_density_migration.gd",
|
||||
"res://tests/transport/test_transport_save.gd",
|
||||
"res://tests/ui/capture_main_dashboard.gd",
|
||||
"res://tests/ui/capture_pixel_tower.gd",
|
||||
"res://tests/ui/fixtures/counted_dashboard.gd",
|
||||
"res://tests/ui/fixtures/opening_restart_flow.gd",
|
||||
"res://tests/ui/fixtures/selection_cross_process.gd",
|
||||
"res://tests/ui/test_actor_selection.gd",
|
||||
"res://tests/ui/test_anri_recruitment.gd",
|
||||
"res://tests/ui/test_approved_free_unique_arrears_ui.gd",
|
||||
"res://tests/ui/test_business_management.gd",
|
||||
"res://tests/ui/test_chapel_gameplay.gd",
|
||||
"res://tests/ui/test_cleaning_gameplay.gd",
|
||||
"res://tests/ui/test_dashboard_coalescing.gd",
|
||||
"res://tests/ui/test_defense_management.gd",
|
||||
"res://tests/ui/test_dimension_migration_ui.gd",
|
||||
"res://tests/ui/test_elevator_management.gd",
|
||||
"res://tests/ui/test_event_log_ui.gd",
|
||||
"res://tests/ui/test_first_operating_day.gd",
|
||||
"res://tests/ui/test_guest_decision_log.gd",
|
||||
"res://tests/ui/test_guest_observation.gd",
|
||||
"res://tests/ui/test_layer_presentation.gd",
|
||||
"res://tests/ui/test_layer_skin.gd",
|
||||
"res://tests/ui/test_main_audio_feedback.gd",
|
||||
"res://tests/ui/test_main_dashboard.gd",
|
||||
"res://tests/ui/test_opening_assignment.gd",
|
||||
"res://tests/ui/test_original_build_pointer.gd",
|
||||
"res://tests/ui/test_original_facility_controls.gd",
|
||||
"res://tests/ui/test_p08_normal_placement_ops.gd",
|
||||
"res://tests/ui/test_p23_life_observation.gd",
|
||||
"res://tests/ui/test_paired_bgm.gd",
|
||||
"res://tests/ui/test_pixel_tower.gd",
|
||||
"res://tests/ui/test_rank_pointer.gd",
|
||||
"res://tests/ui/test_room_presentation.gd",
|
||||
"res://tests/ui/test_selection_autosave.gd",
|
||||
"res://tests/ui/test_selection_departure.gd",
|
||||
"res://tests/ui/test_selection_lifecycle.gd",
|
||||
"res://tests/ui/test_staff_management.gd",
|
||||
"res://tests/ui/test_staff_rescue.gd",
|
||||
"res://tests/ui/test_staff_rest.gd",
|
||||
"res://tests/ui/test_stair_transport_details.gd",
|
||||
"res://tests/ui/test_supply_auto_purchase_ui.gd",
|
||||
"res://tests/ui/test_supply_management.gd",
|
||||
"res://tests/ui/test_ui_audio_feedback.gd",
|
||||
"res://tests/ui/test_ui_presentation_audio_contract.gd",
|
||||
"res://tests/ui/test_upkeep_closed_ui.gd",
|
||||
"res://tests/ui/test_upkeep_inspector.gd",
|
||||
"res://tests/ui/test_world_tree_rank.gd",
|
||||
"res://tests/world/test_elevator_topology.gd",
|
||||
"res://tests/world/test_legacy_stairs.gd",
|
||||
"res://tests/world/test_path_transit_density.gd",
|
||||
"res://tests/world/test_path_vertical_policy.gd",
|
||||
"res://tests/world/test_stair_infrastructure.gd",
|
||||
"res://tools/capture_facility_audit.gd"
|
||||
]
|
||||
+252
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"scope": "frozen checker before independent visual verdicts; preparation only",
|
||||
"candidate": "49445d4a4d38281eb29dab1c1f85dd2b8ffbed11",
|
||||
"checker_sha256": "927f8f63eef7d55c4a9f96783e7240adb05ad236c9252dd8b9e27e9beb996683",
|
||||
"elapsed_seconds": 269.671074125,
|
||||
"deficits": [
|
||||
"missing actual OS A semantic/pixel coverage: room",
|
||||
"missing actual OS A semantic/pixel coverage: queue",
|
||||
"missing actual OS A semantic/pixel coverage: EV",
|
||||
"missing actual OS A semantic/pixel coverage: staff",
|
||||
"missing actual OS A semantic/pixel coverage: goods",
|
||||
"missing actual OS A semantic/pixel coverage: business",
|
||||
"missing actual OS B semantic/pixel coverage: room",
|
||||
"missing actual OS B semantic/pixel coverage: queue",
|
||||
"missing actual OS B semantic/pixel coverage: EV",
|
||||
"missing actual OS B semantic/pixel coverage: staff",
|
||||
"missing actual OS B semantic/pixel coverage: goods",
|
||||
"missing actual OS B semantic/pixel coverage: business",
|
||||
"room_occupancy_and_operation: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"queues_and_overflow: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"elevator_state_and_passengers: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"staff_state_and_jobs: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"supplies_and_carried_goods: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"same_demand_route_improvement: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}",
|
||||
"normal_os_and_distinct_pid_resume: {\"room\": [\"os_guards\", \"pixels_room\"], \"queue\": [\"os_guards\", \"pixels_queue\"], \"EV\": [\"os_guards\", \"pixels_EV\"], \"staff\": [\"os_guards\", \"pixels_staff\"], \"goods\": [\"os_guards\", \"pixels_goods\"], \"business\": [\"os_guards\", \"pixels_business\"]}"
|
||||
],
|
||||
"uncaught_error": null,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"error": null,
|
||||
"cleanup": [
|
||||
{
|
||||
"pid": 15998,
|
||||
"cleanup": {
|
||||
"owned_child_created": true,
|
||||
"engine_ended": true,
|
||||
"actual_process_exit_code": 0,
|
||||
"attempts": [
|
||||
{
|
||||
"attempt": 1,
|
||||
"kill_attempted": false,
|
||||
"wait_timeout_seconds": 5,
|
||||
"wait_completed": true,
|
||||
"errors": [],
|
||||
"poll_before": 0,
|
||||
"wait_returned_code": 0,
|
||||
"poll_after": 0
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
},
|
||||
"outer_cleanup_errors": [],
|
||||
"engine_ended": true,
|
||||
"outer_maximum_helper_invocations": 3,
|
||||
"helper_maximum_waits": 3,
|
||||
"per_wait_timeout_seconds": 5,
|
||||
"foreign_process_or_group_signals": 0
|
||||
},
|
||||
{
|
||||
"pid": 16095,
|
||||
"cleanup": {
|
||||
"owned_child_created": true,
|
||||
"engine_ended": true,
|
||||
"actual_process_exit_code": 0,
|
||||
"attempts": [
|
||||
{
|
||||
"attempt": 1,
|
||||
"kill_attempted": false,
|
||||
"wait_timeout_seconds": 5,
|
||||
"wait_completed": true,
|
||||
"errors": [],
|
||||
"poll_before": 0,
|
||||
"wait_returned_code": 0,
|
||||
"poll_after": 0
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
},
|
||||
"outer_cleanup_errors": [],
|
||||
"engine_ended": true,
|
||||
"outer_maximum_helper_invocations": 3,
|
||||
"helper_maximum_waits": 3,
|
||||
"per_wait_timeout_seconds": 5,
|
||||
"foreign_process_or_group_signals": 0
|
||||
},
|
||||
{
|
||||
"pid": 16134,
|
||||
"cleanup": {
|
||||
"owned_child_created": true,
|
||||
"engine_ended": true,
|
||||
"actual_process_exit_code": 0,
|
||||
"attempts": [
|
||||
{
|
||||
"attempt": 1,
|
||||
"kill_attempted": false,
|
||||
"wait_timeout_seconds": 5,
|
||||
"wait_completed": true,
|
||||
"errors": [],
|
||||
"poll_before": 0,
|
||||
"wait_returned_code": 0,
|
||||
"poll_after": 0
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
},
|
||||
"outer_cleanup_errors": [],
|
||||
"engine_ended": true,
|
||||
"outer_maximum_helper_invocations": 3,
|
||||
"helper_maximum_waits": 3,
|
||||
"per_wait_timeout_seconds": 5,
|
||||
"foreign_process_or_group_signals": 0
|
||||
},
|
||||
{
|
||||
"pid": 16228,
|
||||
"cleanup": {
|
||||
"owned_child_created": true,
|
||||
"engine_ended": true,
|
||||
"actual_process_exit_code": 0,
|
||||
"attempts": [
|
||||
{
|
||||
"attempt": 1,
|
||||
"kill_attempted": false,
|
||||
"wait_timeout_seconds": 5,
|
||||
"wait_completed": true,
|
||||
"errors": [],
|
||||
"poll_before": 0,
|
||||
"wait_returned_code": 0,
|
||||
"poll_after": 0
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
},
|
||||
"outer_cleanup_errors": [],
|
||||
"engine_ended": true,
|
||||
"outer_maximum_helper_invocations": 3,
|
||||
"helper_maximum_waits": 3,
|
||||
"per_wait_timeout_seconds": 5,
|
||||
"foreign_process_or_group_signals": 0
|
||||
}
|
||||
],
|
||||
"cleanup_errors": [],
|
||||
"phases": [
|
||||
"runs/import/import-receipt.json",
|
||||
"runs/parse/parse-receipt.json",
|
||||
"runs/layout-a/layout-a-receipt.json",
|
||||
"runs/layout-b/layout-b-receipt.json"
|
||||
],
|
||||
"formal_acceptance": false,
|
||||
"native_Windows": "pending"
|
||||
}
|
||||
+4925
File diff suppressed because it is too large
Load Diff
+19
@@ -0,0 +1,19 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-cold-r06.py',run_name='offload_library'))
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());roots=m['roots'];rows=m['members'];p=json.loads((D/'PREPARED.json').read_bytes());v=json.loads((D/'CLOUD_ARCHIVE_VERIFIED.json').read_bytes());src=json.loads((D/'SOURCE_RECHECK.json').read_bytes())
|
||||
assert v['actual_cloud_readback']and v['whole_archive_sha256']==p['sha256']and v['original_file_mappings_verified']==m['files'];assert src['all_sources_unchanged']and src['manifest_sha256']==sha(D/'MANIFEST.json')and time.time()-src['recorded_unix']<3600
|
||||
for name in ['MANIFEST.json','PREPARED.json','CLOUD_PARTS.json','CLOUD_ARCHIVE_VERIFIED.json','RESTORE.md','restore.py']:
|
||||
r=json.loads((D/('READBACK-'+name+'.json')).read_bytes());assert r['actual_cloud_readback_verified']and r['sha256']==sha(D/name)
|
||||
assert not(D/'RETIREMENT.json').exists();idle()
|
||||
for x in rows:
|
||||
q=B/x['path'];st=q.lstat();assert not q.is_symlink()and (q.is_file()if x['type']=='file'else q.is_dir());assert st.st_mtime_ns==x['mtime_ns']and st.st_mode&0o7777==x['mode'];assert x['type']!='file'or st.st_size==x['bytes']
|
||||
for q in [Path(p['archive']),T/'cloud-readback.tar.gz']:assert q.stat().st_size==p['bytes']and sha(q)==p['sha256']
|
||||
free=shutil.disk_usage(R).free;save(D/'RETIREMENT_INTENT.json',dict(unix=time.time(),manifest_sha256=sha(D/'MANIFEST.json'),whole_archive_sha256=p['sha256'],full_cloud_content_verified=True,all_sources_rehashed_and_stat_rechecked=True,active_jobs_and_open_files_zero=True,files=m['files'],roots=roots))
|
||||
for x in rows:
|
||||
if x['type']=='file':(B/x['path']).unlink()
|
||||
for x in sorted(rows,key=lambda x:len(Path(x['path']).parts),reverse=True):
|
||||
if x['type']=='directory':(B/x['path']).rmdir()
|
||||
for s in roots:
|
||||
root=B/s;assert not root.exists();pointer=root.parent/(root.name+'.CLOUD_ARCHIVE_R06.json');assert not pointer.exists();save(pointer,dict(state='cloud_archived',original_root=str(root),folder_url='https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK',cloud_parts=str(D/'CLOUD_PARTS.json'),restore=str(D/'RESTORE.md'),whole_archive_sha256=p['sha256'],source_and_current_canonical_build_evidence_retained=True,formal_credit=0))
|
||||
for q in [Path(p['archive']),T/'cloud-readback.tar.gz']:q.unlink()
|
||||
res=dict(recorded_unix=time.time(),files=m['files'],roots=roots,logical_bytes=m['logical_bytes'],unique_bytes=m['unique_bytes'],cloud_archive_bytes=p['bytes'],free_before_selection=m['free_before'],free_before_retirement=free,free_after=shutil.disk_usage(R).free,net_free_change_from_selection=shutil.disk_usage(R).free-m['free_before'],actual_cloud_readback_all_payloads_verified=True,retired_only_manifest_members=True,current_sources_build_evidence_run_records_review_results_retained=True,temporary_archives_removed_after_verification=True,formal_credit=0)
|
||||
save(D/'RETIREMENT.json',res);print(json.dumps(res),flush=True)
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-cold-r06.py',run_name='offload_library'))
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());idle();assert inv()==m['members'];save(D/'SOURCE_RECHECK.json',dict(recorded_unix=time.time(),all_sources_unchanged=True,manifest_sha256=sha(D/'MANIFEST.json')));print('All 14,259 source files rehashed and unchanged',flush=True)
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
globals().update(__import__('runpy').run_path('/private/tmp/tree-offload-cold-r06.py',run_name='offload_library'))
|
||||
p=json.loads((D/'PREPARED.json').read_bytes());m=json.loads((D/'MANIFEST.json').read_bytes());a=T/'cloud-readback.tar.gz';parts=[json.loads((T/f'cloud-{i:04d}.json').read_bytes())for i in range(4)];assert all(x['actual_cloud_readback_verified']for x in parts)
|
||||
assert a.stat().st_size==p['bytes']==sum(x['bytes']for x in parts) and sha(a)==p['sha256'];objs={x['sha256']:x for x in m['members']if x['type']=='file'};seen=set()
|
||||
with tarfile.open(a,'r|gz')as t:
|
||||
for e in t:
|
||||
assert e.isfile() and e.name not in seen;seen.add(e.name)
|
||||
with t.extractfile(e)as f:
|
||||
if e.name=='MANIFEST.json':assert f.read()==(D/'MANIFEST.json').read_bytes()
|
||||
else:
|
||||
assert e.name.startswith('objects/');h=e.name[8:];assert h in objs and e.size==objs[h]['bytes'];v=hashlib.sha256()
|
||||
for b in iter(lambda:f.read(1024**2),b''):v.update(b)
|
||||
assert v.hexdigest()==h
|
||||
assert seen=={'MANIFEST.json'}|{'objects/'+h for h in objs}
|
||||
save(D/'CLOUD_PARTS.json',parts);save(D/'CLOUD_ARCHIVE_VERIFIED.json',dict(actual_cloud_readback=True,whole_archive_sha256=sha(a),bytes=a.stat().st_size,all_unique_payloads_verified=len(objs),original_file_mappings_verified=m['files'],manifest_identical=True,formal_credit=0));print('Complete cloud archive and all 14,259 file mappings verified',flush=True)
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
from pathlib import Path
|
||||
import os,json,hashlib,tarfile,io,shutil,time,subprocess,sqlite3
|
||||
R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');B=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-r06-20261015';T=Path('/private/tmp/tree-offload-cold-r06')
|
||||
roots=['p23-03-native-os-49445d4-r13','p08-runtime-preview-8d52b20-target-r02/stage','p08-runtime-preview-78dc82d-targeted-r01/stage','p08-runtime-preview-12f04d6-target-impact-r03/stage']
|
||||
def sha(p):
|
||||
h=hashlib.sha256()
|
||||
with p.open('rb')as f:
|
||||
for b in iter(lambda:f.read(1024**2),b''):h.update(b)
|
||||
return h.hexdigest()
|
||||
def save(p,v):p.write_text(json.dumps(v,ensure_ascii=False,indent=2)+'\n')
|
||||
def idle():
|
||||
ps=subprocess.check_output(['ps','-axo','pid,command'],text=True);opened=subprocess.run(['lsof','-n','-F','n'],capture_output=True,text=True).stdout
|
||||
for s in roots:
|
||||
assert not any(str(B/s)in x for x in ps.splitlines());assert not any(x.startswith('n'+str(B/s)+'/')for x in opened.splitlines());assert not subprocess.check_output(['git','-C',str(R),'ls-files','--',str(B/s)],text=True).strip()
|
||||
def inv():
|
||||
rows=[]
|
||||
for s in roots:
|
||||
p=B/s;assert p.is_dir()and not p.is_symlink()
|
||||
for x in [p]+sorted(p.rglob('*')):
|
||||
st=x.lstat();assert not x.is_symlink()and(x.is_file()or x.is_dir()),str(x);v=dict(path=str(x.relative_to(B)),type='file'if x.is_file()else'directory',mode=st.st_mode&0o7777,mtime_ns=st.st_mtime_ns)
|
||||
if x.is_file():v.update(bytes=st.st_size,sha256=sha(x),allocated=st.st_blocks*512)
|
||||
rows.append(v)
|
||||
return rows
|
||||
if __name__=='__main__':
|
||||
assert not D.exists()and not T.exists();D.mkdir();T.mkdir();idle();free=shutil.disk_usage(R).free;rows=inv();objs={x['sha256']:x for x in rows if x['type']=='file'};m=dict(base=str(B),roots=roots,members=rows,files=sum(x['type']=='file'for x in rows),logical_bytes=sum(x.get('bytes',0)for x in rows),unique_bytes=sum(x['bytes']for x in objs.values()),free_before=free,created=time.time(),scope='Superseded P23 49445d4 r13 diagnostic including its failed original12 observations, plus three older P08 runtime-preview stage copies; P23 held9a26 and P08 currentd369 and all P18 sources/proofs retained; no acceptance change',formal_credit=0);save(D/'MANIFEST.json',m);assert free>m['unique_bytes']+512*1024**2
|
||||
a=T/'cold-r06.tar.gz'
|
||||
with tarfile.open(a,'w:gz',compresslevel=6)as t:
|
||||
for h,x in sorted(objs.items()):
|
||||
assert shutil.disk_usage(R).free>1024**3;t.add(B/x['path'],arcname='objects/'+h,recursive=False)
|
||||
v=(D/'MANIFEST.json').read_bytes();e=tarfile.TarInfo('MANIFEST.json');e.size=len(v);t.addfile(e,io.BytesIO(v))
|
||||
seen=set()
|
||||
with tarfile.open(a,'r|gz')as t:
|
||||
for e in t:
|
||||
assert e.isfile()and e.name not in seen;seen.add(e.name)
|
||||
with t.extractfile(e)as f:
|
||||
if e.name=='MANIFEST.json':assert f.read()==(D/'MANIFEST.json').read_bytes()
|
||||
else:
|
||||
h=e.name[8:];assert e.name.startswith('objects/')and h in objs and e.size==objs[h]['bytes'];v=hashlib.sha256()
|
||||
for b in iter(lambda:f.read(1024**2),b''):v.update(b)
|
||||
assert v.hexdigest()==h
|
||||
assert seen=={'MANIFEST.json'}|{'objects/'+h for h in objs};save(D/'PREPARED.json',dict(archive=str(a),bytes=a.stat().st_size,sha256=sha(a),all_members_verified=True,unique_payloads=len(objs)));print(json.dumps(dict(files=m['files'],logical_bytes=m['logical_bytes'],unique_bytes=m['unique_bytes'],archive_bytes=a.stat().st_size)),flush=True)
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"whole_archive_sha256": "f2df2e09202e12b38e8ea29529ec2191fde7d626b4e72b45df8458d86dcd0a8d",
|
||||
"bytes": 116267401,
|
||||
"all_unique_payloads_verified": 2127,
|
||||
"original_file_mappings_verified": 36328,
|
||||
"manifest_identical": true,
|
||||
"actual_cloud_readback": true,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
[
|
||||
{
|
||||
"order": 0,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0000",
|
||||
"bytes": 33554432,
|
||||
"sha256": "8206248a3039eeaece428eb7d485177c301f98dae6a01c6686e9805b2dfe2c03",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "149Z-A_PlFo5M0_LIwsyJnpS9R_cczQwF",
|
||||
"title": "cold-stages-r03.tar.gz.part-0000",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/149Z-A_PlFo5M0_LIwsyJnpS9R_cczQwF/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "149Z-A_PlFo5M0_LIwsyJnpS9R_cczQwF",
|
||||
"title": "cold-stages-r03.tar.gz.part-0000",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0000",
|
||||
"mime_type": "application/x-gzip",
|
||||
"url": "https://drive.google.com/file/d/149Z-A_PlFo5M0_LIwsyJnpS9R_cczQwF/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"readback_sha256": "8206248a3039eeaece428eb7d485177c301f98dae6a01c6686e9805b2dfe2c03",
|
||||
"readback_bytes": 33554432,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0001",
|
||||
"bytes": 33554432,
|
||||
"sha256": "46e1a88b593212442899be5f38f40637a24a973ca580dfa7f3ecee65c46991dc",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1dnOLHwwTkmReV_BEx2ptDobmpcty572H",
|
||||
"title": "cold-stages-r03.tar.gz.part-0001",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1dnOLHwwTkmReV_BEx2ptDobmpcty572H/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1dnOLHwwTkmReV_BEx2ptDobmpcty572H",
|
||||
"title": "cold-stages-r03.tar.gz.part-0001",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0001",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1dnOLHwwTkmReV_BEx2ptDobmpcty572H/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"readback_sha256": "46e1a88b593212442899be5f38f40637a24a973ca580dfa7f3ecee65c46991dc",
|
||||
"readback_bytes": 33554432,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0002",
|
||||
"bytes": 33554432,
|
||||
"sha256": "366eccfda24086d0cb0b386669838e92645c15e23719b3f2cd7db06e0e00c3c4",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1LnIGzSKyXqwxGV2EFhM4CfUy9krQSTp9",
|
||||
"title": "cold-stages-r03.tar.gz.part-0002",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1LnIGzSKyXqwxGV2EFhM4CfUy9krQSTp9/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1LnIGzSKyXqwxGV2EFhM4CfUy9krQSTp9",
|
||||
"title": "cold-stages-r03.tar.gz.part-0002",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0002",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1LnIGzSKyXqwxGV2EFhM4CfUy9krQSTp9/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"readback_sha256": "366eccfda24086d0cb0b386669838e92645c15e23719b3f2cd7db06e0e00c3c4",
|
||||
"readback_bytes": 33554432,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0003",
|
||||
"bytes": 15604105,
|
||||
"sha256": "ef477319e3f2036874ab9c4de069ce055bff1bf45b746100c442d7c808008ad8",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1DI9jSB5yGlzJpXC1H6tLUhqqQ8eQM8Ga",
|
||||
"title": "cold-stages-r03.tar.gz.part-0003",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1DI9jSB5yGlzJpXC1H6tLUhqqQ8eQM8Ga/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1DI9jSB5yGlzJpXC1H6tLUhqqQ8eQM8Ga",
|
||||
"title": "cold-stages-r03.tar.gz.part-0003",
|
||||
"file_name": "cold-stages-r03.tar.gz.part-0003",
|
||||
"mime_type": "application/octet-stream",
|
||||
"url": "https://drive.google.com/file/d/1DI9jSB5yGlzJpXC1H6tLUhqqQ8eQM8Ga/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"readback_sha256": "ef477319e3f2036874ab9c4de069ce055bff1bf45b746100c442d7c808008ad8",
|
||||
"readback_bytes": 15604105,
|
||||
"verified": true
|
||||
}
|
||||
]
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"recorded_at": "2026-10-15T11:00:52.041589+00:00",
|
||||
"recorded_unix": 1792061992.562457,
|
||||
"files": 36328,
|
||||
"logical_bytes": 1833310564,
|
||||
"allocated_sum": 1949585408,
|
||||
"cloud_archive_bytes": 116267401,
|
||||
"free_before_selection": 3406475264,
|
||||
"free_before_retirement": 2905726976,
|
||||
"free_after": 3991207936,
|
||||
"original_files_and_parent_evidence_reverified": true,
|
||||
"actual_cloud_readback_all_payloads_verified": true,
|
||||
"retired_only_manifest_members": true,
|
||||
"temporary_archives_removed_after_verification": true,
|
||||
"roots": [
|
||||
"p05-acceptance-partial-r06/stages",
|
||||
"p23-03-native-impact-19fc3f5-r01/stage",
|
||||
"p23-03-component-impact-19fc3f5-r01/stage",
|
||||
"p23-03-final-regression-49445d4-r01/stage",
|
||||
"p08-03-native-os-r09/stage",
|
||||
"p08-03-native-os-fd643f5-r10/stage",
|
||||
"p08-03-native-f5f85ae-r16/stage",
|
||||
"p08-03-final-regression-f5f85ae-r01/stage",
|
||||
"p08-03-final-regression-fd643f5-r01/stage",
|
||||
"p03-midpoint-restart-r03/stages",
|
||||
"p03-midpoint-restart-r04/stages",
|
||||
"p03-midpoint-restart-r05/stages",
|
||||
"p03-formal13-ui-to14-final-r01/stages",
|
||||
"p03-formal13-ui-to14-final-r02/stages"
|
||||
],
|
||||
"formal_credit": 0,
|
||||
"current_free_bytes": 4061999104,
|
||||
"net_observed_free_increase_bytes": 655523840,
|
||||
"protected_current_proof": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated/index.json",
|
||||
"sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17/index.json",
|
||||
"sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01/runner-ended.json",
|
||||
"sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-native-os-49445d4-r13/index.json",
|
||||
"sha256": "c0cc9e939845b5f3ae8375d414327821eb75c3e5f5158ae32eb872eda1b99a03",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-03-final-regression-9a26f9a-r01/runner-ended.json",
|
||||
"sha256": "dfd4187b1c3d2869deacb57c95e41af8b698f70663452fd6e27dc154683f5856",
|
||||
"unchanged": true
|
||||
}
|
||||
],
|
||||
"workers": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p23-03-code/P23-03-implement",
|
||||
"sha": "9a26f9ab8c6691ba3cbe32ac4bc4525f4a9c7106",
|
||||
"clean": true
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p13-03/P13-03-implement",
|
||||
"sha": "bd3a97ec741ddb2346d0c2b2e0472c978927ce82",
|
||||
"clean": true
|
||||
}
|
||||
],
|
||||
"sharing_changed": false,
|
||||
"cloud_folder_url": "https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"note": "Original logical bytes and allocated sum are not physical free-space gain. APFS shared extents and concurrent OS changes affect the measured net increase. Prior offload totals are historical and are not counted as this batch."
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
# 証跡退避・追加実施結果
|
||||
|
||||
Drive退避先: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
- 今回追加: 旧版検証ソース複製14か所、36,328ファイル、1,833,310,564バイト。現行候補・実装作業場所・試験結果・画像・保存・終了記録は保持。
|
||||
- SHA-256による重複排除後2,127データ。Driveの圧縮アーカイブ116,267,401バイト、4分割。
|
||||
- 全4片の実ダウンロード、全体SHA、全2,127内部データ、全36,328ファイル対応表を検証。復元資料5点も実ダウンロードで一致。元ファイル全件を削除直前に再照合し、manifestにあるファイルだけを削除。
|
||||
- 作業前の空き3,406,475,264バイト → 最終実測4,061,999,104バイト(3.78GiB)。観測純増0.656GB。APFS共有領域・OSの並行変化があるため、論理退避量を空き増加として扱わない。
|
||||
- P08と旧P23の保護4点、最新9a26f9a全回帰終了記録の固定SHAが一致。P13/P23の実装作業場所は同じコミットでclean。
|
||||
- 各元フォルダにCLOUD_STAGE_ARCHIVE_R03.jsonを保持。Driveの分割順・SHAはCLOUD_PARTS.json、復元はRESTORE.mdとrestore.pyを使用。後日、旧stageを再実行する場合だけ復元する。
|
||||
- 過去の20バッチ・約11.68GB退避とは分けた追加記録。今回のゲーム成果単位の完了加点は0。
|
||||
+342689
File diff suppressed because it is too large
Load Diff
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"format": "content-addressed-tar-v1",
|
||||
"archive": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz",
|
||||
"archive_bytes": 116267401,
|
||||
"archive_sha256": "f2df2e09202e12b38e8ea29529ec2191fde7d626b4e72b45df8458d86dcd0a8d",
|
||||
"parts": [
|
||||
{
|
||||
"order": 0,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0000",
|
||||
"bytes": 33554432,
|
||||
"sha256": "8206248a3039eeaece428eb7d485177c301f98dae6a01c6686e9805b2dfe2c03"
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0001",
|
||||
"bytes": 33554432,
|
||||
"sha256": "46e1a88b593212442899be5f38f40637a24a973ca580dfa7f3ecee65c46991dc"
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0002",
|
||||
"bytes": 33554432,
|
||||
"sha256": "366eccfda24086d0cb0b386669838e92645c15e23719b3f2cd7db06e0e00c3c4"
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"path": "/private/tmp/tree-offload-cold-stage-r03/cold-stages-r03.tar.gz.part-0003",
|
||||
"bytes": 15604105,
|
||||
"sha256": "ef477319e3f2036874ab9c4de069ce055bff1bf45b746100c442d7c808008ad8"
|
||||
}
|
||||
],
|
||||
"unique_payloads": 2127,
|
||||
"source_unchanged": true,
|
||||
"all_members_verified": true
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"file": "CLOUD_PARTS.json",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Lkbpz9eEinYiS0uEYnal11HsetSleDoH",
|
||||
"title": "cold-stages-r03-CLOUD_PARTS.json",
|
||||
"file_name": "cold-stages-r03-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1Lkbpz9eEinYiS0uEYnal11HsetSleDoH/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Lkbpz9eEinYiS0uEYnal11HsetSleDoH",
|
||||
"title": "cold-stages-r03-CLOUD_PARTS.json",
|
||||
"file_name": "cold-stages-r03-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1Lkbpz9eEinYiS0uEYnal11HsetSleDoH/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"bytes": 5075,
|
||||
"sha256": "88beaaf600f462d5ae36756002004ada03e234a042b57c6b2800d7c86f251a54",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"file": "MANIFEST.json",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1NsbB3PEp0DVGiwVpamp6unfmlLN48s74",
|
||||
"title": "cold-stages-r03-MANIFEST.json",
|
||||
"file_name": "cold-stages-r03-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1NsbB3PEp0DVGiwVpamp6unfmlLN48s74/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1NsbB3PEp0DVGiwVpamp6unfmlLN48s74",
|
||||
"title": "cold-stages-r03-MANIFEST.json",
|
||||
"file_name": "cold-stages-r03-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1NsbB3PEp0DVGiwVpamp6unfmlLN48s74/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"bytes": 12535524,
|
||||
"sha256": "78bfddcaa7c3ab85861fe4ef82babb262bcd4a01dfb192a93dec9d5d057ff444",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"file": "PREPARED.json",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1OW7SXiEgLyX0iidGbf0DvvLWBXHd5ITH",
|
||||
"title": "cold-stages-r03-PREPARED.json",
|
||||
"file_name": "cold-stages-r03-PREPARED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1OW7SXiEgLyX0iidGbf0DvvLWBXHd5ITH/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1OW7SXiEgLyX0iidGbf0DvvLWBXHd5ITH",
|
||||
"title": "cold-stages-r03-PREPARED.json",
|
||||
"file_name": "cold-stages-r03-PREPARED.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1OW7SXiEgLyX0iidGbf0DvvLWBXHd5ITH/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"bytes": 1265,
|
||||
"sha256": "0152096318fd652956372c2a8642f651f4b772f339b8c0b3d25b3192e431edfb",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"file": "RESTORE.md",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Z53G1Q4nsCodIrQGCLI6kLfzcqO3AK6i",
|
||||
"title": "cold-stages-r03-RESTORE.md",
|
||||
"file_name": "cold-stages-r03-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1Z53G1Q4nsCodIrQGCLI6kLfzcqO3AK6i/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1Z53G1Q4nsCodIrQGCLI6kLfzcqO3AK6i",
|
||||
"title": "cold-stages-r03-RESTORE.md",
|
||||
"file_name": "cold-stages-r03-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1Z53G1Q4nsCodIrQGCLI6kLfzcqO3AK6i/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"bytes": 1275,
|
||||
"sha256": "0ef45440cbf1ba633d979796e3aa70a0212c65918de4a882d5968115c0bb094a",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"file": "restore.py",
|
||||
"cloud": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "10V61yHrC2yXJgU5FfevVg5vBsWx1leBu",
|
||||
"title": "cold-stages-r03-restore.py",
|
||||
"file_name": "cold-stages-r03-restore.py",
|
||||
"mime_type": "text/plain",
|
||||
"url": "https://drive.google.com/file/d/10V61yHrC2yXJgU5FfevVg5vBsWx1leBu/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "10V61yHrC2yXJgU5FfevVg5vBsWx1leBu",
|
||||
"title": "cold-stages-r03-restore.py",
|
||||
"file_name": "cold-stages-r03-restore.py",
|
||||
"mime_type": "text/plain",
|
||||
"url": "https://drive.google.com/file/d/10V61yHrC2yXJgU5FfevVg5vBsWx1leBu/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"bytes": 1288,
|
||||
"sha256": "9e5fae33042236e7c863931f6731c8867d89c075d14d28fd45571ee844ccdc4f",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
# 旧版検証用ソース複製14か所の復元
|
||||
|
||||
Driveの既存非公開退避フォルダ: https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK
|
||||
|
||||
CLOUD_PARTS.jsonのorder順に各ファイルをダウンロードし、各partのbytesとsha256を確認する。数値順にバイト連結したcold-stages-r03.tar.gz全体をPREPARED.jsonのarchive_sha256と照合する。このアーカイブは内容アドレス方式で、MANIFEST.jsonとobjects/<SHA-256>を含む。直接tar展開しただけでは元のstage構成にならない。
|
||||
|
||||
同梱restore.pyを `python3 restore.py cold-stages-r03.tar.gz /復元先` で実行する。元に戻す場合の復元先は制作リポジトリのartifacts/original-completion-2026-10-02。既存ファイルへの上書きは拒否する。空の別ディレクトリを使えば安全に復元を確認できる。全ファイルのSHA・サイズを照合し、パス・権限・更新日時を復元する。
|
||||
|
||||
対象はMANIFEST.jsonに列挙した旧検証stage/stagesのみ。実行結果・画像・保存・終了記録・現行作業場所・現行候補の証拠は残す。旧版のstageを使う再実行は、復元を完了してから行う。退避によるゲーム完成の加点はない。
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"recorded_unix": 1792061992.562457,
|
||||
"files": 36328,
|
||||
"logical_bytes": 1833310564,
|
||||
"allocated_sum": 1949585408,
|
||||
"cloud_archive_bytes": 116267401,
|
||||
"free_before_selection": 3406475264,
|
||||
"free_before_retirement": 2905726976,
|
||||
"free_after": 3991207936,
|
||||
"original_files_and_parent_evidence_reverified": true,
|
||||
"actual_cloud_readback_all_payloads_verified": true,
|
||||
"retired_only_manifest_members": true,
|
||||
"temporary_archives_removed_after_verification": true,
|
||||
"roots": [
|
||||
"p05-acceptance-partial-r06/stages",
|
||||
"p23-03-native-impact-19fc3f5-r01/stage",
|
||||
"p23-03-component-impact-19fc3f5-r01/stage",
|
||||
"p23-03-final-regression-49445d4-r01/stage",
|
||||
"p08-03-native-os-r09/stage",
|
||||
"p08-03-native-os-fd643f5-r10/stage",
|
||||
"p08-03-native-f5f85ae-r16/stage",
|
||||
"p08-03-final-regression-f5f85ae-r01/stage",
|
||||
"p08-03-final-regression-fd643f5-r01/stage",
|
||||
"p03-midpoint-restart-r03/stages",
|
||||
"p03-midpoint-restart-r04/stages",
|
||||
"p03-midpoint-restart-r05/stages",
|
||||
"p03-formal13-ui-to14-final-r01/stages",
|
||||
"p03-formal13-ui-to14-final-r02/stages"
|
||||
],
|
||||
"formal_credit": 0
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
exec(open('/private/tmp/tree-offload-cold-stage-r03.py').read().split("if __name__")[0])
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());rows=m['members'];p=T/'cold-stages-r03.tar.gz';assert not (D/'PREPARED.json').exists()
|
||||
# The interrupted staging archive was never uploaded or accepted. Sources are untouched.
|
||||
p.unlink();idle();assert inv()==rows
|
||||
objects={x['sha256']:x for x in rows if x['type']=='file'}
|
||||
with tarfile.open(p,'w:gz',compresslevel=6)as t:
|
||||
for h,x in sorted(objects.items()):t.add(B/x['path'],arcname='objects/'+h,recursive=False)
|
||||
payload=(D/'MANIFEST.json').read_bytes();i=tarfile.TarInfo('MANIFEST.json');i.size=len(payload);t.addfile(i,io.BytesIO(payload))
|
||||
with tarfile.open(p,'r:gz')as t:
|
||||
assert len(t.getmembers())==len(objects)+1
|
||||
assert t.extractfile('MANIFEST.json').read()==payload
|
||||
for h,x in objects.items():assert hashlib.sha256(t.extractfile('objects/'+h).read()).hexdigest()==h
|
||||
assert inv()==rows
|
||||
parts=[]
|
||||
with p.open('rb')as f:
|
||||
for i in range(1000):
|
||||
v=f.read(32*1024**2)
|
||||
if not v:break
|
||||
q=T/f'cold-stages-r03.tar.gz.part-{i:04d}';q.write_bytes(v);parts.append(dict(order=i,path=str(q),bytes=len(v),sha256=sha(q)))
|
||||
save(D/'PREPARED.json',dict(format='content-addressed-tar-v1',archive=str(p),archive_bytes=p.stat().st_size,archive_sha256=sha(p),parts=parts,unique_payloads=len(objects),source_unchanged=True,all_members_verified=True))
|
||||
print(json.dumps(dict(files=m['files'],logical_bytes=m['logical_bytes'],unique_bytes=sum(x['bytes']for x in objects.values()),archive_bytes=p.stat().st_size,parts=len(parts))),flush=True)
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
"""Restore content-addressed archive without overwriting existing files."""
|
||||
import argparse,hashlib,json,os,tarfile
|
||||
from pathlib import Path
|
||||
p=argparse.ArgumentParser();p.add_argument('archive');p.add_argument('destination');a=p.parse_args();dest=Path(a.destination).resolve()
|
||||
with tarfile.open(a.archive,'r:gz')as t:
|
||||
m=json.loads(t.extractfile('MANIFEST.json').read());rows=m['members'];expected={'MANIFEST.json'}|{'objects/'+x['sha256']for x in rows if x['type']=='file'}
|
||||
assert {x.name for x in t.getmembers()}==expected and len(t.getmembers())==len(expected)
|
||||
for x in rows:
|
||||
target=dest/x['path'];assert target.resolve().is_relative_to(dest) and not target.exists()
|
||||
for x in rows:
|
||||
q=dest/x['path']
|
||||
if x['type']=='directory':q.mkdir(parents=True,exist_ok=True)
|
||||
else:
|
||||
q.parent.mkdir(parents=True,exist_ok=True);h=hashlib.sha256()
|
||||
with q.open('xb')as out,t.extractfile('objects/'+x['sha256'])as f:
|
||||
for b in iter(lambda:f.read(1048576),b''):h.update(b);out.write(b)
|
||||
assert q.stat().st_size==x['bytes'] and h.hexdigest()==x['sha256']
|
||||
os.chmod(q,x['mode']);os.utime(q,ns=(x['mtime_ns'],x['mtime_ns']))
|
||||
for x in reversed(rows):
|
||||
if x['type']=='directory':os.utime(dest/x['path'],ns=(x['mtime_ns'],x['mtime_ns']))
|
||||
print('Restored and verified',m['files'],'files')
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
exec(open('/private/tmp/tree-offload-cold-stage-r03.py').read().split("if __name__")[0])
|
||||
m=json.loads((D/'MANIFEST.json').read_bytes());p=json.loads((D/'PREPARED.json').read_bytes());v=json.loads((D/'CLOUD_ARCHIVE_VERIFIED.json').read_bytes());assert v['actual_cloud_readback'] and v['whole_archive_sha256']==p['archive_sha256']
|
||||
for name in ['MANIFEST.json','PREPARED.json','CLOUD_PARTS.json','restore.py','RESTORE.md']:
|
||||
r=json.loads((D/('READBACK-'+name+'.json')).read_bytes());assert r['actual_cloud_readback_verified'] and sha(D/name)==r['sha256']
|
||||
assert not (D/'RETIREMENT.json').exists();idle();rows=inv();assert rows==m['members']
|
||||
for x in m['protected_parent_files']:assert sha(Path(x['path']))==x['sha256']
|
||||
free_before=shutil.disk_usage(R).free
|
||||
for x in rows:
|
||||
if x['type']=='file':(B/x['path']).unlink()
|
||||
for x in sorted(rows,key=lambda x:len(Path(x['path']).parts),reverse=True):
|
||||
if x['type']=='directory':(B/x['path']).rmdir()
|
||||
for s in roots:
|
||||
parent=(B/s).parent;pointer=parent/'CLOUD_STAGE_ARCHIVE_R03.json';assert not pointer.exists();save(pointer,dict(state='cloud_archived',original_root=str(B/s),folder_url='https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK',manifest=str(D/'MANIFEST.json'),cloud_parts=str(D/'CLOUD_PARTS.json'),restore=str(D/'RESTORE.md'),archive_sha256=p['archive_sha256'],scope='Only historical stage copy; local result/image/save/receipt files retained',formal_credit=0))
|
||||
for x in m['protected_parent_files']:assert sha(Path(x['path']))==x['sha256']
|
||||
# Remove only manifest-bound, verified owned staging files after originals are cloud-backed.
|
||||
for i,x in enumerate(p['parts']):
|
||||
q=Path(x['path']);assert sha(q)==x['sha256'];q.unlink()
|
||||
q=T/f'readback-{i:04d}.bin';assert sha(q)==x['sha256'];q.unlink()
|
||||
for q in [Path(p['archive']),T/'cloud-readback.tar.gz']:assert sha(q)==p['archive_sha256'];q.unlink()
|
||||
result=dict(recorded_unix=time.time(),files=m['files'],logical_bytes=m['logical_bytes'],allocated_sum=m['allocated_sum'],cloud_archive_bytes=p['archive_bytes'],free_before_selection=m['free_before'],free_before_retirement=free_before,free_after=shutil.disk_usage(R).free,original_files_and_parent_evidence_reverified=True,actual_cloud_readback_all_payloads_verified=True,retired_only_manifest_members=True,temporary_archives_removed_after_verification=True,roots=roots,formal_credit=0)
|
||||
save(D/'RETIREMENT.json',result)
|
||||
print(json.dumps(result),flush=True)
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
from pathlib import Path
|
||||
import hashlib,json,os,subprocess,tarfile,io,shutil,time,sys
|
||||
R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部');B=R/'artifacts/original-completion-2026-10-02';D=R/'docs/plans/original-completion-2026-10-02/execution/drive-offload-cold-stages-r03-20261015';T=Path('/private/tmp/tree-offload-cold-stage-r03')
|
||||
roots=['p05-acceptance-partial-r06/stages','p23-03-native-impact-19fc3f5-r01/stage','p23-03-component-impact-19fc3f5-r01/stage','p23-03-final-regression-49445d4-r01/stage','p08-03-native-os-r09/stage','p08-03-native-os-fd643f5-r10/stage','p08-03-native-f5f85ae-r16/stage','p08-03-final-regression-f5f85ae-r01/stage','p08-03-final-regression-fd643f5-r01/stage','p03-midpoint-restart-r03/stages','p03-midpoint-restart-r04/stages','p03-midpoint-restart-r05/stages','p03-formal13-ui-to14-final-r01/stages','p03-formal13-ui-to14-final-r02/stages']
|
||||
def sha(p):
|
||||
h=hashlib.sha256()
|
||||
with p.open('rb') as f:
|
||||
for x in iter(lambda:f.read(1048576),b''):h.update(x)
|
||||
return h.hexdigest()
|
||||
def save(p,v):p.write_text(json.dumps(v,ensure_ascii=False,indent=2)+'\n')
|
||||
def inv():
|
||||
rows=[]
|
||||
for s in roots:
|
||||
p=B/s;assert p.is_dir() and not p.is_symlink()
|
||||
for x in [p]+sorted(p.rglob('*')):
|
||||
st=x.lstat();assert not x.is_symlink() and (x.is_dir() or x.is_file())
|
||||
a=dict(path=str(x.relative_to(B)),type='file' if x.is_file() else 'directory',mode=st.st_mode&0o7777,mtime_ns=st.st_mtime_ns)
|
||||
if x.is_file():a.update(bytes=st.st_size,sha256=sha(x),allocated=st.st_blocks*512)
|
||||
rows.append(a)
|
||||
return rows
|
||||
def idle():
|
||||
ps=subprocess.check_output(['ps','-axo','pid,command'],text=True)
|
||||
opened=subprocess.run(['lsof','-n','-F','n'],capture_output=True,text=True).stdout
|
||||
for s in roots:
|
||||
assert not any(str(B/s) in line for line in ps.splitlines())
|
||||
assert not any(line.startswith('n'+str(B/s)+'/') for line in opened.splitlines())
|
||||
assert not subprocess.check_output(['git','-C',str(R),'ls-files','--',str(B/s)],text=True).strip()
|
||||
def build():
|
||||
assert not D.exists() and not T.exists();D.mkdir();T.mkdir();idle();before=shutil.disk_usage(R).free;assert before>1024**3
|
||||
rows=inv();protected=[]
|
||||
for s in roots:
|
||||
for x in sorted((B/s).parent.iterdir()):
|
||||
if x.is_file():protected.append(dict(path=str(x),sha256=sha(x)))
|
||||
m=dict(schema='tree-cold-stage-offload-r03',base=str(B),roots=roots,members=rows,protected_parent_files=protected,files=sum(x['type']=='file' for x in rows),logical_bytes=sum(x.get('bytes',0)for x in rows),allocated_sum=sum(x.get('allocated',0)for x in rows),free_before=before,created=time.time(),reason='Idle historical verification source copies only. Product worktrees, current candidate, outcome logs, images, receipts and saves retained. Cloud restoration required before rerunning these historical staged copies.',formal_credit=0)
|
||||
save(D/'MANIFEST.json',m);payload=(D/'MANIFEST.json').read_bytes();a=T/'cold-stages-r03.tar.gz'
|
||||
with tarfile.open(a,'w:gz',compresslevel=6,format=tarfile.PAX_FORMAT)as t:
|
||||
for x in rows:t.add(B/x['path'],arcname=x['path'],recursive=False)
|
||||
h=tarfile.TarInfo('__OFFLOAD_MANIFEST__.json');h.size=len(payload);t.addfile(h,io.BytesIO(payload))
|
||||
with tarfile.open(a,'r:gz')as t:
|
||||
assert len(t.getmembers())==len(rows)+1
|
||||
assert t.extractfile('__OFFLOAD_MANIFEST__.json').read()==payload
|
||||
for x in rows:
|
||||
e=t.getmember(x['path'])
|
||||
if x['type']=='file':assert hashlib.sha256(t.extractfile(e).read()).hexdigest()==x['sha256']
|
||||
assert inv()==rows
|
||||
parts=[]
|
||||
with a.open('rb')as f:
|
||||
for i in range(10000):
|
||||
v=f.read(32*1024**2)
|
||||
if not v:break
|
||||
p=T/f'cold-stages-r03.tar.gz.part-{i:04d}';p.write_bytes(v);parts.append(dict(order=i,path=str(p),bytes=len(v),sha256=sha(p)))
|
||||
save(D/'PREPARED.json',dict(archive=str(a),archive_bytes=a.stat().st_size,archive_sha256=sha(a),parts=parts,source_unchanged=True,all_members_verified=True))
|
||||
print(json.dumps(dict(doc=str(D),files=m['files'],logical_bytes=m['logical_bytes'],allocated_sum=m['allocated_sum'],archive_bytes=a.stat().st_size,parts=len(parts))),flush=True)
|
||||
if __name__=='__main__':build()
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
exec(open('/private/tmp/tree-offload-cold-stage-r03.py').read().split("if __name__")[0])
|
||||
p=json.loads((D/'PREPARED.json').read_bytes());m=json.loads((D/'MANIFEST.json').read_bytes());parts=[json.loads((T/f'cloud-{i:04d}.json').read_bytes())for i in range(4)];a=T/'cloud-readback.tar.gz'
|
||||
with a.open('xb')as out:
|
||||
for i,x in enumerate(parts):
|
||||
q=T/f'readback-{i:04d}.bin';assert x['verified'] and x['bytes']==q.stat().st_size and sha(q)==x['sha256']==p['parts'][i]['sha256'];out.write(q.read_bytes())
|
||||
assert a.stat().st_size==p['archive_bytes'] and sha(a)==p['archive_sha256']
|
||||
objects={x['sha256']:x for x in m['members'] if x['type']=='file'}
|
||||
with tarfile.open(a,'r:gz')as t:
|
||||
assert t.extractfile('MANIFEST.json').read()==(D/'MANIFEST.json').read_bytes();assert len(t.getmembers())==len(objects)+1
|
||||
for h,x in objects.items():assert hashlib.sha256(t.extractfile('objects/'+h).read()).hexdigest()==h
|
||||
save(D/'CLOUD_PARTS.json',parts);save(D/'CLOUD_ARCHIVE_VERIFIED.json',dict(whole_archive_sha256=sha(a),bytes=a.stat().st_size,all_unique_payloads_verified=len(objects),original_file_mappings_verified=m['files'],manifest_identical=True,actual_cloud_readback=True,formal_credit=0))
|
||||
print('Cloud readback entire archive and all original mappings verified')
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"all_cloud_archive_members_verified": true,
|
||||
"verified_members": 5617,
|
||||
"cloud_archive_sha256": "2c1c66613c57a7f21b6214de08baa459cb60b8712f45a4dd1d55297723f36c1f",
|
||||
"cloud_archive_bytes": 198225422
|
||||
}
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
[
|
||||
{
|
||||
"name": "MANIFEST.json",
|
||||
"upload": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo",
|
||||
"title": "p08-cold-pair-history-MANIFEST.json",
|
||||
"file_name": "p08-cold-pair-history-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo",
|
||||
"title": "p08-cold-pair-history-MANIFEST.json",
|
||||
"file_name": "p08-cold-pair-history-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "166dJzD3N-s1-n3CbbgSgzmuIgEX4aobo",
|
||||
"title": "p08-cold-pair-history-MANIFEST.json",
|
||||
"mime_type": "application/json",
|
||||
"size": "1568336",
|
||||
"url": null,
|
||||
"file_or_folder": "file",
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CLOUD_PARTS.json",
|
||||
"upload": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV",
|
||||
"title": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"file_name": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV",
|
||||
"title": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"file_name": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"url": "https://drive.google.com/file/d/1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1G1sj22PSMaqvGqyUstmv1FVE7ndsBnSV",
|
||||
"title": "p08-cold-pair-history-CLOUD_PARTS.json",
|
||||
"mime_type": "application/json",
|
||||
"size": "11229",
|
||||
"url": null,
|
||||
"file_or_folder": "file",
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "RESTORE.md",
|
||||
"upload": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF",
|
||||
"title": "p08-cold-pair-history-RESTORE.md",
|
||||
"file_name": "p08-cold-pair-history-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"structuredContent": {
|
||||
"accepted_input": "file_uri",
|
||||
"success": true,
|
||||
"id": "1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF",
|
||||
"title": "p08-cold-pair-history-RESTORE.md",
|
||||
"file_name": "p08-cold-pair-history-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"url": "https://drive.google.com/file/d/1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1VyWzt8OoL730r_hkER2N9xUJQw1YkjFF",
|
||||
"title": "p08-cold-pair-history-RESTORE.md",
|
||||
"mime_type": "text/markdown",
|
||||
"size": "1356",
|
||||
"url": null,
|
||||
"file_or_folder": "file",
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
}
|
||||
}
|
||||
]
|
||||
+266
@@ -0,0 +1,266 @@
|
||||
[
|
||||
{
|
||||
"order": 0,
|
||||
"offset": 0,
|
||||
"bytes": 8388608,
|
||||
"sha256": "960019953c23e4f71a770f992554a4a24d7092df785272bd1e7bf783e4e19ecd",
|
||||
"cloud_id": "1HIAyxBgJdMS3iN6RlU2k15gupRizV8m-",
|
||||
"cloud_url": "https://drive.google.com/file/d/1HIAyxBgJdMS3iN6RlU2k15gupRizV8m-/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "960019953c23e4f71a770f992554a4a24d7092df785272bd1e7bf783e4e19ecd",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"offset": 8388608,
|
||||
"bytes": 8388608,
|
||||
"sha256": "e332e47bbc1003a120827a3fe2b698ab9ecb85558e0f2cafbd939e09a701fe32",
|
||||
"cloud_id": "1xGEM_9v188XG0_rWEbafgIpCTA_xLNk_",
|
||||
"cloud_url": "https://drive.google.com/file/d/1xGEM_9v188XG0_rWEbafgIpCTA_xLNk_/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "e332e47bbc1003a120827a3fe2b698ab9ecb85558e0f2cafbd939e09a701fe32",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"offset": 16777216,
|
||||
"bytes": 8388608,
|
||||
"sha256": "139209eafe224d6b83b8dda38819204258dbf1bb54d1ddb87e34b63f54946b8e",
|
||||
"cloud_id": "1ayfrWSRgPGitssKs-Sdcl16YbrtdERSg",
|
||||
"cloud_url": "https://drive.google.com/file/d/1ayfrWSRgPGitssKs-Sdcl16YbrtdERSg/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "139209eafe224d6b83b8dda38819204258dbf1bb54d1ddb87e34b63f54946b8e",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"offset": 25165824,
|
||||
"bytes": 8388608,
|
||||
"sha256": "9026a5d1e699cbf0ae3999bf97053217fc6676f976948b6b2173d9ff63df775f",
|
||||
"cloud_id": "1FmXRL2ew7opitFI92QoXL0U049GGleAG",
|
||||
"cloud_url": "https://drive.google.com/file/d/1FmXRL2ew7opitFI92QoXL0U049GGleAG/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "9026a5d1e699cbf0ae3999bf97053217fc6676f976948b6b2173d9ff63df775f",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 4,
|
||||
"offset": 33554432,
|
||||
"bytes": 8388608,
|
||||
"sha256": "2c200f5a7c1941ffe238010bb33a651b4c55565ea2c390520b39d42407f6d6ce",
|
||||
"cloud_id": "1Jke8wBULOCk9HAc6qNEtKm3XuXl74U_W",
|
||||
"cloud_url": "https://drive.google.com/file/d/1Jke8wBULOCk9HAc6qNEtKm3XuXl74U_W/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "2c200f5a7c1941ffe238010bb33a651b4c55565ea2c390520b39d42407f6d6ce",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 5,
|
||||
"offset": 41943040,
|
||||
"bytes": 8388608,
|
||||
"sha256": "1a54fbde2c36fbbd8571b804284b70a717cf90eb3b75a28ddb9d97dfb489e8b1",
|
||||
"cloud_id": "1pOEPbfD36yh89FbrxM8vVkaX3i__6qIb",
|
||||
"cloud_url": "https://drive.google.com/file/d/1pOEPbfD36yh89FbrxM8vVkaX3i__6qIb/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "1a54fbde2c36fbbd8571b804284b70a717cf90eb3b75a28ddb9d97dfb489e8b1",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 6,
|
||||
"offset": 50331648,
|
||||
"bytes": 8388608,
|
||||
"sha256": "cd1f985578864e34b74fba7d9090d44c215f351f72b8d5218135bb080f9dbf3d",
|
||||
"cloud_id": "1SycABWIO4t9Ym6zCpxebtr-mi1dL3l3H",
|
||||
"cloud_url": "https://drive.google.com/file/d/1SycABWIO4t9Ym6zCpxebtr-mi1dL3l3H/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "cd1f985578864e34b74fba7d9090d44c215f351f72b8d5218135bb080f9dbf3d",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 7,
|
||||
"offset": 58720256,
|
||||
"bytes": 8388608,
|
||||
"sha256": "847b4fd3a9186e3d101f89eacd9b1ea56416bc71a50a171ce181339065ca8d7f",
|
||||
"cloud_id": "1LgpzDHNiFcr5dqyZ-4jXNYlKWlMd2bSe",
|
||||
"cloud_url": "https://drive.google.com/file/d/1LgpzDHNiFcr5dqyZ-4jXNYlKWlMd2bSe/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "847b4fd3a9186e3d101f89eacd9b1ea56416bc71a50a171ce181339065ca8d7f",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 8,
|
||||
"offset": 67108864,
|
||||
"bytes": 8388608,
|
||||
"sha256": "df854086ead0ed1ece95f9bfc86226868cfe64c6c24bb04352dba82f5fb54d0c",
|
||||
"cloud_id": "1PZ8oKNsBe2o31T_T-cNPEBWBu5VSiF0t",
|
||||
"cloud_url": "https://drive.google.com/file/d/1PZ8oKNsBe2o31T_T-cNPEBWBu5VSiF0t/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "df854086ead0ed1ece95f9bfc86226868cfe64c6c24bb04352dba82f5fb54d0c",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 9,
|
||||
"offset": 75497472,
|
||||
"bytes": 8388608,
|
||||
"sha256": "73b2d3f631ef30b6c4e270e46bcd3ca6772bd4190c6e76acf1e8df082a25d643",
|
||||
"cloud_id": "1wiP3kiIrr2KGwwol1TyrpklbLXBK1PHN",
|
||||
"cloud_url": "https://drive.google.com/file/d/1wiP3kiIrr2KGwwol1TyrpklbLXBK1PHN/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "73b2d3f631ef30b6c4e270e46bcd3ca6772bd4190c6e76acf1e8df082a25d643",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 10,
|
||||
"offset": 83886080,
|
||||
"bytes": 8388608,
|
||||
"sha256": "acf4d20aaf340cdb5145581921c7f6cd0cf40f6638d467a32fdde7c13a52a22f",
|
||||
"cloud_id": "1DGvzmO2CvvmIV6y_wMGVZZ9UzXiTv9Fc",
|
||||
"cloud_url": "https://drive.google.com/file/d/1DGvzmO2CvvmIV6y_wMGVZZ9UzXiTv9Fc/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "acf4d20aaf340cdb5145581921c7f6cd0cf40f6638d467a32fdde7c13a52a22f",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 11,
|
||||
"offset": 92274688,
|
||||
"bytes": 8388608,
|
||||
"sha256": "a135b5f3e024b6f12c12beaa8c892340b7a11b7c398b33abf7bd61d8b7bd87ed",
|
||||
"cloud_id": "1A7ZiEeh5s6AHbKe7JyfMKWSsoRwp95OM",
|
||||
"cloud_url": "https://drive.google.com/file/d/1A7ZiEeh5s6AHbKe7JyfMKWSsoRwp95OM/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "a135b5f3e024b6f12c12beaa8c892340b7a11b7c398b33abf7bd61d8b7bd87ed",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 12,
|
||||
"offset": 100663296,
|
||||
"bytes": 8388608,
|
||||
"sha256": "bdb610fada892e7202c1bdc6b50800d177c1d961137560ae666a0286774697df",
|
||||
"cloud_id": "16HAVPdocOw4tab6d77MG3SR8HkyyVPO0",
|
||||
"cloud_url": "https://drive.google.com/file/d/16HAVPdocOw4tab6d77MG3SR8HkyyVPO0/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "bdb610fada892e7202c1bdc6b50800d177c1d961137560ae666a0286774697df",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 13,
|
||||
"offset": 109051904,
|
||||
"bytes": 8388608,
|
||||
"sha256": "3f1429f13ce75b0f16901b2fa46f765e5bd2c907e0e8201bb4ef0d6af1a02d0f",
|
||||
"cloud_id": "1GtH7cJcbSX00PcZfBESRV3OWObehmBw1",
|
||||
"cloud_url": "https://drive.google.com/file/d/1GtH7cJcbSX00PcZfBESRV3OWObehmBw1/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "3f1429f13ce75b0f16901b2fa46f765e5bd2c907e0e8201bb4ef0d6af1a02d0f",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 14,
|
||||
"offset": 117440512,
|
||||
"bytes": 8388608,
|
||||
"sha256": "55bfdc3b8f09f640a9e09b7851df05fd330a2f4500a052a399290890c05bb4d0",
|
||||
"cloud_id": "10XOUAX8wDb7zI280yPzikRzt5jlQGTcp",
|
||||
"cloud_url": "https://drive.google.com/file/d/10XOUAX8wDb7zI280yPzikRzt5jlQGTcp/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "55bfdc3b8f09f640a9e09b7851df05fd330a2f4500a052a399290890c05bb4d0",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 15,
|
||||
"offset": 125829120,
|
||||
"bytes": 8388608,
|
||||
"sha256": "672972fca755691bb0caab03e38ba699eda9f54e8f9a4ca6df4f62fa74e3748a",
|
||||
"cloud_id": "1S3HWxauf2Pu05zB-SmO7RBkWvI6sqWYR",
|
||||
"cloud_url": "https://drive.google.com/file/d/1S3HWxauf2Pu05zB-SmO7RBkWvI6sqWYR/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "672972fca755691bb0caab03e38ba699eda9f54e8f9a4ca6df4f62fa74e3748a",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 16,
|
||||
"offset": 134217728,
|
||||
"bytes": 8388608,
|
||||
"sha256": "d96a0915a7b60e9699434942929fbe079798b25926933cebe5ce6d4afa981cca",
|
||||
"cloud_id": "1it3DlzMJuv9cz5YZUNhFabqhVFjtnHsJ",
|
||||
"cloud_url": "https://drive.google.com/file/d/1it3DlzMJuv9cz5YZUNhFabqhVFjtnHsJ/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "d96a0915a7b60e9699434942929fbe079798b25926933cebe5ce6d4afa981cca",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 17,
|
||||
"offset": 142606336,
|
||||
"bytes": 8388608,
|
||||
"sha256": "7d14dc49ca102bfd3e73320cd49eedb41acec26b580d0b665956ab85485e637b",
|
||||
"cloud_id": "1CXr8DtVRFktn6H3itZv_17_upmkeiEEW",
|
||||
"cloud_url": "https://drive.google.com/file/d/1CXr8DtVRFktn6H3itZv_17_upmkeiEEW/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "7d14dc49ca102bfd3e73320cd49eedb41acec26b580d0b665956ab85485e637b",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 18,
|
||||
"offset": 150994944,
|
||||
"bytes": 8388608,
|
||||
"sha256": "32bc95d96a6ba61fbd2b634f579c3af6b041b5edb809e97aa4d3a4e1a8d12582",
|
||||
"cloud_id": "1UDiChWWYUaqieuOviFl5b-xNsvrN5hiL",
|
||||
"cloud_url": "https://drive.google.com/file/d/1UDiChWWYUaqieuOviFl5b-xNsvrN5hiL/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "32bc95d96a6ba61fbd2b634f579c3af6b041b5edb809e97aa4d3a4e1a8d12582",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 19,
|
||||
"offset": 159383552,
|
||||
"bytes": 8388608,
|
||||
"sha256": "0c7b615cb98c543a7d19470b52b9dcdf08da3ec35ed7daacbcec9a97843cc603",
|
||||
"cloud_id": "1INjy4dTBZqOAagUaVK1OxpO10sbhZUMf",
|
||||
"cloud_url": "https://drive.google.com/file/d/1INjy4dTBZqOAagUaVK1OxpO10sbhZUMf/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "0c7b615cb98c543a7d19470b52b9dcdf08da3ec35ed7daacbcec9a97843cc603",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 20,
|
||||
"offset": 167772160,
|
||||
"bytes": 8388608,
|
||||
"sha256": "ee053c38a7d0bceee9be7c8c66dfaeb5cdd048bde276edaba310e65dc226e225",
|
||||
"cloud_id": "1a8K9E0EcbD3plvlagWfALjxG_-JGKGJ1",
|
||||
"cloud_url": "https://drive.google.com/file/d/1a8K9E0EcbD3plvlagWfALjxG_-JGKGJ1/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "ee053c38a7d0bceee9be7c8c66dfaeb5cdd048bde276edaba310e65dc226e225",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 21,
|
||||
"offset": 176160768,
|
||||
"bytes": 8388608,
|
||||
"sha256": "ece71e782e9f153277529e92e689b5e353e730c99556bb60e417f76ca02c7d8a",
|
||||
"cloud_id": "19ojIdDMJdJcajXoH5YJU9Ex2fa5jnuyN",
|
||||
"cloud_url": "https://drive.google.com/file/d/19ojIdDMJdJcajXoH5YJU9Ex2fa5jnuyN/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "ece71e782e9f153277529e92e689b5e353e730c99556bb60e417f76ca02c7d8a",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 22,
|
||||
"offset": 184549376,
|
||||
"bytes": 8388608,
|
||||
"sha256": "eed0093bec4cc5033fdbe8ca02a95d8c15763334ba5bf3d8e0f2a845442596c5",
|
||||
"cloud_id": "1GLs0pU6wlmb9t3NIQN2p2NaLb4DnpZrs",
|
||||
"cloud_url": "https://drive.google.com/file/d/1GLs0pU6wlmb9t3NIQN2p2NaLb4DnpZrs/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "eed0093bec4cc5033fdbe8ca02a95d8c15763334ba5bf3d8e0f2a845442596c5",
|
||||
"actual_readback_bytes": 8388608,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"order": 23,
|
||||
"offset": 192937984,
|
||||
"bytes": 5287438,
|
||||
"sha256": "1bdc10020bd8561b822cc33e22b0604797e877cff80dd484301bc989dbead7e7",
|
||||
"cloud_id": "11ACexUbYQMcgXFYBvaPW11ZBI_S7hO5Y",
|
||||
"cloud_url": "https://drive.google.com/file/d/11ACexUbYQMcgXFYBvaPW11ZBI_S7hO5Y/view?usp=drivesdk",
|
||||
"actual_readback_sha256": "1bdc10020bd8561b822cc33e22b0604797e877cff80dd484301bc989dbead7e7",
|
||||
"actual_readback_bytes": 5287438,
|
||||
"verified": true
|
||||
}
|
||||
]
|
||||
+986
@@ -0,0 +1,986 @@
|
||||
[
|
||||
{
|
||||
"order": 0,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1HIAyxBgJdMS3iN6RlU2k15gupRizV8m-",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0000",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 1,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1xGEM_9v188XG0_rWEbafgIpCTA_xLNk_",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0001",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 2,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1ayfrWSRgPGitssKs-Sdcl16YbrtdERSg",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0002",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 3,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1FmXRL2ew7opitFI92QoXL0U049GGleAG",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0003",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 4,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1Jke8wBULOCk9HAc6qNEtKm3XuXl74U_W",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0004",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 5,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1pOEPbfD36yh89FbrxM8vVkaX3i__6qIb",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0005",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 6,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1SycABWIO4t9Ym6zCpxebtr-mi1dL3l3H",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0006",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 7,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1LgpzDHNiFcr5dqyZ-4jXNYlKWlMd2bSe",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0007",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 8,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1PZ8oKNsBe2o31T_T-cNPEBWBu5VSiF0t",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0008",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 9,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1wiP3kiIrr2KGwwol1TyrpklbLXBK1PHN",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0009",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 10,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1DGvzmO2CvvmIV6y_wMGVZZ9UzXiTv9Fc",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0010",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 11,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1A7ZiEeh5s6AHbKe7JyfMKWSsoRwp95OM",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0011",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 12,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "16HAVPdocOw4tab6d77MG3SR8HkyyVPO0",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0012",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 13,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1GtH7cJcbSX00PcZfBESRV3OWObehmBw1",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0013",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 14,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "10XOUAX8wDb7zI280yPzikRzt5jlQGTcp",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0014",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 15,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1S3HWxauf2Pu05zB-SmO7RBkWvI6sqWYR",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0015",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 16,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1it3DlzMJuv9cz5YZUNhFabqhVFjtnHsJ",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0016",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 17,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1CXr8DtVRFktn6H3itZv_17_upmkeiEEW",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0017",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 18,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1UDiChWWYUaqieuOviFl5b-xNsvrN5hiL",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0018",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 19,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1INjy4dTBZqOAagUaVK1OxpO10sbhZUMf",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0019",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 20,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1a8K9E0EcbD3plvlagWfALjxG_-JGKGJ1",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0020",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 21,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "19ojIdDMJdJcajXoH5YJU9Ex2fa5jnuyN",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0021",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 22,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "1GLs0pU6wlmb9t3NIQN2p2NaLb4DnpZrs",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0022",
|
||||
"mime_type": null,
|
||||
"size": "8388608",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"order": 23,
|
||||
"result": {
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "Action completed."
|
||||
}
|
||||
],
|
||||
"structuredContent": {
|
||||
"id": "11ACexUbYQMcgXFYBvaPW11ZBI_S7hO5Y",
|
||||
"title": "p08-cold-pair-history.tar.gz.part-0023",
|
||||
"mime_type": null,
|
||||
"size": "5287438",
|
||||
"url": null,
|
||||
"file_or_folder": null,
|
||||
"created_time": null,
|
||||
"modified_time": null,
|
||||
"parent_ids": [
|
||||
"1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK"
|
||||
],
|
||||
"drive_id": null,
|
||||
"current_user_can_share": null,
|
||||
"has_augmented_permissions": null,
|
||||
"shared": null,
|
||||
"permissions": [
|
||||
{
|
||||
"type": "user",
|
||||
"role": "owner",
|
||||
"emailAddress": null,
|
||||
"domain": null,
|
||||
"displayName": null,
|
||||
"allowFileDiscovery": null
|
||||
}
|
||||
],
|
||||
"source_visibility_status": "permission_metadata_available"
|
||||
},
|
||||
"isError": false
|
||||
},
|
||||
"error": null
|
||||
}
|
||||
]
|
||||
+44819
File diff suppressed because it is too large
Load Diff
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"archive_bytes": 198225422,
|
||||
"archive_sha256": "2c1c66613c57a7f21b6214de08baa459cb60b8712f45a4dd1d55297723f36c1f",
|
||||
"parts": 24,
|
||||
"files": 5554,
|
||||
"logical_bytes": 3755388804,
|
||||
"all_members_verified": true,
|
||||
"actual_downloaded_tar_members_verified": true,
|
||||
"source_unchanged": true,
|
||||
"compressed_staging_bound_bytes": 16777216,
|
||||
"entire_archive_staged": false,
|
||||
"formal_credit": 0
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"file": "CLOUD_PARTS.json",
|
||||
"bytes": 11229,
|
||||
"sha256": "65df35aae5903b83c21b0bcec7ef8298138883d5642ac93f7c2aaf287fd8bb7a",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"file": "MANIFEST.json",
|
||||
"bytes": 1568336,
|
||||
"sha256": "33bcf7f6bf3a0ad4281866061bd330161815ef903462b1893b1238a15faef6b5",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"file": "RESTORE.md",
|
||||
"bytes": 1356,
|
||||
"sha256": "33426c7b9deac28bb5301cea68531aa127f2ba725f13f88e3763ba769579a23e",
|
||||
"actual_cloud_readback_verified": true
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
# P08旧版証跡の復元
|
||||
|
||||
CLOUD_PARTS.jsonのorder順に24分割をダウンロードして結合してください。結合したgzipのサイズは198225422バイト、SHA-256は `2c1c66613c57a7f21b6214de08baa459cb60b8712f45a4dd1d55297723f36c1f` です。
|
||||
|
||||
空き容量を確保した場所でtar.gzを展開し、MANIFEST.jsonにあるbaseからの相対配置へ復元します。各ファイルのbytes、SHA-256、modeを照合し、mtime_nsはMANIFEST.jsonの値をos.utime(ns=...)で復元してください。既存ファイルへの上書きは避け、まず別ディレクトリで全件照合してください。埋込の__CLOSED_PROOF_MANIFEST__.jsonもローカルMANIFEST.jsonと同一です。
|
||||
|
||||
対象はP08-02 r05/r06のpairsとP08-03 f5f85ae r16のpairのみ。旧版ルートのindex・runner-ended等はローカル保持しています。現行P23-03 R13、現行全回帰、受入済みP08 d369d1c、ソース、製品素材、ユーザー保存はこの退避の対象外です。退避による受入完了の加算はありません。
|
||||
|
||||
アップロードした全24分割を実際にダウンロードし直し、圧縮ストリームSHA・全tarメンバーSHA・サイズ・mode・埋込manifestを検証済みです。全アーカイブを一時保存せず、圧縮一時ファイルは最大16MiBに制限しました。
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"files": 5554,
|
||||
"logical_bytes": 3755388804,
|
||||
"allocated_bytes_before": 381521920,
|
||||
"free_before": 3130724352,
|
||||
"free_after": 3213754368,
|
||||
"all_original_files_reverified_before_removal": true,
|
||||
"cloud_downloaded_archive_all_members_verified": true,
|
||||
"protected_parent_files_unchanged": {
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r05/stage-retired-source-manifest.json": "6aa3ae1d4f219db29b413827336211157d4c3d774adaf61b05418d32d31aa154",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r05/parse-paths.json": "67e89a1196ba0c1ff998ba038e2c4d92bdbe306a0fef4f376862dd5c71aab8d1",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r05/runner-input.json": "934a4a89bd6111b2d4b87fe9855c9965bcf0a1a1c9737add0b8283c9f5bc7dd3",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r05/index.json": "137e75f955ecf23776eb1a90353c82a85956d69aadec25d2c7878d4e856a04f7",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r05/runner-ended.json": "03d43db7853b82e18086952582f7b70805665e266e286ae1255d3570bdb9002f",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r06/stage-retired-source-manifest.json": "c220b6632c072a94e1cad91f9ae580f47c8f96baed9e388da1d024acc942b881",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r06/parse-paths.json": "67e89a1196ba0c1ff998ba038e2c4d92bdbe306a0fef4f376862dd5c71aab8d1",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r06/runner-input.json": "3cbfea68a9b8ee3b9e60f0aeccdd6f8c25ef680e48c8e4570ac9af36c92cedcc",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r06/index.json": "6f804fdefbb1c3815b689a09c234038bb72fe43e059a69240f8bc2a87eec9ce4",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-02-native-mixed-r06/runner-ended.json": "4a00d43b4e48ce855ceb22ecdb666e984d5c2745fd7fb487e1716004a3b6e753",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-f5f85ae-r16/parse-paths.json": "16fb001c85277cc6192e983b0308c05e494cc98a7e1ecedddf90b633bcb030ed",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-f5f85ae-r16/runner-input.json": "b326873176f49c85fb3cbfad87d1cdf1109edc53153486521eed9b191d9e0e20",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-f5f85ae-r16/index.json": "2cbb251414ce5bff46538c9fc59c7eed82b83324f4e24a293d53cd71744fe10c",
|
||||
"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-f5f85ae-r16/runner-ended.json": "6dcc869ef2cb2f40ce168cd5a03cfeabc6c8dab3ae0ebd73277d1428e4d31635"
|
||||
},
|
||||
"deleted_only_manifest_members": true,
|
||||
"formal_credit": 0,
|
||||
"completed_unix": 1792046549.995486
|
||||
}
|
||||
BIN
Binary file not shown.
+216
@@ -0,0 +1,216 @@
|
||||
"""Bound staging to two 8MiB parts; verify downloaded tar members before retirement."""
|
||||
from pathlib import Path
|
||||
import gzip
|
||||
import hashlib
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import tarfile
|
||||
import threading
|
||||
import time
|
||||
import traceback
|
||||
|
||||
ROOT = Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部')
|
||||
BASE = ROOT / 'artifacts/original-completion-2026-10-02'
|
||||
DOC = ROOT / 'docs/plans/original-completion-2026-10-02/execution/drive-offload-p08-cold-pairs-20261015'
|
||||
CONTROL = Path('/private/tmp/p08-cold-stream-20261015')
|
||||
PART_BYTES = 8 * 1024**2
|
||||
|
||||
|
||||
def write(path, value):
|
||||
temp = Path(str(path) + '.pending')
|
||||
temp.write_text(json.dumps(value, ensure_ascii=False, indent=2) + '\n')
|
||||
os.replace(temp, path)
|
||||
|
||||
|
||||
def read(path):
|
||||
return json.loads(Path(path).read_bytes())
|
||||
|
||||
|
||||
def sha(path):
|
||||
h = hashlib.sha256()
|
||||
with Path(path).open('rb') as f:
|
||||
for block in iter(lambda: f.read(1024 * 1024), b''): h.update(block)
|
||||
return h.hexdigest()
|
||||
|
||||
|
||||
def wait(path, eof=None):
|
||||
while not path.exists():
|
||||
if (CONTROL / 'ERROR.json').exists(): raise RuntimeError('archive verification failed')
|
||||
if eof and eof.exists(): return None
|
||||
time.sleep(0.1)
|
||||
return read(path)
|
||||
|
||||
|
||||
class Sink:
|
||||
def __init__(self):
|
||||
self.buffer = bytearray()
|
||||
self.hash = hashlib.sha256()
|
||||
self.bytes = self.parts = 0
|
||||
|
||||
def writable(self): return True
|
||||
|
||||
def write(self, data):
|
||||
self.hash.update(data)
|
||||
self.bytes += len(data)
|
||||
self.buffer.extend(data)
|
||||
while len(self.buffer) >= PART_BYTES: self.publish(PART_BYTES)
|
||||
return len(data)
|
||||
|
||||
def flush(self): pass
|
||||
|
||||
def publish(self, length):
|
||||
number = self.parts
|
||||
part = CONTROL / ('part-%04d.bin' % number)
|
||||
block = bytes(self.buffer[:length])
|
||||
del self.buffer[:length]
|
||||
with part.open('xb') as output: output.write(block)
|
||||
descriptor = dict(order=number, offset=number * PART_BYTES, path=str(part), bytes=len(block),
|
||||
sha256=hashlib.sha256(block).hexdigest(), owner_pid=os.getpid())
|
||||
write(CONTROL / ('source-%04d.json' % number), descriptor)
|
||||
write(CONTROL / 'ready.json', dict(state='part', **descriptor))
|
||||
print(json.dumps(dict(state='waiting_cloud_part', order=number, bytes=len(block))), flush=True)
|
||||
receipt = wait(CONTROL / ('consumed-%04d.json' % number))
|
||||
assert receipt['sha256'] == descriptor['sha256'] and receipt['bytes'] == descriptor['bytes']
|
||||
part.unlink()
|
||||
self.parts += 1
|
||||
|
||||
def finish(self):
|
||||
if self.buffer: self.publish(len(self.buffer))
|
||||
write(CONTROL / 'EOF.json', dict(parts=self.parts, bytes=self.bytes, sha256=self.hash.hexdigest()))
|
||||
|
||||
|
||||
class DownloadReader(io.RawIOBase):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.number = 0
|
||||
self.handle = None
|
||||
self.description = None
|
||||
self.part_hash = None
|
||||
self.part_bytes = 0
|
||||
self.hash = hashlib.sha256()
|
||||
self.bytes = 0
|
||||
|
||||
def readable(self): return True
|
||||
|
||||
def read(self, size=-1):
|
||||
assert size >= 0
|
||||
if self.handle is None:
|
||||
ready = CONTROL / ('download-%04d.ready.json' % self.number)
|
||||
receipt = wait(ready, CONTROL / 'EOF.json')
|
||||
if receipt is None:
|
||||
eof = read(CONTROL / 'EOF.json')
|
||||
assert eof['parts'] == self.number and eof['bytes'] == self.bytes
|
||||
assert eof['sha256'] == self.hash.hexdigest()
|
||||
return b''
|
||||
source = read(CONTROL / ('source-%04d.json' % self.number))
|
||||
assert receipt['verified'] is True and receipt['cloud_id'] and receipt['cloud_url']
|
||||
assert receipt['sha256'] == source['sha256'] == receipt['actual_readback_sha256']
|
||||
assert receipt['bytes'] == source['bytes'] == receipt['actual_readback_bytes']
|
||||
assert source['order'] == self.number and source['offset'] == self.bytes
|
||||
self.description = receipt
|
||||
self.handle = (CONTROL / ('download-%04d.bin' % self.number)).open('rb')
|
||||
self.part_hash = hashlib.sha256()
|
||||
self.part_bytes = 0
|
||||
block = self.handle.read(size)
|
||||
self.part_hash.update(block)
|
||||
self.part_bytes += len(block)
|
||||
self.hash.update(block)
|
||||
self.bytes += len(block)
|
||||
if self.part_bytes == self.description['bytes']:
|
||||
assert self.part_hash.hexdigest() == self.description['sha256']
|
||||
self.handle.close()
|
||||
(CONTROL / ('download-%04d.bin' % self.number)).unlink()
|
||||
write(CONTROL / ('consumed-%04d.json' % self.number),
|
||||
dict(bytes=self.part_bytes, sha256=self.part_hash.hexdigest()))
|
||||
self.handle = None
|
||||
self.number += 1
|
||||
return block
|
||||
|
||||
|
||||
def verify_cloud_stream(manifest, payload, result):
|
||||
try:
|
||||
expected = {row['path']: row for row in manifest['members']}
|
||||
seen = set()
|
||||
reader = DownloadReader()
|
||||
with gzip.GzipFile(fileobj=reader, mode='rb') as uncompressed:
|
||||
with tarfile.open(fileobj=uncompressed, mode='r|') as archive:
|
||||
for member in archive:
|
||||
if member.name == '__CLOSED_PROOF_MANIFEST__.json':
|
||||
assert member.isfile()
|
||||
assert archive.extractfile(member).read() == payload
|
||||
assert member.name not in seen
|
||||
seen.add(member.name)
|
||||
continue
|
||||
assert member.name in expected and member.name not in seen, member.name
|
||||
row = expected[member.name]
|
||||
if row['type'] == 'file':
|
||||
assert member.isfile() and member.size == row['bytes']
|
||||
h = hashlib.sha256()
|
||||
with archive.extractfile(member) as stream:
|
||||
for block in iter(lambda: stream.read(1024 * 1024), b''): h.update(block)
|
||||
assert h.hexdigest() == row['sha256'], member.name
|
||||
else: assert member.isdir()
|
||||
assert member.mode == row['mode']
|
||||
seen.add(member.name)
|
||||
while uncompressed.read(1024 * 1024): pass
|
||||
assert seen == set(expected) | {'__CLOSED_PROOF_MANIFEST__.json'}
|
||||
result.update(all_cloud_archive_members_verified=True, verified_members=len(seen),
|
||||
cloud_archive_sha256=reader.hash.hexdigest(), cloud_archive_bytes=reader.bytes)
|
||||
write(CONTROL / 'VERIFIED.json', result)
|
||||
except BaseException:
|
||||
write(CONTROL / 'ERROR.json', dict(stage='cloud tar verification', traceback=traceback.format_exc()))
|
||||
|
||||
|
||||
def main():
|
||||
assert not CONTROL.exists() and not (DOC / 'PREPARED.json').exists()
|
||||
assert shutil.disk_usage(BASE).free > 64 * 1024**2
|
||||
CONTROL.mkdir()
|
||||
manifest = read(DOC / 'MANIFEST.json')
|
||||
for row in manifest['members']:
|
||||
path = BASE / row['path']
|
||||
stat = path.stat()
|
||||
assert not path.is_symlink() and stat.st_mtime_ns == row['mtime_ns']
|
||||
assert stat.st_mode & 0o7777 == row['mode']
|
||||
if row['type'] == 'file': assert stat.st_size == row['bytes'] and sha(path) == row['sha256']
|
||||
# This manifest is the exact original one produced before the failed bulk archive.
|
||||
payload = (json.dumps(manifest, ensure_ascii=False, indent=2) + '\n').encode()
|
||||
result = {}
|
||||
verifier = threading.Thread(target=verify_cloud_stream, args=(manifest, payload, result), daemon=True)
|
||||
verifier.start()
|
||||
sink = Sink()
|
||||
with gzip.GzipFile(fileobj=sink, mode='wb', filename='', mtime=0, compresslevel=6) as compressed:
|
||||
with tarfile.open(fileobj=compressed, mode='w|', format=tarfile.PAX_FORMAT) as archive:
|
||||
for row in manifest['members']:
|
||||
path = BASE / row['path']
|
||||
archive.add(path, arcname=row['path'], recursive=False)
|
||||
item = tarfile.TarInfo('__CLOSED_PROOF_MANIFEST__.json')
|
||||
item.size = len(payload)
|
||||
archive.addfile(item, io.BytesIO(payload))
|
||||
sink.finish()
|
||||
verifier.join()
|
||||
if (CONTROL / 'ERROR.json').exists(): raise RuntimeError(read(CONTROL / 'ERROR.json'))
|
||||
assert result['cloud_archive_sha256'] == sink.hash.hexdigest()
|
||||
for row in manifest['members']:
|
||||
path = BASE / row['path']
|
||||
stat = path.stat()
|
||||
assert stat.st_mtime_ns == row['mtime_ns'] and stat.st_mode & 0o7777 == row['mode']
|
||||
if row['type'] == 'file': assert stat.st_size == row['bytes'] and sha(path) == row['sha256']
|
||||
receipts = [read(CONTROL / ('download-%04d.ready.json' % i)) for i in range(sink.parts)]
|
||||
write(DOC / 'CLOUD_PARTS.json', receipts)
|
||||
prepared = dict(archive_bytes=sink.bytes, archive_sha256=sink.hash.hexdigest(), parts=sink.parts,
|
||||
files=manifest['files'], logical_bytes=manifest['logical_bytes'],
|
||||
all_members_verified=True, actual_downloaded_tar_members_verified=True,
|
||||
source_unchanged=True, compressed_staging_bound_bytes=2*PART_BYTES,
|
||||
entire_archive_staged=False, formal_credit=0)
|
||||
write(DOC / 'PREPARED.json', prepared)
|
||||
write(CONTROL / 'ready.json', dict(state='complete', **prepared))
|
||||
print(json.dumps(prepared), flush=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try: main()
|
||||
except BaseException:
|
||||
if CONTROL.is_dir(): write(CONTROL / 'ERROR.json', dict(stage='producer', traceback=traceback.format_exc()))
|
||||
raise
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
from pathlib import Path
|
||||
import json,hashlib,os,shutil,time
|
||||
R=Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部')
|
||||
D=R/'docs/plans/original-completion-2026-10-02/execution/drive-offload-p08-cold-pairs-20261015'
|
||||
M=json.loads((D/'MANIFEST.json').read_bytes()); B=Path(M['base'])
|
||||
def sha(p):
|
||||
h=hashlib.sha256()
|
||||
with p.open('rb') as f:
|
||||
for b in iter(lambda:f.read(1024*1024),b''):h.update(b)
|
||||
return h.hexdigest()
|
||||
def read(n):return json.loads((D/n).read_bytes())
|
||||
P=read('PREPARED.json'); V=read('CLOUD_ARCHIVE_VERIFIED.json'); parts=read('CLOUD_PARTS.json')
|
||||
assert P['source_unchanged'] and P['actual_downloaded_tar_members_verified'] and V['all_cloud_archive_members_verified']
|
||||
assert V['cloud_archive_sha256']==P['archive_sha256'] and V['cloud_archive_bytes']==P['archive_bytes']
|
||||
assert len(parts)==24 and sum(x['bytes'] for x in parts)==P['archive_bytes']
|
||||
for i,x in enumerate(parts):
|
||||
assert x['order']==i and x['verified'] and x['actual_readback_sha256']==x['sha256'] and x['actual_readback_bytes']==x['bytes']
|
||||
for name in ['MANIFEST.json','CLOUD_PARTS.json','RESTORE.md']:
|
||||
v=read('READBACK-'+name+'.json');assert v['actual_cloud_readback_verified'] and v['sha256']==sha(D/name)
|
||||
for entry in read('CLOUD_PART_METADATA.json')+read('CLOUD_METADATA.json'):
|
||||
result=entry.get('result') or entry['metadata']; assert not result.get('isError')
|
||||
s=result['structuredContent']; assert s['permissions'] and all(x['type']=='user' and x['role']=='owner' for x in s['permissions'])
|
||||
assert s['parent_ids']==['1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK']
|
||||
roots=[B/x for x in M['roots']]
|
||||
assert all(p.is_dir() and not p.is_symlink() for p in roots)
|
||||
expected={x['path']:x for x in M['members']}
|
||||
actual={p.relative_to(B).as_posix() for root in roots for p in [root,*root.rglob('*')]}
|
||||
assert actual==set(expected)
|
||||
protected={str(p):sha(p) for root in roots for p in root.parent.iterdir() if p.is_file()}
|
||||
allocated=logical=files=0
|
||||
for rel,x in expected.items():
|
||||
p=B/rel; s=p.lstat(); assert not p.is_symlink()
|
||||
assert s.st_mtime_ns==x['mtime_ns'] and s.st_mode&0o7777==x['mode'],rel
|
||||
if x['type']=='file':
|
||||
assert p.is_file() and s.st_size==x['bytes'] and sha(p)==x['sha256'],rel
|
||||
allocated+=s.st_blocks*512;logical+=s.st_size;files+=1
|
||||
else:assert p.is_dir()
|
||||
assert files==M['files']==5554 and logical==M['logical_bytes']
|
||||
free_before=shutil.disk_usage(B).free
|
||||
for rel,x in expected.items():
|
||||
if x['type']=='file':(B/rel).unlink()
|
||||
for rel,x in sorted(expected.items(),key=lambda a:len(Path(a[0]).parts),reverse=True):
|
||||
if x['type']=='directory':(B/rel).rmdir()
|
||||
assert all(not p.exists() for p in roots)
|
||||
assert protected=={p:sha(Path(p)) for p in protected}
|
||||
pointer={'manifest':str(D/'MANIFEST.json'),'cloud_parts':str(D/'CLOUD_PARTS.json'),'restore':str(D/'RESTORE.md'),'folder_url':'https://drive.google.com/drive/folders/1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK','archive_sha256':P['archive_sha256'],'roots':M['roots'],'local_originals_retired':True,'formal_credit':0}
|
||||
for root in roots:(root.parent/'CLOUD_COLD_PAIR_HISTORY.json').write_text(json.dumps(pointer,ensure_ascii=False,indent=2)+'\n')
|
||||
report=dict(files=files,logical_bytes=logical,allocated_bytes_before=allocated,free_before=free_before,free_after=shutil.disk_usage(B).free,all_original_files_reverified_before_removal=True,cloud_downloaded_archive_all_members_verified=True,protected_parent_files_unchanged=protected,deleted_only_manifest_members=True,formal_credit=0,completed_unix=time.time())
|
||||
(D/'RETIREMENT.json').write_text(json.dumps(report,ensure_ascii=False,indent=2)+'\n')
|
||||
shutil.copy2(__file__,D/'retire_verified.py')
|
||||
print(json.dumps({k:v for k,v in report.items() if k!='protected_parent_files_unchanged'}))
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"cloud_id": "1RID5ModFGinXTSH-2XQaLWy2eSZFs71T",
|
||||
"cloud_url": "https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view?usp=drivesdk",
|
||||
"parent_id": "1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK",
|
||||
"manifest_id": "1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K",
|
||||
"manifest_url": "https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view?usp=drivesdk",
|
||||
"remote_bytes": 30061832,
|
||||
"readback_bytes": 30061832,
|
||||
"readback_sha256": "2b44c59686f10f8b5e25b9d423f9f39802aa1c136418f5f86caefb1bfe0d727b",
|
||||
"actual_authenticated_readback": true
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"all_unchanged": true,
|
||||
"pins": [
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated/index.json",
|
||||
"expected_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
|
||||
"actual_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b"
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17/index.json",
|
||||
"expected_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1",
|
||||
"actual_sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1"
|
||||
},
|
||||
{
|
||||
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01/runner-ended.json",
|
||||
"expected_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
|
||||
"actual_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264"
|
||||
}
|
||||
],
|
||||
"scope": "Current P08 accepted native/OS/full receipts retained unchanged; no new game acceptance",
|
||||
"checked_at_unix": 1792031007.0414379,
|
||||
"free_bytes_current": 1431257088
|
||||
}
|
||||
+83769
File diff suppressed because it is too large
Load Diff
+13
@@ -0,0 +1,13 @@
|
||||
# 終了済みP23検証証拠のGoogle Drive退避(2026-10-15)
|
||||
|
||||
作業用に保持する必要がない旧native検証8ディレクトリ(r05〜r08、各layout-A/B)を、非共有のGoogle Driveへ退避した。現在の作業版336a8cd、通常OS操作の生記録・画像、受入済みP08、最新Windows基準版、保存データ、素材、Git履歴は保持している。ゲームの受入状態・30パッケージ/88成果単位の完了数は変更しない。
|
||||
|
||||
- 元証拠: 10,456ファイル、887,222,239バイト。
|
||||
- 圧縮退避: 30,061,832バイト。Driveから実際に読み戻し、元アーカイブとSHA-256が一致した。
|
||||
- 全メンバーの内容・パス・モード・mtime_nsを照合してからローカルを撤去した。旧r06読取専用ミラーの重複2,622ファイルも、退避済み元データとのSHA一致確認後に撤去した。ミラー索引は保持した。
|
||||
- 撤去前の空き788,090,880バイト、撤去直後1,768,083,456バイト。後続確認の空きはFINAL_LOCAL_CHECK.jsonに記録した。他プロセスの書込みにより現在値は変動する。
|
||||
- 退避用一時ファイルは残っていない。受入済みP08の主要証拠3点は再計算したSHAが一致した。
|
||||
|
||||
[退避ファイル](https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view)、[全ファイル目録](https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view)、[クラウド上の復元手順](https://drive.google.com/file/d/1aMi_UCFwjKxs6sRQwwVONfGxZiNibyiC/view)。ローカルのRESTORE.mdにも復元方法がある。各退避元にはCLOUD_ARCHIVE.jsonを残した。
|
||||
|
||||
照合記録はCLOUD.json、RETIREMENT.json、MANIFEST.json、VERIFIED_DRIVE_LISTING.json、FINAL_LOCAL_CHECK.jsonに保存した。Google Driveの3ファイルはいずれも非共有であることを一覧から確認した。
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
P23 closed diagnostic streams archive
|
||||
|
||||
Archive: https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view?usp=drivesdk
|
||||
Manifest: https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view?usp=drivesdk
|
||||
|
||||
Download the single tar.gz, verify SHA256 2b44c59686f10f8b5e25b9d423f9f39802aa1c136418f5f86caefb1bfe0d727b and bytes30061832, then extract selected original relative paths into the artifacts base recorded in MANIFEST.json. Do not overwrite current proof. Embedded __P23_NATIVE_STREAM_ARCHIVE__.json and local MANIFEST.json preserve every member SHA, mode and exact mtime_ns. Restore ns times with os.utime only after verifying every file.
|
||||
|
||||
Retired only eight closed native layout-A/B directories from r05-r08 and the redundant r06 read-only mirror payload. Current336a8cd code, failed OS raw input/screens/state, all accepted P08 proof, latest Windows baseline, saves/assets/git retained. All cloud readback and member hashes verified before retirement. No original30/88 credit change.
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"state": "cloud_archived_closed_diagnostic",
|
||||
"cloud_id": "1RID5ModFGinXTSH-2XQaLWy2eSZFs71T",
|
||||
"cloud_url": "https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view?usp=drivesdk",
|
||||
"archive_sha256": "2b44c59686f10f8b5e25b9d423f9f39802aa1c136418f5f86caefb1bfe0d727b",
|
||||
"local_manifest": "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/docs/plans/original-completion-2026-10-02/execution/drive-offload-p23-20261015/MANIFEST.json",
|
||||
"cloud_manifest_url": "https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view?usp=drivesdk",
|
||||
"restore": "Download archive; verify SHA; extract its original relative paths into the recorded base. Embedded JSON preserves exact member SHA/mode/mtime_ns.",
|
||||
"accepted_current_evidence_affected": false,
|
||||
"retired_original_files": 10456,
|
||||
"retired_logical_bytes": 887222239,
|
||||
"retired_redundant_mirror_files": 2622,
|
||||
"mirror_index_retained": true,
|
||||
"free_before_bytes": 788090880,
|
||||
"free_after_bytes": 1768083456,
|
||||
"scratch_files": 0,
|
||||
"time_unix": 1792029993.551488
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"id": "1aMi_UCFwjKxs6sRQwwVONfGxZiNibyiC",
|
||||
"name": "p23-closed-native-streams-r05-r08.RESTORE.md",
|
||||
"bytes": "1013",
|
||||
"shared": false,
|
||||
"visibility": "not_shared",
|
||||
"url": "https://drive.google.com/file/d/1aMi_UCFwjKxs6sRQwwVONfGxZiNibyiC/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K",
|
||||
"name": "p23-closed-native-streams-r05-r08.manifest.json",
|
||||
"bytes": "3450515",
|
||||
"shared": false,
|
||||
"visibility": "not_shared",
|
||||
"url": "https://drive.google.com/file/d/1_XZhusnYMBK-1OZCaZTLVuWyhOOLX22K/view?usp=drivesdk"
|
||||
},
|
||||
{
|
||||
"id": "1RID5ModFGinXTSH-2XQaLWy2eSZFs71T",
|
||||
"name": "p23-closed-native-streams-r05-r08.tar.gz",
|
||||
"bytes": "30061832",
|
||||
"shared": false,
|
||||
"visibility": "not_shared",
|
||||
"url": "https://drive.google.com/file/d/1RID5ModFGinXTSH-2XQaLWy2eSZFs71T/view?usp=drivesdk"
|
||||
}
|
||||
]
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
"""Lossless cloud preparation for eight explicitly closed diagnostic streams."""
|
||||
from pathlib import Path
|
||||
import datetime, hashlib, io, json, shutil, tarfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[5]
|
||||
BASE = ROOT / 'artifacts/original-completion-2026-10-02'
|
||||
DOC = Path(__file__).resolve().parent
|
||||
SCRATCH = Path('/private/tmp/the-tree-p23-closed-streams-20261015')
|
||||
TRIALS = ('p23-03-native-cellfix-r05', 'p23-03-native-drawfix-r06',
|
||||
'p23-03-native-os-0b7727a-r07', 'p23-03-native-os-trafficfix-r08')
|
||||
NAME = 'p23-closed-native-streams-r05-r08'
|
||||
|
||||
def sha(path):
|
||||
digest = hashlib.sha256()
|
||||
with Path(path).open('rb') as stream:
|
||||
for block in iter(lambda: stream.read(1048576), b''):
|
||||
digest.update(block)
|
||||
return digest.hexdigest()
|
||||
|
||||
def inventory():
|
||||
rows = []
|
||||
for name in TRIALS:
|
||||
ended = json.loads((BASE/name/'runner-ended.json').read_text())
|
||||
assert not ended['cleanup_errors']
|
||||
assert all(row['engine_ended'] for row in ended['cleanup'])
|
||||
for label in ('layout-A', 'layout-B'):
|
||||
root = BASE/name/label
|
||||
assert root.is_dir() and not root.is_symlink()
|
||||
for path in [root] + sorted(root.rglob('*')):
|
||||
assert not path.is_symlink()
|
||||
stat = path.stat()
|
||||
row = dict(path=path.relative_to(BASE).as_posix(),
|
||||
mode=stat.st_mode & 0o7777, mtime_ns=stat.st_mtime_ns)
|
||||
if path.is_file():
|
||||
row.update(type='file', bytes=stat.st_size, sha256=sha(path))
|
||||
else:
|
||||
assert path.is_dir()
|
||||
row['type'] = 'directory'
|
||||
rows.append(row)
|
||||
return rows
|
||||
|
||||
def build():
|
||||
assert shutil.disk_usage(BASE).free > 512*1024**2
|
||||
SCRATCH.mkdir(exist_ok=True)
|
||||
archive = SCRATCH/(NAME+'.tar.gz')
|
||||
assert not archive.exists()
|
||||
rows = inventory()
|
||||
metadata = dict(schema='p23-closed-streams-cloud-v1', name=NAME,
|
||||
base=str(BASE), roots=[f'{n}/{v}' for n in TRIALS for v in ('layout-A', 'layout-B')],
|
||||
members=rows, files=sum(r['type']=='file' for r in rows),
|
||||
logical_bytes=sum(r.get('bytes', 0) for r in rows),
|
||||
selection='Ended native A/B diagnostics only; current source/OS/raw accepted P08 evidence retained',
|
||||
created_at=datetime.datetime.now(datetime.timezone.utc).isoformat())
|
||||
payload=(json.dumps(metadata, ensure_ascii=False, indent=2)+'\n').encode()
|
||||
with tarfile.open(archive, 'w:gz', compresslevel=6, format=tarfile.PAX_FORMAT) as output:
|
||||
for row in rows:
|
||||
output.add(BASE/row['path'], arcname=row['path'], recursive=False)
|
||||
info=tarfile.TarInfo('__P23_NATIVE_STREAM_ARCHIVE__.json')
|
||||
info.size=len(payload)
|
||||
output.addfile(info, io.BytesIO(payload))
|
||||
with tarfile.open(archive, 'r:gz') as source:
|
||||
assert len(source.getnames()) == len(rows)+1
|
||||
assert source.extractfile('__P23_NATIVE_STREAM_ARCHIVE__.json').read() == payload
|
||||
for row in rows:
|
||||
member=source.getmember(row['path'])
|
||||
if row['type']=='directory':
|
||||
assert member.isdir()
|
||||
continue
|
||||
digest=hashlib.sha256()
|
||||
with source.extractfile(member) as stream:
|
||||
for block in iter(lambda: stream.read(1048576), b''):
|
||||
digest.update(block)
|
||||
assert member.isfile() and member.size==row['bytes'] and digest.hexdigest()==row['sha256']
|
||||
assert inventory()==rows
|
||||
metadata.update(archive=str(archive), archive_bytes=archive.stat().st_size,
|
||||
archive_sha256=sha(archive), archive_members_verified=True)
|
||||
(DOC/'MANIFEST.json').write_text(json.dumps(metadata, ensure_ascii=False, indent=2)+'\n')
|
||||
print(json.dumps({k:v for k,v in metadata.items() if k!='members'}), flush=True)
|
||||
|
||||
if __name__=='__main__':
|
||||
build()
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
"""Retire only manifest-bound closed streams after actual Drive readback."""
|
||||
import importlib.util, json, pathlib, shutil, subprocess, time
|
||||
|
||||
DOC=pathlib.Path(__file__).resolve().parent
|
||||
spec=importlib.util.spec_from_file_location('closed_archive', DOC/'archive_closed_streams.py')
|
||||
archive=importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(archive)
|
||||
manifest=json.loads((DOC/'MANIFEST.json').read_text())
|
||||
cloud=json.loads((DOC/'CLOUD.json').read_text())
|
||||
readback=archive.SCRATCH/'cloud-readback.tar.gz'
|
||||
assert cloud['cloud_id']=='1RID5ModFGinXTSH-2XQaLWy2eSZFs71T'
|
||||
assert cloud['parent_id']=='1Xa2b6rQmwBFq4jWIDFcJgiCbcNYfWXsK'
|
||||
assert archive.sha(readback)==archive.sha(manifest['archive'])==manifest['archive_sha256']
|
||||
assert readback.stat().st_size==cloud['readback_bytes']==manifest['archive_bytes']
|
||||
assert manifest['archive_members_verified']
|
||||
assert archive.inventory()==manifest['members']
|
||||
opened=subprocess.run(['lsof','-n','-F','n'],capture_output=True,text=True).stdout.splitlines()
|
||||
roots=[archive.BASE/name for name in manifest['roots']]
|
||||
assert all(not any(line.startswith('n'+str(root)+'/') for line in opened) for root in roots)
|
||||
|
||||
# The old native mirror is no longer a working input. Retain its exact index;
|
||||
# every mirrored payload must be proved to be in the cloud archive first.
|
||||
mirror=pathlib.Path('/Users/korizatou114/Projects/TheTree-managed-worktrees/p23-03-code/.runtime/P23-03/offline-evidence-55c29f1-r06')
|
||||
mirror_index=json.loads((mirror/'MIRROR_INDEX.json').read_text())
|
||||
pins={r['path']:r for r in manifest['members'] if r['type']=='file'}
|
||||
for row in mirror_index['files']:
|
||||
original='p23-03-native-drawfix-r06/'+row['path']
|
||||
assert pins[original]['sha256']==row['sha256']==archive.sha(mirror/row['path'])
|
||||
assert not any(line.startswith('n'+str(mirror)+'/') for line in opened)
|
||||
before=shutil.disk_usage(archive.BASE).free
|
||||
for row in manifest['members']:
|
||||
if row['type']=='file':
|
||||
(archive.BASE/row['path']).unlink()
|
||||
for row in sorted(manifest['members'],key=lambda r:len(pathlib.Path(r['path']).parts),reverse=True):
|
||||
if row['type']=='directory':
|
||||
(archive.BASE/row['path']).rmdir()
|
||||
pointer=dict(state='cloud_archived_closed_diagnostic',cloud_id=cloud['cloud_id'],
|
||||
cloud_url=cloud['cloud_url'],archive_sha256=manifest['archive_sha256'],
|
||||
local_manifest=str(DOC/'MANIFEST.json'),cloud_manifest_url=cloud['manifest_url'],
|
||||
restore='Download archive; verify SHA; extract its original relative paths into the recorded base. Embedded JSON preserves exact member SHA/mode/mtime_ns.',
|
||||
accepted_current_evidence_affected=False)
|
||||
for root in roots:
|
||||
root.mkdir()
|
||||
(root/'CLOUD_ARCHIVE.json').write_text(json.dumps(dict(pointer,original_root=str(root)),indent=2)+'\n')
|
||||
for row in mirror_index['files']:
|
||||
(mirror/row['path']).unlink()
|
||||
for root in (mirror/'layout-A',mirror/'layout-B'):
|
||||
for directory in sorted([p for p in root.rglob('*') if p.is_dir()],key=lambda p:len(p.parts),reverse=True):
|
||||
directory.rmdir()
|
||||
(root/'CLOUD_ARCHIVE.json').write_text(json.dumps(dict(pointer,regenerate_read_only_mirror=True),indent=2)+'\n')
|
||||
assert archive.sha(readback)==manifest['archive_sha256']
|
||||
pathlib.Path(manifest['archive']).unlink()
|
||||
readback.unlink()
|
||||
result=dict(pointer,retired_original_files=manifest['files'],retired_logical_bytes=manifest['logical_bytes'],
|
||||
retired_redundant_mirror_files=len(mirror_index['files']),mirror_index_retained=True,
|
||||
free_before_bytes=before,free_after_bytes=shutil.disk_usage(archive.BASE).free,
|
||||
scratch_files=len(list(archive.SCRATCH.iterdir())),time_unix=time.time())
|
||||
(DOC/'RETIREMENT.json').write_text(json.dumps(result,indent=2)+'\n')
|
||||
print(json.dumps(result),flush=True)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user