Record P08-03 exact native OS review proof and lossless storage recovery

This commit is contained in:
Takeshi
2026-10-15 07:33:08 +09:00
parent 7564423c85
commit a025d77684
20 changed files with 2028 additions and 9 deletions
@@ -0,0 +1,57 @@
{
"candidate": "d369d1c399f7506bdb8d980b642ad0da216d14f4",
"formal_acceptance": false,
"original_unit_credit": 0,
"Root_integrity_deficits": [],
"registered_validation": "pass",
"independent_review": {
"status": "pass",
"job": "ad6828d3170344f9a8b1b5b75fdd6a78",
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p08-03-code/runs/ad6828d3170344f9a8b1b5b75fdd6a78/result.json",
"sha256": "560050d8c031a9cfd6de3c458f9d97c9fb92d55248376b36571e75bc89a88435"
},
"OS_phases": [
{
"role": "writer",
"actual_pid": 21643,
"exit_code": 0,
"engine_ended": true,
"error": null,
"guard_errors": [],
"cleanup_errors": [],
"passed": true
},
{
"role": "reader",
"actual_pid": 32505,
"exit_code": 0,
"engine_ended": true,
"error": null,
"guard_errors": [],
"cleanup_errors": [],
"passed": true
}
],
"writer_requests": 58,
"reader_requests": 4,
"conditions": [
"support_connection",
"invalid_position_reason",
"demolish_rebuild",
"pan_zoom_world_identity",
"separate_pid_resume"
],
"original_index_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
"evidence_root": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated",
"evidence_recording_correction": "First current writer capture bytes were initially written under R18 by a stale helper closure, then copied byte-identically to R19 with explicit mapping. No old R18 PID16041 gameplay was reused. Original R18 first capture files are invalid as original R18 evidence after this overwrite. Root disclosed the error, and subsequent helpers use self-owned root/app properties.",
"full_call_trace": "All requests carry supplemental actual session call IDs/arguments, including property-based reader app calls omitted by the narrower original receipt collector. Original receipts unchanged.",
"Root_full176": "FULL_REGRESSION_D369D1C_R01_PASS.json",
"Root_local153": "REPAIR20_ROOT_VERIFICATION_D369D1C.json",
"remaining": [
"independent all-five semantic review result",
"honest executed-vs-integration binding preserving original raw files",
"integration and final verification",
"original unit ledger closure",
"global Windows same-distribution physical acceptance remains open"
]
}
@@ -0,0 +1,40 @@
{
"candidate": "d369d1c399f7506bdb8d980b642ad0da216d14f4",
"historical_builds_preserved": [
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r05-4a17d0e0",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r05-4a17d0e0"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r08-4f3b42df",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r08-4f3b42df"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r07-0c5e0022",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r07-0c5e0022"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r01-7dd450c6",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r01-7dd450c6"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r04-8e3d79d5",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r04-8e3d79d5"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r06-d0128636",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r06-d0128636"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/p08-normal-placement-evidence",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/p08-normal-placement-evidence"
},
{
"old": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/historical-native-r02-c2b59f04",
"preserved": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/evidence-archive/pre-d369/historical-native-r02-c2b59f04"
}
],
"validation_alias": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/p08-normal-placement-evidence",
"original_raw_root": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated",
"after_validation": "Materialize byte-identical proof in registered build for complete independent review; raw original paths remain readable and immutable."
}
@@ -0,0 +1,23 @@
{
"candidate": "d369d1c399f7506bdb8d980b642ad0da216d14f4",
"runtime": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03",
"roots": [
{
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated",
"pin_file": "index.json",
"sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b"
},
{
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-d369d1c-r17",
"pin_file": "index.json",
"sha256": "16c3577ca226173fea65df8595ab42a8b257ba50166da1a8564e6eda126694a1"
},
{
"path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01",
"pin_file": "runner-ended.json",
"sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264"
}
],
"permission": "read-only exact same-task synthetic game proof; no write rules changed; no personal/auth data",
"owner_scope": "existing user-directed multi-agent implementation and independent review with complete raw evidence"
}
@@ -0,0 +1,9 @@
{
"candidate": "d369d1c399f7506bdb8d980b642ad0da216d14f4",
"state_after_registered_validation": "review_pending",
"raw_index_sha256": "fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b",
"mirror_bytes_verified": 925,
"raw_original_root": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated",
"materialized_build_root": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/.runtime/P08-03/build/p08-normal-placement-evidence",
"no_raw_mutations": true
}
@@ -0,0 +1,15 @@
{
"unit": "P08-03",
"blocking_findings": 0,
"deferred": [
{
"severity": "low",
"message": "In `completion_marker_contracts.json`, the new entry for `tests/transport/test_runtime_build_preview.gd` has the wrong authority. It points to `docs/spec/acceptance/P08-03.json` with scope \"normal placement; native and OS pending\", but that suite belongs to the support task P08-03-RTPREVIEW. The registration itself is needed, but the authority and scope text should name the RTPREVIEW spec."
},
{
"severity": "low",
"message": "`main.gd` `_preview_demolition` opens the confirmation dialog even when the clicked cell has no facility; the dialog shows an empty facility ID. Confirming then sends `demolish_facility` with an empty `instance_id`, and the Runtime refuses it. The game state stays correct, but the UX could tell the user no facility is selected instead of opening the dialog."
}
],
"reason": "Independent review PASS; nonblocking metadata/empty-cell demolition UX; preserve exact accepted source and do not broaden current unit."
}
@@ -0,0 +1,23 @@
{
"task_id": "P08-03",
"commit": "d369d1c399f7506bdb8d980b642ad0da216d14f4",
"status": "pass",
"summary": "The single acceptance item P08-03 and all five required conditions are met for candidate d369d1c. The evidence was collected at that exact candidate:\n- Real macOS OS input: writer PID 21643 (58 requests) and reader PID 32505 (4 requests).\n- Native runs r17.\n- Full regression: 176 suites passed.\n- The registered `check_p08_normal_placement_evidence.py --verify-only` run passed with no deficits.\n\n**support_connection:** Two positive cases built through the normal palette and completed: `reception` at (-8,0) with a CONNECTED path, and the lower/upper `guest_stairs` at (4,1)/(4,2). Two rejection cases were refused with no command submitted: `standard_room` unsupported at (10,4) (`UNSUPPORTED`), and `guest_stairs` with no landing below at (-8,2) (`STAIR_LANDING_MISSING`). The preview now uses the shared Runtime precheck (`preview_build_facility`), so preview and command give the same result.\n\n**invalid_position_reason:** The out-of-bounds case at (12,0) returns `OUT_OF_BOUNDS` first and shows \"世界の範囲外です\". The overlap case returns `OVERLAP` and shows \"重なります\". In every rejection the displayed status matches the first error code or the Runtime message. The checker's `preserve()` compares the full typed state and allows no difference except the command envelope.\n\n**demolish_rebuild:** A demolition entry, confirmation dialog and cancel were added to the normal palette, and they call the existing `demolish_facility` Runtime command.\n- Refused demolition of the supporting stair returns `STAIR_LANDING_IN_USE`, and its message is shown.\n- Cancel submits no command, and the state is unchanged.\n- The real demolition removes only `facility_00000001`; the refund (資材 2) matches the resource change.\n- Rebuilding on the same cell (-8,0) creates `facility_00000004`.\n\n**pan_zoom_world_identity:** Panning used move mode with an ordinary wheel and no Ctrl. Zoom steps clamp at 0.5 and 4.0, which matches the existing `clampf(value, 0.5, 4.0)` in `world_preview.gd`. The same world cell (-8,0,0) was selected at a moved pixel position (290,483 → 547,516), and the selected entity is `facility_00000004`.\n\n**separate_pid_resume:** The formal save was written by the writer process. A separate reader process resumed it, `facility_00000004` still occupies (-8,0,0), and the same cell is refused as `OVERLAP` through the normal palette.\n\n**Scope:** Product changes are limited to `main.gd` and `world_preview.gd`. The Runtime change comes from the separately reviewed and integrated support task P08-03-RTPREVIEW (dbf5cb8). The `suite-policy.json` change only adds the source-SHA-pinned ordinary cleanup policy for the new suite. No tests were deleted or disabled.\n\n**Still open (Root's responsibility, not this review):** integration, final verification on the merged result, and the ledger update. Windows same-distribution/device acceptance stays open at the global platform level, and the Mac evidence is not counted for Windows. The fixture is tagged as diagnostic setup, not natural play. The 30-package/88-unit denominator is unchanged.",
"acceptance_ids": [
"P08-03"
],
"findings": [
{
"severity": "low",
"message": "In `completion_marker_contracts.json`, the new entry for `tests/transport/test_runtime_build_preview.gd` has the wrong authority. It points to `docs/spec/acceptance/P08-03.json` with scope \"normal placement; native and OS pending\", but that suite belongs to the support task P08-03-RTPREVIEW. The registration itself is needed, but the authority and scope text should name the RTPREVIEW spec."
},
{
"severity": "low",
"message": "`main.gd` `_preview_demolition` opens the confirmation dialog even when the clicked cell has no facility; the dialog shows an empty facility ID. Confirming then sends `demolish_facility` with an empty `instance_id`, and the Runtime refuses it. The game state stays correct, but the UX could tell the user no facility is selected instead of opening the dialog."
},
{
"severity": "low",
"message": "Collection note in `P08-03_INDEPENDENT_REVIEW_CONTEXT.json`: a helper first wrote the writer's current screenshots to an old directory, and Root then moved them with a SHA mapping (`recording-path-correction.json`, `complete-cua-call-trace.json`). The checker re-verified the bytes and request bindings and passed. The integration reviewer should keep this record with the evidence."
}
]
}
@@ -0,0 +1,14 @@
{
"decision": {
"action": "prepare-integration",
"task_id": "P08-03",
"reason": "Read-only design review of the Root integration adapter for P08-03 at E=d369d1c, checked against direction 910bbd05 and tools/check_p08_normal_placement_evidence.py at E. This is a planning decision only. I do not run prepare-integration myself, and no worker is dispatched.\n\n**Verdict:** no defect blocks the adapter. Each requirement you listed is covered as follows.\n\n1. **All 5 conditions remain required.** The adapter calls the unchanged checker on the executed tree, gate.check(W, PROOF), and requires an empty deficit list.\n - check() at :633-1021 still enforces `index['conditions'] == CONDITIONS` (all 5) at :639.\n - It also checks source and input freshness (:653-654), the spec sha (:655), the marker (:656), and the commit against HEAD of W, which equals E (:659).\n - It also checks the raw native and OS PIDs, lifecycle, profile guard, strict marker, screenshots and transformed cells (:669-1016).\n - check() catches its errors and returns them as a list (:1020-1021), so `need(deficits == [])` is the right gate.\n2. **Source and inputs equal except progress line 3.**\n - `sources == idx['source_map']` is computed on the final tree with the checker's own runner.source_refs.\n - input_map(wt) must have the same roster as at E, and every value except PLAN must be equal. input_map (:143-149) includes the spec, marker contract, AGENTS, recorder, BASELINE and all of tests/fixtures/p08-03.\n - For PLAN: the line count must match, lines 1-2 and lines 4 onward must be byte-identical, and line 3 must start with '> ' in both versions. `a[2]` is line 3, so the indexing is correct.\n3. **Raw evidence stays immutable.**\n - The adapter checks the pinned INDEX_SHA and that `index.commit == E`.\n - It rehashes every artifact for size and sha, rejecting symlinks and paths that escape PROOF.\n - It only reads from PROOF and FULL. Its single write goes to the build directory, and that write is idempotent: it must match any existing file byte for byte.\n4. **Full 176-suite source equality.**\n - runner-input `selected_source_map == sources` (the final tree's map, which equals the E map).\n - runner-ended requires passed, engine_ended, 176 suites, 20488 strict checks, and no errors, failures, unexecuted tests or missing markers.\n - The receipt pins are rehashed.\n - The engine sha256 must match both the native run's engine sha256 and a fresh hash of the engine binary.\n5. **No fabricated reruns.** The report records `new_native_runs: 0`, `new_os_runs: 0` and `raw_evidence_modified: false`, and records E and F separately.\n6. **No false relabelling of the candidate.**\n - The final tree must equal Git's ordinary `merge-tree --write-tree` of main_base and E, so there are no hand edits in the merge.\n - The merge must have exactly two parents, with parents[1] == E.\n - For kind=integration, main must be at main_base. For kind=final, the registered candidate and main_base must match.\n - The scope stays macOS-only, and Windows stays open.\n - The adapter only intercepts the Runner's verify step for this project, this task and kind integration or final. Every other kind falls through to the original verify.\n\n**Non-blocking notes**\n- (a) The adapter ignores what `runner.has_evidence(...)` returns. If that function returns a bool rather than raising, both calls are no-ops. Wrap them as `need(runner.has_evidence(...), 'executed validation/review evidence')`.\n - Practical risk is low: the task is already reviewed at E, so that evidence exists.\n - I could not read the Runner core (verify, prepare, integrate, has_evidence) because file access is limited to the worktree. This is a context gap; Root should confirm this point there.\n- (b) `git merge-tree --write-tree` needs Git 2.38 or later.\n- (c) The source-map equality covers only the inventoried source. Paths outside it, such as docs or other tasks' files, can come from main. That is acceptable because the merge-tree equality forbids any manual merge edits.\n\n**Still pending after this step:** Runner integration and the current final verification under this adapter, the ledger, the main update through the Runner, and Windows same-distribution/device acceptance (stays open, with no Mac substitution). No change to the spec, denominator, budget or acceptance.",
"codex_model": "gpt-6.1-sol",
"codex_model_reason": "No Codex worker is dispatched by this decision; this is a Runner integration step only. I keep the default, gpt-6.1-sol, recorded for continuity. Nothing here needs implementation work or debugging across components, so Astra would cost more time and usage for no quality gain."
},
"root_followup": [
"Actual plan line3 is plain Japanese dated progress summary, not Markdown blockquote; strict prefix assertion corrected to the existing P08-03 progress phrase. All other lines must be byte equal.",
"Runner.has_evidence raises GateError on missing records; confirmed core source, no boolean no-op.",
"No worker dispatched; existing user main update authorization applies."
]
}
@@ -0,0 +1,23 @@
"""Read-only route to SHA-fixed proof for the existing P08 task, not new permissions to write."""
import hashlib,json
from pathlib import Path
def install(core):
pins=json.loads(Path(__file__).with_name("D369_REGISTERED_PROOF_READ_PINS.json").read_text());runtime=Path(pins["runtime"]).resolve();parent=runtime.parents[1];original=core.seatbelt
def scoped(worktree,run_root,writable,service=None):
profile=original(worktree,run_root,writable,service)
if Path(run_root).resolve()!=runtime or Path(worktree).resolve().parent!=parent or not Path(worktree).name.startswith("P08-03-"):return profile
core.require(core.git(worktree,"rev-parse","HEAD")==pins["candidate"],"exact proof candidate")
roots=[]
for row in pins["roots"]:
path=Path(row["path"]).resolve();core.require(path.name.startswith("p08-03-") and path.parent.name=="original-completion-2026-10-02","same-task proof root")
core.require(hashlib.sha256((path/row["pin_file"]).read_bytes()).hexdigest()==row["sha256"],"fixed original proof pin")
roots.append(path)
rows=profile.splitlines();slots=[i for i,s in enumerate(rows)if s.startswith("(deny file-read-data (require-all ")];core.require(len(slots)==1,"known read profile")
clauses=set()
for origin in roots:
clauses.add("(require-not (subpath "+json.dumps(str(origin),ensure_ascii=False)+"))")
for p in origin.parents:
if p.is_relative_to(Path.home()):clauses.add("(require-not (literal "+json.dumps(str(p),ensure_ascii=False)+"))")
i=slots[0];core.require(rows[i].endswith("))"),"known read profile ending");rows[i]=rows[i][:-2]+" "+" ".join(sorted(clauses))+") )"
return "\n".join(rows)
core.seatbelt=scoped
@@ -0,0 +1,113 @@
"""Bind immutable executed P08 proof to a merge with equal product/input bytes.
Only progress-summary line 3 in IMPLEMENTATION_PLAN may differ. Never mutate
the executed index, receipts, screenshots or full-regression evidence.
"""
import difflib
import hashlib
import importlib.util
import json
import subprocess
from pathlib import Path
E = 'd369d1c399f7506bdb8d980b642ad0da216d14f4'
R = Path('/Users/korizatou114/Projects/とりにく工房ゲーム制作部')
W = Path('/Users/korizatou114/Projects/TheTree-managed-worktrees/p08-03-code/P08-03-implement')
D = R/'docs/plans/original-completion-2026-10-02/execution/p08-03'
A = R/'artifacts/original-completion-2026-10-02'
PROOF = A/'p08-03-native-os-d369d1c-r19-calibrated'
FULL = A/'p08-03-final-regression-d369d1c-r01'
PLAN = 'docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md'
INDEX_SHA = 'fc66a95ab228e70fd1e1aa40b92f8cb6890f8c9879c2be79940e969cb9a3521b'
def sha(p):
h = hashlib.sha256()
with Path(p).open('rb') as f:
for b in iter(lambda:f.read(1048576), b''): h.update(b)
return h.hexdigest()
def git(p, *args):
return subprocess.check_output(['git','-C',str(p),*args])
def need(ok, message):
if not ok: raise ValueError(message)
def load(p): return json.loads(Path(p).read_bytes())
def checker():
spec = importlib.util.spec_from_file_location('p08_executed_checker',W/'tools/check_p08_normal_placement_evidence.py')
m = importlib.util.module_from_spec(spec); spec.loader.exec_module(m); return m
def bind(runner, task_id, wt, final_sha, kind):
need(runner.config['project']=='the-tree-p08-03-code' and task_id=='P08-03', 'exact task')
need(kind in ('integration','final'), 'exact verification kind')
wt=Path(wt); task=runner.task(task_id)
need(task['submitted']==E and git(W,'rev-parse','HEAD').decode().strip()==E, 'executed revision')
need(not git(W,'status','--porcelain').strip() and not git(wt,'status','--porcelain').strip(), 'clean sources')
need(git(wt,'rev-parse','HEAD').decode().strip()==final_sha, 'final revision')
runner.has_evidence(task_id,'validation',E); runner.has_evidence(task_id,'review',E)
parents=git(wt,'show','-s','--format=%P',final_sha).decode().split()
need(len(parents)==2 and parents[1]==E, 'exact two-parent merge')
main_base=parents[0]
if kind=='integration': need(git(runner.repo,'rev-parse','main').decode().strip()==main_base, 'current main base')
else: need(task['candidate']==final_sha and task['main_base']==main_base, 'registered final binding')
# The merge must be exactly Git's ordinary merge of these two inputs.
merged=git(wt,'merge-tree','--write-tree',main_base,E).decode().splitlines()[0]
need(merged==git(wt,'rev-parse',final_sha+'^{tree}').decode().strip(), 'unexpected merge edits')
need(sha(PROOF/'index.json')==INDEX_SHA, 'immutable raw index')
idx=load(PROOF/'index.json'); need(idx['commit']==E, 'raw executed SHA')
gate=checker()
sources={n:v['sha256'] for n,v in gate.runner.source_refs(wt).items()}
need(sources==idx['source_map'], 'product/source inventory changed')
inputs=gate.input_map(wt); old=idx['inputs']
need(set(inputs)==set(old), 'input roster changed')
need(all(v==old[n] for n,v in inputs.items() if n!=PLAN), 'non-plan input changed')
before=(W/PLAN).read_bytes(); after=(wt/PLAN).read_bytes()
a=before.splitlines(keepends=True); b=after.splitlines(keepends=True)
need(len(a)==len(b) and a[:2]==b[:2] and a[3:]==b[3:], 'normative plan changed beyond progress line 3')
need('現在の閉鎖対象はP08-03。'.encode() in a[2] and '現在の閉鎖対象はP08-03。'.encode() in b[2], 'progress summary format')
need(sha(wt/gate.CONTRACT)==idx['marker_contract_sha256'], 'marker changed')
deficits=gate.check(W,PROOF); need(deficits==[], 'unchanged original checker failed: '+str(deficits))
# Rehash every raw proof member even though unchanged checker also does so.
manifest={}
for n,pin in idx['artifacts'].items():
p=PROOF/n
need(not p.is_symlink() and p.resolve().is_relative_to(PROOF.resolve()), 'unsafe proof path')
need(p.stat().st_size==pin['bytes'] and sha(p)==pin['sha256'], 'raw proof changed: '+n)
manifest[n]=pin
need(sha(D/'FULL_REGRESSION_D369D1C_R01_PASS.json')=='1591f0c7fceac1586f044dd3632f6fd286599d921f8da38b7a07971c3d5a2681', 'immutable full receipt manifest')
full_pin=load(D/'FULL_REGRESSION_D369D1C_R01_PASS.json')
for pin in full_pin['references']:
p=R/pin['path']; need(sha(p)==pin['sha256'] and p.stat().st_size==pin['bytes'], 'full receipt changed')
f=load(FULL/'runner-input.json'); end=load(FULL/'runner-ended.json')
need(f['selected_source_map']==sources, 'full regression source mismatch')
need(end['passed'] and end['engine_ended'] and end['actual_suites']==176 and end['strict_accepted_checks']==20488, 'full regression incomplete')
need(not any(end[k] for k in ('error','cleanup_errors','guard_errors','missing_marker_paths','remaining_unexecuted_tests','failed_suites')), 'full regression failures')
native=load(PROOF/'runner-input.json')
need(f['engine']==native['engine'] and f['engine_sha256']==native['engine_sha256']==sha(f['engine']), 'engine changed')
# Exact source map and unchanged gate bind fixture, environment subset,
# command/configuration, teardown, audio and image request provenance.
out=Path(runner.allocation(task_id)['build_dir'])/('integration-applicability-'+final_sha+'-'+kind+'.json')
result={'passed':True,'kind':kind,'executed_sha':E,'final_sha':final_sha,'main_base':main_base,
'raw_index_sha256':INDEX_SHA,'raw_artifacts':manifest,'source_files_equal':len(sources),
'input_map_executed':old,'input_map_final':inputs,'unchanged_checker_deficits':deficits,
'plan_executed':before.decode(),'plan_final':after.decode(),
'plan_diff':''.join(difflib.unified_diff(before.decode().splitlines(True),after.decode().splitlines(True),fromfile=E,tofile=final_sha)),
'plan_only_progress_summary_changed':True,'full_suites':176,'strict_checks':20488,
'full_receipt_pins':full_pin['references'],'engine_sha256':f['engine_sha256'],
'new_native_runs':0,'new_os_runs':0,'raw_evidence_modified':False,
'scope':'P08-03 macOS acceptance only; diagnostic setup; no Windows acceptance'}
raw=(json.dumps(result,ensure_ascii=False,indent=2)+'\n').encode()
if out.exists(): need(out.read_bytes()==raw,'existing binding changed')
else: out.write_bytes(raw)
runner.evidence(task_id,kind,final_sha,out,True)
runner.event(task_id,'immutable_executed_proof_applicability',{'executed_sha':E,'final_sha':final_sha,'kind':kind,'report':str(out),'sha256':sha(out)})
return out
def install(core):
original=core.Runner.verify
def verify(runner, task_id, wt, sha_, kind):
if runner.config['project']=='the-tree-p08-03-code' and task_id=='P08-03' and kind in ('integration','final'):
return bind(runner,task_id,wt,sha_,kind)
return original(runner,task_id,wt,sha_,kind)
core.Runner.verify=verify
@@ -0,0 +1,13 @@
// R19 corrected helper template; set each function .app and .root explicitly before a new collector.
// Paste into initialized cua_repl; no dynamic evaluation. No input on definition.
var evidenceFs = await import("node:fs/promises");
var osEvidenceRoot = "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r19-calibrated";
var imageDimensions = b=>{var v=new DataView(b.buffer,b.byteOffset,b.byteLength);if(b[0]===137&&b[1]===80)return[v.getUint32(16),v.getUint32(20)];var p=2;while(p+4<b.length){if(b[p++]!==255)throw Error('Image marker');while(b[p]===255)p++;var m=b[p++];if(m===217||m===218)break;var n=v.getUint16(p);if([192,193,194,195,197,198,199,201,202,203,205,206,207].includes(m))return[v.getUint16(p+5),v.getUint16(p+3)];p+=n;}throw Error('Image format');};
var calibratedPoint = function coordinate(q,b){var size=imageDimensions(b),scale=size[0]/q.window_size[0],title=size[1]-q.window_size[1]*scale;if(title<0||title>96*q.screen_scale)throw Error('Stale content bounds');var g={window_size:q.window_size,window_position:q.window_position,screenshot_pixels:size,reported_screen_scale:q.screen_scale,backing_scale:scale,titlebar_pixels:title,canvas_stretch:Math.min(q.window_size[0]/1440,q.window_size[1]/810)};if(coordinate.geometry&&JSON.stringify(coordinate.geometry)!==JSON.stringify(g))throw Error('Geometry changed');coordinate.geometry=g;var p=q.screen||q.viewport;return{geometry:g,point:p?[p[0]*g.canvas_stretch*scale,p[1]*g.canvas_stretch*scale+title]:null};};
calibratedPoint.geometry = null;
var performOsRequest = async function runOs(folder,mode){var requestFolder=runOs.root+'/os-pair/'+folder;var request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));var before=await runOs.app.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);if(c.point&&(c.point[0]<0||c.point[0]>=c.geometry.screenshot_pixels[0]||c.point[1]<c.geometry.titlebar_pixels||c.point[1]>=c.geometry.screenshot_pixels[1]))throw Error('Target outside screenshot; no input or ACK');await evidenceFs.writeFile(requestFolder+'/calibration.json',JSON.stringify(c.geometry));var events=[];if(mode==='click'){await runOs.app.click(c.point);events.push({action:'click',coordinates:c.point,logical_screen:request.screen,world_cell:request.world_cell,calibration:c.geometry});}else if(mode==='wheel'){await runOs.app.scroll(c.point,request.direction||'down',1);events.push({action:'wheel',coordinates:c.point,direction:request.direction||'down',ctrl:false,steps:1,calibration:c.geometry});}else throw Error('Use an explicit real action');await runOs.app.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await runOs.app.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify(events));nodeRepl.write({folder,events});};
performOsRequest.root=osEvidenceRoot; performOsRequest.app=godot;
var performPaletteReveal = async function reveal(folder){var requestFolder=reveal.root+'/os-pair/'+folder;var request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));if(request.action!=='reveal_palette'||!request.bar.visible)throw Error('No visible bar');var before=await reveal.app.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);var b=request.bar.rect;var v=[request.direction==='left'?b[0]+b[2]/32:b[0]+b[2]*31/32,b[1]+b[3]/2];var m=request.viewport_to_screen;var s=[m[0]*v[0]+m[2]*v[1]+m[4],m[1]*v[0]+m[3]*v[1]+m[5]];var point=[s[0]*c.geometry.canvas_stretch*c.geometry.backing_scale,s[1]*c.geometry.canvas_stretch*c.geometry.backing_scale+c.geometry.titlebar_pixels];if(point[0]<0||point[0]>=c.geometry.screenshot_pixels[0]||point[1]<c.geometry.titlebar_pixels||point[1]>=c.geometry.screenshot_pixels[1])throw Error('Bar outside screenshot');await reveal.app.click(point);await reveal.app.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await reveal.app.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify([{action:'click',coordinates:point,purpose:'normal horizontal scrollbar '+request.direction+' track',bar:request.bar,viewport:v,logical_screen:s,calibration:c.geometry}]));await evidenceFs.writeFile(requestFolder+'/calibration.json',JSON.stringify(c.geometry));nodeRepl.write({folder,direction:request.direction,point,requires_visual_success_before_ACK:true});};
performPaletteReveal.root=osEvidenceRoot; performPaletteReveal.app=godot;
var progressConstruction = async function progress(folder,resumePoint,pausePoint,cycles){var requestFolder=progress.root+'/os-pair/'+folder;var request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));if(request.action!=='complete_construction')throw Error('Not construction request');var before=await progress.app.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);for(var p of [resumePoint,pausePoint])if(p[0]<0||p[0]>=c.geometry.screenshot_pixels[0]||p[1]<c.geometry.titlebar_pixels||p[1]>=c.geometry.screenshot_pixels[1])throw Error('Speed control outside current screenshot');await progress.app.click(resumePoint);await progress.app.getAXState();for(var i=1;i<=cycles;i++)await evidenceFs.writeFile(requestFolder+'/construction-progress-'+i+'.png',await progress.app.getScreenshot({emit:false}));await progress.app.click(pausePoint);await progress.app.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await progress.app.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify([{action:'click',coordinates:resumePoint,purpose:'normal x3 resume',calibration:c.geometry},{action:'observe',screenshots:cycles,purpose:'normal construction progress',required_minutes:request.minutes},{action:'click',coordinates:pausePoint,purpose:'normal pause'}]));nodeRepl.write({folder,required_minutes:request.minutes,requires_visible_completion_before_ACK:true});};
progressConstruction.root=osEvidenceRoot; progressConstruction.app=godot;
@@ -0,0 +1,9 @@
// Paste into initialized cua_repl; no dynamic evaluation. No input on definition.
var evidenceFs = await import("node:fs/promises");
var osEvidenceRoot = "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-d369d1c-r18-calibrated";
var imageDimensions = b=>{var v=new DataView(b.buffer,b.byteOffset,b.byteLength);if(b[0]===137&&b[1]===80)return[v.getUint32(16),v.getUint32(20)];var p=2;while(p+4<b.length){if(b[p++]!==255)throw Error('Image marker');while(b[p]===255)p++;var m=b[p++];if(m===217||m===218)break;var n=v.getUint16(p);if([192,193,194,195,197,198,199,201,202,203,205,206,207].includes(m))return[v.getUint16(p+5),v.getUint16(p+3)];p+=n;}throw Error('Image format');};
var calibratedPoint = function coordinate(q,b){var size=imageDimensions(b),scale=size[0]/q.window_size[0],title=size[1]-q.window_size[1]*scale;if(title<0||title>96*q.screen_scale)throw Error('Stale content bounds');var g={window_size:q.window_size,window_position:q.window_position,screenshot_pixels:size,reported_screen_scale:q.screen_scale,backing_scale:scale,titlebar_pixels:title,canvas_stretch:Math.min(q.window_size[0]/1440,q.window_size[1]/810)};if(coordinate.geometry&&JSON.stringify(coordinate.geometry)!==JSON.stringify(g))throw Error('Geometry changed');coordinate.geometry=g;var p=q.screen||q.viewport;return{geometry:g,point:p?[p[0]*g.canvas_stretch*scale,p[1]*g.canvas_stretch*scale+title]:null};};
calibratedPoint.geometry = null;
var performOsRequest = async function(folder,mode){requestFolder=osEvidenceRoot+'/os-pair/'+folder;request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));var before=await godot.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);if(c.point&&(c.point[0]<0||c.point[0]>=c.geometry.screenshot_pixels[0]||c.point[1]<c.geometry.titlebar_pixels||c.point[1]>=c.geometry.screenshot_pixels[1]))throw Error('Target outside screenshot; no input or ACK');await evidenceFs.writeFile(requestFolder+'/calibration.json',JSON.stringify(c.geometry));var events=[];if(mode==='click'){await godot.click(c.point);events.push({action:'click',coordinates:c.point,logical_screen:request.screen,world_cell:request.world_cell,calibration:c.geometry});}else if(mode==='wheel'){await godot.scroll(c.point,request.direction||'down',1);events.push({action:'wheel',coordinates:c.point,direction:request.direction||'down',ctrl:false,steps:1,calibration:c.geometry});}else throw Error('Use an explicit real action');await godot.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await godot.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify(events));nodeRepl.write({folder,events});};
var performPaletteReveal = async function(folder){requestFolder=osEvidenceRoot+'/os-pair/'+folder;request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));if(request.action!=='reveal_palette'||!request.bar.visible)throw Error('No visible bar');var before=await godot.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);var b=request.bar.rect;var v=[request.direction==='left'?b[0]+b[2]/32:b[0]+b[2]*31/32,b[1]+b[3]/2];var m=request.viewport_to_screen;var s=[m[0]*v[0]+m[2]*v[1]+m[4],m[1]*v[0]+m[3]*v[1]+m[5]];var point=[s[0]*c.geometry.canvas_stretch*c.geometry.backing_scale,s[1]*c.geometry.canvas_stretch*c.geometry.backing_scale+c.geometry.titlebar_pixels];if(point[0]<0||point[0]>=c.geometry.screenshot_pixels[0]||point[1]<c.geometry.titlebar_pixels||point[1]>=c.geometry.screenshot_pixels[1])throw Error('Bar outside screenshot');await godot.click(point);await godot.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await godot.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify([{action:'click',coordinates:point,purpose:'normal horizontal scrollbar '+request.direction+' track',bar:request.bar,viewport:v,logical_screen:s,calibration:c.geometry}]));await evidenceFs.writeFile(requestFolder+'/calibration.json',JSON.stringify(c.geometry));nodeRepl.write({folder,direction:request.direction,point,requires_visual_success_before_ACK:true});};
var progressConstruction = async function(folder,resumePoint,pausePoint,cycles){requestFolder=osEvidenceRoot+'/os-pair/'+folder;request=JSON.parse(await evidenceFs.readFile(requestFolder+'/request.json','utf8'));if(request.action!=='complete_construction')throw Error('Not construction request');var before=await godot.getScreenshot({emit:false});await evidenceFs.writeFile(requestFolder+'/screen-before.png',before);var c=calibratedPoint(request,before);for(var p of [resumePoint,pausePoint])if(p[0]<0||p[0]>=c.geometry.screenshot_pixels[0]||p[1]<c.geometry.titlebar_pixels||p[1]>=c.geometry.screenshot_pixels[1])throw Error('Speed control outside current screenshot');await godot.click(resumePoint);await godot.getAXState();for(var i=1;i<=cycles;i++)await evidenceFs.writeFile(requestFolder+'/construction-progress-'+i+'.png',await godot.getScreenshot({emit:false}));await godot.click(pausePoint);await godot.getAXState();await evidenceFs.writeFile(requestFolder+'/screen-after.png',await godot.getScreenshot());await evidenceFs.writeFile(requestFolder+'/cua-actions.json',JSON.stringify([{action:'click',coordinates:resumePoint,purpose:'normal x3 resume',calibration:c.geometry},{action:'observe',screenshots:cycles,purpose:'normal construction progress',required_minutes:request.minutes},{action:'click',coordinates:pausePoint,purpose:'normal pause'}]));nodeRepl.write({folder,required_minutes:request.minutes,requires_visible_completion_before_ACK:true});};
@@ -0,0 +1,232 @@
{
"full_run": "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p08-03-final-regression-d369d1c-r01",
"ended_sha256": "0dbe71e589113088bd37be42fef583b8f6da86a15542f4900ed97fa957fc1264",
"all_owned_ended": true,
"paths": [
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-00227a9be3184f51890978ad57ddbcbe-standard-runtime-125",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-026f523829474674accf2f4671c364b2-standard-startup-121",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-02f2e54c601b4e93adb8dfbb92899867-standard-startup-060",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-050662a571504bdbab35b323bf2bdb15-standard-startup-001",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-050ad21a99bd49ef85406b3393ed91e9-standard-startup-090",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-056f0bfd1a844a02b07ba3bd7a01e0aa-standard-startup-099",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0715ea4e8aa648e78f0c8ef12d10c9e4-standard-startup-035",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-07392cfbeb85464e8a74e18729725e5b-standard-startup-136",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-07ffb4a657c342178e2ee49f200dc5c4-standard-startup-053",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-082516d8d33244b6a70a9306955de875-standard-startup-043",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0857bca823434a90ae1af156e35d0f17-standard-startup-094",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0b17fbd7cfde4ef296108123f5307cdb-standard-startup-169",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0c1c63ac80eb4e7e98b456631099ece2-standard-startup-006",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0c5786db0c67420da3aa80f2c79efc7e-standard-startup-033",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0cabefbd5fc94aa4a7e37167294f0867-standard-startup-112",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0cebd439404d4111a57a24bb162d8b47-standard-startup-057",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0d251f4516ad4069a5197d937f4bb5de-standard-startup-168",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0d8e813a1e0d4ccf94ad9b9c11d29300-standard-startup-025",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0eea7ee43d3f42ad874ac55cbb71ae68-standard-startup-133",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-0f4b520487464294bfae456b483e211f-standard-startup-038",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-11500a01239c41059d5dab9d6c24c7a8-standard-startup-122",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-12600c62a3c140ef87a18a5707a3a655-standard-startup-parse",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-126ae63f60c54385988a4de7903e656a-standard-runtime-008",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1277f1507aae4584a13c011c2a1796c4-standard-startup-026",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-139de2aacd87431b8456e3623a31377b-standard-startup-175",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-14d275aa943a47af9b335eaacdce0536-standard-startup-067",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-14fa6e23324f4566a36943146452335b-standard-runtime-131",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1540de4af44a4c7d84125ace32c9230d-standard-startup-import",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-15af510d64e84ecc80f113e17d4d3695-standard-startup-123",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1617d16df9864d4aa8afee13d211785b-standard-runtime-170",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-17142d97a095488a83b3443c85918346-standard-startup-059",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-18237c11212848ab87da6a12e455bb1d-standard-startup-079",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1ad0af972c524095bc7e58321ed724c3-standard-startup-014",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1b90840549c445a585425d2644a82a60-standard-runtime-168",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1ce8a1b58c1f4e6b9b25f3bd979e7f0f-standard-startup-130",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1ec7311cc7f04244a27f3ce52a37a8b9-standard-runtime-110",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1ed21a1675374327bdf82e863dd24802-standard-startup-030",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-1ffa058fa0894b1e988385ec024a03b2-standard-startup-089",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2081f76d937846a9916cca6fdb74d0d9-standard-runtime-148",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-21f4185bbf474583877b97f3841afc07-standard-startup-004",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-226f1cf15d1143b4b3fb828e9232c2ee-standard-startup-146",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-22a791ac0a5b4e43a8444950a4a01423-standard-startup-013",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-23b39439a82d4ae989e0e9183d51cdd1-standard-runtime-133",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2532149c83154d88acdcf727b3a61b17-standard-startup-047",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-26615507fa904f5ab88b75c6d28c47c1-standard-startup-174",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-27419215a8a04c5e90a91e247137e3a8-standard-startup-050",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-279b83b6584e4fbb991d01ee338c63f0-standard-startup-085",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-27cd07b50dd8431e92b8f556d8fe1215-standard-startup-055",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-29d39c30328849fda092c42ba3aa0093-standard-startup-046",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2b0b1f2faa174464a8320653c92a517c-standard-startup-032",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2c9f1390d9e642dda40aeeced3c10fac-standard-startup-147",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2d731cfe91f34ad1a8c53835a34b1469-standard-startup-150",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-2f41614b742544cb82175096e626213f-standard-startup-039",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-315c939824d84530bb4b8916500f4046-standard-runtime-002",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-3209ce29223344d489c0b0cfeaff0605-standard-startup-158",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-336fcca67f264090b8387b7a3ee387b9-standard-startup-058",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-34156ad15e41463ebce9ee67e8503d56-standard-startup-118",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-34a9b69b3a5d4bc6afb0951739a2c248-standard-startup-116",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-34ba733e8f4440f6adf570a6ba7ee36d-standard-startup-119",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-369969277b454daf8f1f29c9cb22b2ce-standard-startup-093",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-36e9bfd04b0c424c9bf62e0afbbc6565-standard-startup-129",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-37bf9cd83aa64059a6b6aab3f8588f52-standard-startup-071",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-38c9d1f9c91640019d1d29f7791a1327-standard-startup-097",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-3a275c5633574acdaafa8c7015e0817d-standard-startup-044",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-3a4f6617c7314283999c25a48b13cbc4-standard-startup-086",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-3f44558be7ae4ac086c794e2b3d959e0-standard-startup-125",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-3fac1adaa7e14f68b6593b72033d65b9-standard-startup-166",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-40d21849b4a64c1baa93701bdf9eade5-standard-startup-076",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-40d21dcdd72c4910a9f58b8db4a60450-standard-startup-115",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-41112373c775447dbd008791fe8c0107-standard-startup-034",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-41f4c67054c044f682571429c1d3610f-standard-startup-120",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-41febab2061c41f4ab9cd10753bce0e8-standard-startup-092",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-423d18458cb24db494d0afc2fe363226-standard-startup-027",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-433df3fd112b45158eee5a39e79715ec-standard-runtime-057",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-433e93a9deb6439d9553cd09666c5959-standard-startup-037",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-440d762e4bee4ba398e04065fe482dee-standard-startup-015",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-44864de17c7a458993b5d9143b110e89-standard-startup-078",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-448a4c7ab73e4bc38292c9ca11ed8de7-standard-runtime-164",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-456850e4d78f47fd83d44ea4af2acbbc-standard-startup-080",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-45feb181437f433093793b9f50d5e39d-standard-runtime-106",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-46d90fb31dd14e7586a84442877aeeae-standard-runtime-052",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-4792449485174d3b9b3f66fb44b5de96-standard-startup-065",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-48487d7e574a47b0a1bcc49a82ea40cf-standard-runtime-150",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-4af341dca72b407b91501547a788f60c-standard-runtime-167",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-4e3d711cb66b4af4b521a725181bd2dc-standard-startup-100",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-4e5b127d4d9748d1945208ad45c7e38f-standard-startup-081",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-56e5f5e06cb24dd2b2bf6c133a079545-standard-runtime-113",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-5a65f708bae444e2afeb4fc4545482a5-standard-runtime-159",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-5b7cb4dd3ab645adad373321eb8034b4-standard-startup-075",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-5b841ba80de0448f8793bec3ab1c7639-standard-runtime-138",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-5f5bcd36dce24c7bb75777219a3c67d4-standard-startup-095",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-5fc20d36a4314a6b831459a0b4d9c01f-standard-startup-159",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6098fe7e5ac943d3b9de05753b20461f-standard-runtime-152",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-628135ff89d54a389379027118ff7c79-standard-startup-051",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-645e52bf2a304a039372cdcd196006d5-standard-startup-061",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-64c13c6274bd41348f07734d5685df3a-standard-startup-005",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-64eaa3950a944a4aa52de101edc3fdd0-standard-startup-017",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6527357e94894b6ea393027cfe8f1e95-standard-runtime-000",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-655028aea1a346e48e212241ed455511-standard-startup-042",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-65d8fc7bf2514af5955415ab2d3832c4-standard-startup-167",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-674b09dd5a29404ca2a70bbef716c4af-standard-startup-077",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6792b0bc887b41dd8fc60bcc73151c9d-standard-startup-101",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-68afa8fd0786475a9f96a8ca4c6d9d94-standard-startup-073",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6a1c706417534a9bab8c9d5e921bb6ab-standard-startup-163",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6a8deeba320a46b2a49c9cbcce1590f4-standard-startup-048",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6c15c6cf7d4448a7bd1f3c7f8f7e7b48-standard-startup-126",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6d397296d32a4f42837d8470f9abf857-standard-startup-157",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6e691ee1119f484fb184b98b94f81576-standard-startup-016",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6ec3779d03714277b6092e822b3ccbfa-standard-runtime-022",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6ee8f56005a64b76a9ea622fb1a8953b-standard-runtime-139",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-6f37f629ed2f4a89bd4397bd3e638bb5-standard-startup-155",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-708d8a805ff0410f9134da4aea58409b-standard-startup-164",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-71a42ce2a41343ef9bea093fc19a0f1b-standard-startup-161",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-723f86b033684027b81b06ff6c54bb0e-standard-startup-139",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-72fe93949e3542ec811da1bc77bb5f15-standard-startup-088",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-7378658cc160445ea46db35c117f4fb1-standard-runtime-117",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-74bbba85a4da4bc0bca2e858c8c10b8a-standard-startup-165",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-75d36f870f444bc2b736826b64820842-standard-runtime-115",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-75d73426d0df46bbbf95d1b7a2fd7ce5-standard-startup-132",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-76ddb4a616964a4db84257fe3981d6b2-standard-runtime-140",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-79bd3f58c531476eaeb497d52d206cf4-standard-startup-063",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-7c656ec030d04bbdb8489949d2611606-standard-startup-023",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-7c86d04eba884e419e2f15b1e664977f-standard-startup-138",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-7f0c0eaa0966468c8f458914e4ab0e85-standard-startup-128",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8009d5bd1f5e47d6a18cc41de9df6ae0-standard-runtime-060",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8066132b4c6544b0a68e80e8d0edcc92-standard-runtime-153",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-81bf6da0073f4ae1b160664b9494ced4-standard-startup-036",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-826e568155e64011bb030a2f2c2d1a34-standard-startup-031",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8336d1a251624f69bd7c206c90cc1d75-standard-startup-114",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-83e7c7f5b5a0478cb57d6a62fd06b83f-standard-startup-137",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-844f73eb5434450c8377dffc1c49a9bf-standard-runtime-165",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-850e99e53ff84d3c9b2ebe865ec9de38-standard-runtime-132",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8702fcc1da724aa397b9c6d787d92517-standard-startup-143",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-88c27cc1a81e4d71b3c32c4c835ad3ce-standard-startup-070",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-890942e8fbe147a59269beb807e05aa2-standard-startup-106",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8928b8ef172c4f5980fe1141c62949d0-standard-startup-082",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8a350ec4fdc14aa6bed05c7b941e25c1-standard-startup-124",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-8b7ee2dbd1a8464bbe35cf42bb2b7790-standard-startup-105",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9724a0e9e4d44f91a45d6447704929b9-standard-startup-041",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9833f2a83b3c478094b9673808fc4298-standard-runtime-155",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9918fb55f0f545f0a8bb1e55670d6532-standard-startup-072",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9a48727bab094f4784e5c37d119c29fe-standard-startup-056",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9c6d679a04684f989e5ae86792270cae-standard-startup-109",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-9d286eee19a040f49bb586afb34321db-standard-startup-011",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-a275d378516242a99483fc084f36a57c-standard-startup-131",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-a53a5a1a30074dda8a4454eb63830826-standard-startup-024",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-a6de5210ae91435bb40d800ad446b1f8-standard-runtime-157",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-a99cede547e44819894e90919ac3c508-standard-startup-022",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-aae29d300d8e434d9b53deec45863b5c-standard-startup-151",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-aca52df4f4a34164a238bfb0cb3eece3-standard-startup-170",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ada8b8ffd38742c4a0245b7c47c44978-standard-runtime-166",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ae0e51066c144c32b1a6d0f54591e577-standard-startup-002",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-aec94abfe84d4703a41378c8acad9b62-standard-startup-156",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-aecab3a24676425bbd6dc34012f95a8e-standard-startup-000",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-af5d02aae70449729f72966ef8b86bdb-standard-startup-107",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b12ddd079b6540e8957d22c060fc2736-standard-runtime-118",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b149c3fa6a644dd09fadd09bcc8e56e0-standard-startup-019",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b60ca0b8dc444860af7240f381840b94-standard-startup-040",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b702a58390924e17a466288c5dab5277-standard-runtime-003",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b9349223e3594d778b2e50287a5a9740-standard-runtime-101",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b99b9ba73eb744a2862c85a11ca59b52-standard-runtime-147",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-b9f6901d70304ba4adec31ef42c47a7e-standard-startup-054",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-bbef7d93c1244420b86a07193942d865-standard-startup-111",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-bbfc7c9edfa54eefbdbf94b93fb8cde0-standard-startup-134",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-bd31680d90254ffc9d5a393dcf39354f-standard-runtime-099",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-bd82db358dd849c7aa49e9e0697ccf90-standard-runtime-049",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-bda2eafbcaef42ab8213fe1b0398d400-standard-runtime-030",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-be042dd6cfc04108ac9e36a8dfb8d582-standard-runtime-065",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-be8e851d245e4c4c9eaca298d31f51a0-standard-startup-028",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c02977befa47467b84d01d65a8f5d618-standard-startup-069",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c047e5b9fd95455a84833793d71110bb-standard-startup-018",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c123d9c4de564e46a7bf60a72b805c5c-standard-startup-145",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c1c5f8ff69d44c4c817a25deb4d72c55-standard-startup-162",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c409ad78a789468d91ad9f83b68fa0b5-standard-startup-003",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c431550eda714b34b94d0fd7657d210e-standard-startup-091",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c6304873b7f84c6b8a35514188e625ac-standard-startup-045",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c805f555558045dcaa8e89b6e461800f-standard-startup-110",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-c81e0b2605e449a19c12ffaffd384d48-standard-startup-149",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-caa2a668559f4e6396861614855c96cb-standard-startup-009",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-cacfdcd1a4f842d99e8723b5644e49c0-standard-startup-087",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-cdd6fe7a9f4c439e87249a8068379005-standard-startup-012",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ce3b5db4ada249c3ad26996ddc35ee05-standard-startup-173",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ced312bd52a14849acfae861f3637962-standard-startup-098",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-cf48cc8838464595bcc0da3cd9ca9560-standard-runtime-103",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d02248a071774e81a8594973a29b2012-standard-startup-068",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d0dd944881d3452ba2f25c9423a9fbf6-standard-startup-117",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d32cdca0759a4ea2b0caa7bc64b53caa-standard-startup-062",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d382e9c8e34f4d78b4e24b1425ccea21-standard-runtime-134",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d414ad8900b54ee79befbd6819a623c1-standard-startup-102",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d436f3d784d54fe5a9d43d69893663b7-standard-startup-096",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d46ece17adaf420c9aea35186c71fb0e-standard-startup-144",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d5a24f7817e5473f93e739b9dc71eefc-standard-startup-007",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d8a0ea02be264e7bac33df30980bcf7c-standard-startup-113",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d8b1a0d273d14796977c13bfb3c86488-standard-startup-029",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d8be5a0209e546d89929594dd750429f-standard-startup-171",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-d9ad2584cefa4b5692d14f9f3028fdf9-standard-startup-008",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-dc25e2590b4e46bb9ae6993ba2ba112c-standard-runtime-102",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-dc3e59a7f6184286a4369782753ec8ce-standard-startup-172",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-dd53e9bbd51b45d792de46f727316fa0-standard-startup-021",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e116386b86f74adca3eaa83355332644-standard-startup-148",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e14e6261182a40b6aa767888eceeb3e0-standard-runtime-114",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e162da15b4904fdca02b340bd484300f-standard-startup-154",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e305269fdd7b48849d65096ab86cc113-standard-startup-160",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e4dae68b81ea47679863d2d372f24bb5-standard-startup-104",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-e9e965d664664c709471c3ff390515f7-standard-startup-052",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ea1d478dbe864b9292120a231cf42a3f-standard-startup-020",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ea4a782e10ca4d0db1169e4a881a940a-standard-startup-066",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ea6c4956839845ef9c56cbeddd45657d-standard-startup-010",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-eab6f105921941ebbcc9955d68ef48f2-standard-startup-142",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ecfc02b602184c1e8ad5fa823b835c0a-standard-startup-103",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ed970d2ae1904fc5b37ffa80aa1394f3-standard-startup-064",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ee682995cfb24eebbb075f8a26cc8fb5-standard-startup-108",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-ef37a6f6795a4ea7a3e7bbf658ccc2ce-standard-startup-141",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f1929c459b274912a24f67da972803f1-standard-runtime-142",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f491697fcc234ffc9950b6a6235d8cd5-standard-startup-153",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f64133ec895b467c8716f34b8af552eb-standard-startup-140",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f70085b161a2434581ba76f984326d65-standard-startup-083",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f912d27a2072446abaf3ffc4ab569940-standard-startup-152",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f9b4176c2fcc4982be91d30ea8f7d169-standard-startup-084",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-f9bba25e40684e8e89913539307a6859-standard-startup-135",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-fba87260a123482fba925e5721491883-standard-startup-074",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-fbde7422603a40a09109d701cbc14c6b-standard-startup-049",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-fd5b352c884b4d449ddeacafa11074c7-standard-startup-127",
"/Users/korizatou114/Library/Application Support/TheTree-PCK-tests-feaea3f502ea4d73be43bf98edc9f2fb-standard-runtime-160"
],
"selection": "Only startup and actual runtime profiles bound by completed full-regression phase receipts; not time-based ownership inference."
}
@@ -0,0 +1,13 @@
{
"candidate_files": 2865,
"compressed_files": 2817,
"errors": [],
"logical_bytes_preserved": 1938863968,
"allocated_before_sum": 1944100864,
"allocated_after_sum": 156975104,
"free_before_bytes": 3403890688,
"free_after_bytes": 5191794688,
"elapsed_seconds": 56.84520483016968,
"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."
}
@@ -0,0 +1,40 @@
import pathlib,json,subprocess,hashlib,os,time,shutil,tempfile,gzip
R=pathlib.Path("/Users/korizatou114/Projects/とりにく工房ゲーム制作部")
O=R/"docs/plans/original-completion-2026-10-02/execution/storage-20261015"
m=json.loads((O/"CLOSED_FULL_D369_PROFILE_MANIFEST.json").read_text())
def sha(p):
h=hashlib.sha256()
with p.open("rb") as f:
for b in iter(lambda:f.read(1048576),b""):h.update(b)
return h.hexdigest()
assert sha(pathlib.Path(m["full_run"])/"runner-ended.json")==m["ended_sha256"] and m["all_owned_ended"]
assert not subprocess.run(["pgrep","-f","^/Applications/Godot.app/Contents/MacOS/Godot"],capture_output=True).stdout.strip(), "no live Godot during profile compression"
opened={s[1:] for s in subprocess.run(["lsof","-n","-F","n"],capture_output=True,text=True).stdout.splitlines() if s.startswith("n/")}
start=time.time();free=shutil.disk_usage(R).free;candidates=[];errors=[];rows=[]
for root in map(pathlib.Path,m["paths"]):
assert root.parent==pathlib.Path("/Users/korizatou114/Library/Application Support") and root.name.startswith("TheTree-PCK-tests-") and not root.is_symlink()
for p in root.rglob("*"):
if p.is_symlink() or not p.is_file() or str(p) in opened:continue
s=p.stat()
if s.st_size>=16384 and s.st_nlink==1 and s.st_blocks*512>=s.st_size*.5:candidates.append(p)
print(json.dumps({"candidate_files":len(candidates),"logical_bytes":sum(p.stat().st_size for p in candidates),"free_before":free}),flush=True)
with gzip.open(O/"CLOSED_FULL_PROFILE_COMPRESSION_FILES.jsonl.gz","wt") as log:
cursor=0
while cursor<len(candidates):
with tempfile.TemporaryDirectory(prefix="tree-closed-profile-compress-",dir="/private/tmp") as tmp:
inp=pathlib.Path(tmp)/"input";out=pathlib.Path(tmp)/"compressed";inp.mkdir();batch=[];size=0
while cursor<len(candidates) and len(batch)<256 and size<128*1024*1024:
p=candidates[cursor];cursor+=1;s=p.stat();digest=sha(p);name=str(len(batch));os.link(p,inp/name);batch.append((p,s,digest,name));size+=s.st_size
subprocess.run(["ditto","--hfsCompression",str(inp),str(out)],check=True,capture_output=True)
for p,s,digest,name in batch:
t=out/name
try:
now=p.stat()
assert sha(t)==digest and now.st_mtime_ns==s.st_mtime_ns and now.st_size==s.st_size and sha(p)==digest,"byte/source guard"
if t.stat().st_blocks*512>=s.st_blocks*512*.9:continue
os.replace(t,p);assert sha(p)==digest and p.stat().st_mtime_ns==s.st_mtime_ns,"final SHA/mtime guard"
row={"path":str(p),"bytes":s.st_size,"sha256":digest,"allocated_before":s.st_blocks*512,"allocated_after":p.stat().st_blocks*512,"mtime_ns":s.st_mtime_ns,"content_verified":True};rows.append(row);log.write(json.dumps(row)+"\n")
except Exception as e:errors.append({"path":str(p),"error":str(e)})
print(json.dumps({"processed":cursor,"compressed":len(rows),"free_GiB":round(shutil.disk_usage(R).free/2**30,2),"elapsed_s":round(time.time()-start)}),flush=True)
result={"candidate_files":len(candidates),"compressed_files":len(rows),"errors":errors,"logical_bytes_preserved":sum(x["bytes"]for x in rows),"allocated_before_sum":sum(x["allocated_before"]for x in rows),"allocated_after_sum":sum(x["allocated_after"]for x in rows),"free_before_bytes":free,"free_after_bytes":shutil.disk_usage(R).free,"elapsed_seconds":time.time()-start,"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."}
(O/"CLOSED_FULL_PROFILE_COMPRESSION_RESULT.json").write_text(json.dumps(result,indent=2)+"\n");print(json.dumps(result),flush=True)