docs: retain R08 OS evidence and record corrected supply display candidate
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"candidate": "21b5d3a31ad35aeb5a17a033af83985b454b4d8f",
|
||||
"evidence_root": "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-03-native-os-trafficfix-r08",
|
||||
"native_import_parse319_A_B": "PASS",
|
||||
"independent_post_run": {
|
||||
"native-A": {
|
||||
"passed": true,
|
||||
"frames": 17
|
||||
},
|
||||
"native-B": {
|
||||
"passed": true,
|
||||
"frames": 17
|
||||
},
|
||||
"partial-OS-A-writer": {
|
||||
"passed": false,
|
||||
"error": "ValueError: goods/requests length"
|
||||
},
|
||||
"demand": {
|
||||
"metric": "sum_destination_arrival_minutes_entire_cohort",
|
||||
"A": 7153,
|
||||
"B": 2585
|
||||
}
|
||||
},
|
||||
"normalOS": {
|
||||
"writer_pid": 35972,
|
||||
"actual_CUA_ACK_count": 31,
|
||||
"observed_receipts": 30,
|
||||
"all_ACK_request_raw_SHA_PID_verified": true,
|
||||
"first_FRONT_mechanical_rows": 10,
|
||||
"first_FRONT_mechanical_pass": true,
|
||||
"views": "room,traffic,goods,staff,queue,EV passengers,active/paused motion,overflow,rest,FRONT/BACK",
|
||||
"terminal_error": "TimeoutExpired: Command '['/Applications/Godot.app/Contents/MacOS/Godot', '--path', '/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-03-native-os-trafficfix-r08/stage', '--script', '/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-03-native-os-trafficfix-r08/os-runs/A-writer/passive_os.gd']' timed out after 900 seconds",
|
||||
"engine_ended": true,
|
||||
"cleanup_errors": [],
|
||||
"guard_errors": [],
|
||||
"reader_save_full": "not executed",
|
||||
"post_end_request32": "CUA read failed ENOENT; no input or ACK; failed-call history retained in session"
|
||||
},
|
||||
"real_product_defect": {
|
||||
"source": "world_preview.gd602 lookup supply_logistics_bridge while Runtime119 declares supply_logistics",
|
||||
"first_failed_semantics": "writer-request-0005 goods/requests length",
|
||||
"scope": "in-scope property lookup correction, no checker weakening"
|
||||
},
|
||||
"follow_up": "OS-only timer now separated to3600 in submitted56bf5a3; productlookup repair instructed in same task",
|
||||
"formal_unit_credit": 0
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"candidate": "336a8cd0b30db1add11869ebceab847db693f531",
|
||||
"previous": "56bf5a3e865c528611f3f7b1d93b4a7b640f8ea8",
|
||||
"product_diff": "world_preview service lookup supply_logistics_bridge -> actual Runtime supply_logistics; one line only",
|
||||
"source_sha256": "5c15b49a82eae4511bc0ccccb227daceff39be9ac2da7f411e26dcb76a270f5f",
|
||||
"root_actual_local_checker_methods": 48,
|
||||
"root_actual_local_pass": true,
|
||||
"clean_worker_source": true,
|
||||
"os_child_only_timeout_seconds": 3600,
|
||||
"worker_native_timeout_seconds_unchanged": 900,
|
||||
"timeout_decision": {
|
||||
"action": "run",
|
||||
"task_id": "P23-03",
|
||||
"reason": "At 21b5d3a, the native import and parse checks passed, as did layouts A and B. In the actual normal-OS run, writer PID 35972 completed 31 CUA requests with ACKs across all categories. The collector then stopped at process.wait(timeout=900), so the reader run and full run never executed. I confirmed the cause in tools/run_p23_life_observation.py: line 23 sets OS_CHILD_TIMEOUT_SECONDS = 900. That value goes into base['timeout_seconds'] at line 161 and is passed to process.wait at line 177. The only 900 in the immutable spec is in worker_instructions ('Timeout900 unchanged'), which is the Codex worker's time limit. The original source sets no time limit for a hands-on OS game session. This is a technical coupling error, and it falls under existing authorization because the user removed all individual caps. Repair scope: in allowed path tools/run_p23_life_observation.py only, change OS_CHILD_TIMEOUT_SECONDS from 900 to 3600, applied per role (writer and reader). The started.json and ended.json receipts already record the value through base['timeout_seconds']; keep that. Do not change: the native subprocess timeout=900 at line 89, the 900s native collection deadline and 180 per-phase timeout at lines 280-285, the LLM, native and sips 900 limits, the request300, identity, source, profile and owned-cleanup guards, cap null, 7 conditions, 6 categories, or the 30/88 denominator. No changes to spec, config, billing or permissions, and no broad audits or new hardening. Worker verification: run the 47 local Python tests, add one narrow assertion that the OS child wait uses 3600 and that this value appears in the receipt, check the diff, paths and markers, then make a genuine static submit. No Godot, OS or full regression runs. The failed R08 history (artifacts/original-completion-2026-10-02/p23-03-native-os-trafficfix-r08) stays as failure history and is not acceptance. After submission, Root checks free capacity before running a fresh OS run (currently 778 MiB) and does not splice in failed gameplay.",
|
||||
"codex_model": "gpt-6.1-sol",
|
||||
"codex_model_reason": "The repair is a one-constant change in one allowed file plus one narrow test assertion. The file, line and value are already identified, and no design judgment or cross-module reasoning is needed. Sol is sufficient, and it is faster and uses less than Astra. Choosing Sol does not lower quality, because Root runs the OS evidence and Opus does the independent review afterwards."
|
||||
},
|
||||
"lookup_decision": {
|
||||
"action": "run",
|
||||
"task_id": "P23-03",
|
||||
"reason": "This is an in-scope product defect in an allowed path. I checked the source read-only and confirmed it. scenes/main/world_preview.gd:602 calls _service(&\"supply_logistics_bridge\"), but autoload/simulation_runtime.gd:119 declares the property as `supply_logistics`. _service (world_preview.gd:1664) therefore returns null. As a result, the goods requests/deliveries in the report come out empty even though the snapshot's logistics_requests are present. That is why strict compare_goods failed at writer-request-0005 (failed state SHA 2c72d29f..., report SHA dae04c6c...).\n\nNarrow repair: change that one lookup literal to &\"supply_logistics\". Search only allowed P23 files for the same wrong literal; the grep found only line 602 in the source. Keep the strict, independent goods recomputation in the checker. Do not empty or relax expected requests. Do not rewrite or relabel the old failed report: it stays rejected as failure history. Keep all prior work and the 3600 OS-child setting. LLM/native 900, capnull, worker 900, the 7 conditions, the 6 categories and the 30/88 no-partial-credit denominator stay unchanged.\n\nWorker scope: no Runtime/data/save/style changes and no dummy test that mirrors the implementation. Run only the current local 47/48 Python tests plus syntax, diff, allowed-paths and marker checks, then genuinely submit. No Godot/collector/OS/full regression, no broad audits, no new hardening. Root handles disk capacity (currently 778MiB) and the fresh actual supply scenario run with the strict checker afterward.",
|
||||
"codex_model": "gpt-6.1-sol",
|
||||
"codex_model_reason": "This is a one-line literal fix. Its exact location and root cause are already confirmed from source (world_preview.gd:602 vs simulation_runtime.gd:119), and only light local checks are needed. It needs no deep reasoning, so the default Sol is enough on quality and saves time and usage compared with Astra."
|
||||
},
|
||||
"new_native_os_full_review": "pending on corrected candidate; previousfailed R08 retained",
|
||||
"resource_admission": "free715MiB observed, reclaim inactive proof data before next heavy run",
|
||||
"original_denominator": "30/88 no partial credit",
|
||||
"formal_unit_credit": 0
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import pathlib,json,hashlib,sys,os,time,datetime
|
||||
root=pathlib.Path('/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p23-03-native-os-trafficfix-r08');folder=sys.argv[1];d=root/'os-pair'/folder;q=json.loads((d/'request.json').read_text());draft=json.loads((d/'cua-draft.json').read_text());assert not (d/'ack.json').exists()
|
||||
p=pathlib.Path('/Users/korizatou114/.codex/sessions/2026/10/02/rollout-2026-10-02T00-49-07-01a0f827-b7b6-7453-9367-098f6b1c4435.jsonl');calls=[];related=[]
|
||||
with p.open('rb') as f:
|
||||
f.seek(max(0,p.stat().st_size-8*1024*1024));f.readline()
|
||||
for l in f:
|
||||
try:x=json.loads(l)
|
||||
except ValueError:continue
|
||||
y=x.get('payload',{})
|
||||
if x.get('type')!='response_item' or y.get('type')!='function_call' or y.get('name')!='js':continue
|
||||
a=json.loads(y['arguments']);code=a.get('code','')
|
||||
if 'p23' in code:related.append({'timestamp':x['timestamp'],'call_id':y['call_id'],'name':'mcp__cua_repl.js','arguments':a})
|
||||
if folder in code and 'p23R08Request(' in code:calls.append(related[-1])
|
||||
assert len(calls)==1,('require exactly one actual CUA action call',len(calls));call=calls[0]
|
||||
def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest()
|
||||
shots=[]
|
||||
for n in ['screen-before.png','screen-after.png']:
|
||||
f=d/n;assert f.is_file();shots.append({'path':str(f.relative_to(root)),'raw_sha256':sha(f),'tool_call_id':call['call_id']})
|
||||
receipt={'method':'native_os','tool_name':'mcp__cua_repl.js','tool_call_id':call['call_id'],'arguments':call['arguments'],'actual_calls':calls,'timestamp_ns':draft['timestamp_ns'],'collector_pid':os.getpid(),'target_pid':q['target_pid'],'events':draft['events'],'screenshots':shots,'calibration':draft['geometry'],'request_sha256':sha(d/'request.json'),'trace_source':str(p),'acceptance':'pending'}
|
||||
(d/'cua-receipt.json').write_text(json.dumps(receipt,ensure_ascii=False,indent=2)+'\n');trace_path=root/'root-cua-trace.json'; previous=json.loads(trace_path.read_text()) if trace_path.exists() else []; merged={r['call_id']:r for r in previous}; merged.update({r['call_id']:r for r in related}); trace_path.write_text(json.dumps(sorted(merged.values(),key=lambda r:r['timestamp']),ensure_ascii=False,indent=2)+'\n')
|
||||
ack={'target_pid':q['target_pid'],'sequence':q['sequence'],'request_sha256':sha(d/'request.json'),'input_receipt':str((d/'cua-receipt.json').relative_to(root)),'timestamp_ns':time.time_ns()};(d/'ack.json').write_text(json.dumps(ack,indent=2)+'\n');print(folder,call['call_id'],'ACK',q['sequence'])
|
||||
Reference in New Issue
Block a user