From 33f912919d5884d1019eb7f17b202db1b77296a9 Mon Sep 17 00:00:00 2001 From: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com> Date: Wed, 21 Oct 2026 19:44:05 +0800 Subject: [PATCH] perf(apple): reuse retained Interface Builder graph validation (#5885) Reuse successful owning-schema validation only for exact immutable Evidence snapshots, preserve current parent binding and complete source facts, and collect only requested document pages. Verify real XLD CLI/MCP workflows and archived connector UIDs, including complete pre-change baselines for both admission sizes and a wrong-baseline negative control. Fixes #5855. --- .../interface-builder-oracle.py | 50 + .../interface-builder-views.json | 2039 +++++++++++++++++ .../interface-builder-views.md | 225 ++ .../interface-builder-views.mjs | 238 ++ .../analysisView/interfaceBuilderView.test.ts | 108 +- .../analysisView/interfaceBuilderView.ts | 76 +- src/domain/immutableJson.test.ts | 6 + src/domain/immutableJson.ts | 6 +- 8 files changed, 2722 insertions(+), 26 deletions(-) create mode 100644 experiments/analysis-efficiency/interface-builder-oracle.py create mode 100644 experiments/analysis-efficiency/interface-builder-views.json create mode 100644 experiments/analysis-efficiency/interface-builder-views.md create mode 100644 experiments/analysis-efficiency/interface-builder-views.mjs diff --git a/experiments/analysis-efficiency/interface-builder-oracle.py b/experiments/analysis-efficiency/interface-builder-oracle.py new file mode 100644 index 0000000000..efb08bdb84 --- /dev/null +++ b/experiments/analysis-efficiency/interface-builder-oracle.py @@ -0,0 +1,50 @@ +"""Read archived AppKit connector UIDs independently with Python's plistlib.""" + +import argparse +import hashlib +import json +from pathlib import Path +import plistlib + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--bundle', type=Path, required=True) + parser.add_argument('--document', required=True) + parser.add_argument('--baseline', type=Path, required=True, + help='Complete pre-change 64-document Evidence; equality control, not the oracle') + parser.add_argument('--small-baseline', type=Path, required=True, + help='Complete pre-change 1-document Evidence') + parser.add_argument('--output', type=Path, required=True) + args = parser.parse_args() + data = (args.bundle / args.document).read_bytes() + objects = plistlib.loads(data)['$objects'] + connections = [] + for index, value in enumerate(objects): + if not isinstance(value, dict) or not {'NSSource', 'NSLabel'} <= value.keys(): + continue + classname = objects[value['$class'].data]['$classname'] + if classname not in ('NSNibOutletConnector', 'NSNibControlConnector'): + continue + connections.append({ + 'archive_index': index, + 'kind': 'outlet' if classname == 'NSNibOutletConnector' else 'action', + 'name': objects[value['NSLabel'].data], + 'source': str(value['NSSource'].data), + 'destination': str(value['NSDestination'].data), + }) + if not connections: + raise ValueError('No supported archived connectors; choose a keyed AppKit document') + args.output.write_text(json.dumps({ + 'document': args.document, + 'archive_sha256': hashlib.sha256(data).hexdigest(), + 'connections': connections, + 'complete_result_paths': { + '1': str(args.small_baseline.resolve()), + '64': str(args.baseline.resolve()), + }, + }, indent=2) + '\n') + + +if __name__ == '__main__': + main() diff --git a/experiments/analysis-efficiency/interface-builder-views.json b/experiments/analysis-efficiency/interface-builder-views.json new file mode 100644 index 0000000000..c9df057165 --- /dev/null +++ b/experiments/analysis-efficiency/interface-builder-views.json @@ -0,0 +1,2039 @@ +{ + "baseline": "f801b2fbfd28f4e3713adefddc7bd73db44c284c", + "tiktoken": "0.12.0", + "encoding": "cl100k_base", + "actual_model_usage": null, + "records": [ + { + "case": "base64-a", + "status": "failed", + "failure": "TypeError: Cannot read properties of undefined (reading 'from')\n at file:///home/yann/yann/rea-perf-apple-ui-20261021/experiments/analysis-efficiency/interface-builder-views.mjs:128:34\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)", + "documents_limit": 64, + "wall_seconds": 50.991, + "cpu_seconds": 50.64193, + "family_peak_bytes": 1700118528, + "first_pages_ms": 3388.1796939999986, + "warm_pages_ms": 3668.9415200000003, + "tokens": { + "input_catalog_once": 198492, + "arguments": 942, + "text_replies": 83381, + "transport_catalog": 891652, + "catalog_args_text_total": 282815 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "27e89c9e324c1ab234061d8520f669b83bbf8cbeb49c85e76c2cc00bb124df69", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "65d5460066d1507f2ae73a60ee8123540afec53df6adcad4632a578bb1784e37", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base64-a.log": "88f0c3e84bca4d4f55c86a5a1d81aa96048542f84942aea77789f93f85d85568" + }, + "cohort": "failed-initial-harness", + "payload_exit_code": 1, + "rpc_elapsed_ms": { + "open_bundle_resources": 17749.195336999997, + "decode_interface_builder": 17337.767231, + "retained:first:nodes:0": 1166.059242999996, + "retained:first:nodes:32": 854.4084359999979, + "retained:first:nodes:64": 685.9963020000068, + "retained:first:edges:0": 681.7157129999978, + "retained:warm:nodes:0": 923.7720520000003, + "retained:warm:nodes:32": 1529.5760379999992, + "retained:warm:nodes:64": 594.8625360000005, + "retained:warm:edges:0": 620.7308940000003 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423 + } + }, + { + "case": "base64-b", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 51.481, + "cpu_seconds": 51.178498, + "family_peak_bytes": 1675866112, + "first_pages_ms": 3956.689886, + "warm_pages_ms": 3489.1726659999986, + "tokens": { + "input_catalog_once": 198492, + "arguments": 973, + "text_replies": 83420, + "transport_catalog": 891652, + "catalog_args_text_total": 282885 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "c111786fafc68ff62d07a933f661c90d397f58da01d801608f6ace78272011f4", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "226068fd310733f1e674065c8e439430404eec6e3f3ebc8c91c30788bf5820c2", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base64-b.log": "526ad1668a069280386256ae60a3e913e44a6439a35c770a210b689f99c1e7dc" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 17019.739391000003, + "decode_interface_builder": 18137.496282999997, + "retained:first:nodes:0": 1269.5198299999975, + "retained:first:nodes:32": 1097.5174670000051, + "retained:first:nodes:64": 792.1805600000007, + "retained:first:edges:0": 797.4720289999968, + "retained:warm:nodes:0": 1420.7132550000024, + "retained:warm:nodes:32": 770.9841710000037, + "retained:warm:nodes:64": 637.9057259999972, + "retained:warm:edges:0": 659.5695139999953, + "export_evidence_bundle": 326.79149699999834 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 306 + } + }, + { + "case": "candidate64-a", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 23.898, + "cpu_seconds": 23.514812, + "family_peak_bytes": 1699565568, + "first_pages_ms": 286.40415100000246, + "warm_pages_ms": 72.82707799999844, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "843f28d9bdd2413c8c994d147f29ae816f43fa37c8255a8834292d4532775d4c", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "9131211cdce820ad9c8a026d69c305d2691e4608864016be07b9b6749d3bb983", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "candidate64-a.log": "930abb3a688796a2ff7f417c82cf158f20198658dee011aeab89772307e92493" + }, + "cohort": "pre-review-diagnostic", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8675.475145, + "decode_interface_builder": 9938.008954, + "retained:first:nodes:0": 208.56250300000102, + "retained:first:nodes:32": 48.25655899999765, + "retained:first:nodes:64": 11.428400000000693, + "retained:first:edges:0": 18.156689000003098, + "retained:warm:nodes:0": 21.8882900000026, + "retained:warm:nodes:32": 27.01408900000024, + "retained:warm:nodes:64": 11.094749999996566, + "retained:warm:edges:0": 12.829948999999033, + "export_evidence_bundle": 155.1837549999982 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 316 + } + }, + { + "case": "base64-c", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 27.42, + "cpu_seconds": 27.18631, + "family_peak_bytes": 1763991552, + "first_pages_ms": 2393.2728409999945, + "warm_pages_ms": 1661.2933239999948, + "tokens": { + "input_catalog_once": 198492, + "arguments": 973, + "text_replies": 83420, + "transport_catalog": 891652, + "catalog_args_text_total": 282885 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "8ce45652e40ffdfa61d34317e4b32bf10045968561d4ccb7a9ca479d162bb8bd", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "ff4af456c815f854c00d9a820910c298bcacf48d88dffe5d097baa7ac039a115", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base64-c.log": "bb7b6c5f816f97aef9b5f8e978c979691a093170409cad5270fbfc6ad9931935" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8765.433656000001, + "decode_interface_builder": 9609.179089000001, + "retained:first:nodes:0": 585.3770009999971, + "retained:first:nodes:32": 497.46044299999994, + "retained:first:nodes:64": 448.13410499999736, + "retained:first:edges:0": 862.3012920000001, + "retained:warm:nodes:0": 435.9102149999999, + "retained:warm:nodes:32": 425.75104499999725, + "retained:warm:nodes:64": 423.774136, + "retained:warm:edges:0": 375.8579279999976, + "export_evidence_bundle": 212.5535630000013 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 306 + } + }, + { + "case": "candidate64-b", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 24.29, + "cpu_seconds": 24.09761, + "family_peak_bytes": 1700253696, + "first_pages_ms": 390.3116379999992, + "warm_pages_ms": 90.61565100000007, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "a3c754cd5c3ee411a987e37a65627c76e653efcc8df9db8ea9c2cc9e47d634f9", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "d9d7730cd497caed8c532041e7c48f33485b54a8256c58759c1108ef6fdd5c04", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "candidate64-b.log": "57540073c21d8d33e77c6b129f1e24fd1954502b69ce77a6a458be68aef79a96" + }, + "cohort": "pre-review-diagnostic", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8965.112603, + "decode_interface_builder": 9964.799496, + "retained:first:nodes:0": 315.4974230000007, + "retained:first:nodes:32": 51.19509299999845, + "retained:first:nodes:64": 12.884706000000733, + "retained:first:edges:0": 10.734415999999328, + "retained:warm:nodes:0": 28.8388309999973, + "retained:warm:nodes:32": 26.159010999999737, + "retained:warm:nodes:64": 11.110797000001185, + "retained:warm:edges:0": 24.50701200000185, + "export_evidence_bundle": 178.97883999999976 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 316 + } + }, + { + "case": "base1-a", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 14.521, + "cpu_seconds": 14.27046, + "family_peak_bytes": 962486272, + "first_pages_ms": 393.34008800000083, + "warm_pages_ms": 79.8695029999999, + "tokens": { + "input_catalog_once": 198492, + "arguments": 925, + "text_replies": 89328, + "transport_catalog": 891652, + "catalog_args_text_total": 288745 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "07429bc21fe5e030f358094aba858dc6154387a3f2b989b412c8cc433034b5b1", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "3df9c9da6f7e16ae37a1812ca5d70ec9f01f91a753b0e0c68e63c22ce2f9f3fb", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base1-a.log": "ae95ec91c29445847697daa9631893f848820cb817f3d410595b212f3a46e0fa" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8811.320081, + "decode_interface_builder": 829.6466140000011, + "retained:first:nodes:0": 253.69791500000065, + "retained:first:nodes:32": 38.915006999999605, + "retained:first:nodes:64": 52.251242000000275, + "retained:first:edges:0": 48.475924000000305, + "retained:warm:nodes:0": 24.635442000000694, + "retained:warm:nodes:32": 22.423201999999947, + "retained:warm:nodes:64": 19.285373999999138, + "retained:warm:edges:0": 13.525485000000117, + "export_evidence_bundle": 24.406651999999667 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 302 + } + }, + { + "case": "candidate1-a", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 14.421, + "cpu_seconds": 14.265759, + "family_peak_bytes": 928161792, + "first_pages_ms": 318.4466739999989, + "warm_pages_ms": 105.88868699999875, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "e5386301e93fabdf49829e14d1888e7ece665744bafea220bc96d2d006e6364e", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "a8f54c08ce2f6049a7d9d9add90473e791ae23fe643af9eda1694caaba793fb3", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "candidate1-a.log": "1f4b1a6cc47400ba3ebaf3834874f2799a8b47fcb683e9662a1a4f12443fa0c8" + }, + "cohort": "pre-review-diagnostic", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8855.477341000002, + "decode_interface_builder": 830.204776999999, + "retained:first:nodes:0": 240.0143769999995, + "retained:first:nodes:32": 41.57286799999929, + "retained:first:nodes:64": 25.966162000000622, + "retained:first:edges:0": 10.893266999999469, + "retained:warm:nodes:0": 33.69322899999861, + "retained:warm:nodes:32": 52.6659639999998, + "retained:warm:nodes:64": 10.853257000000667, + "retained:warm:edges:0": 8.676236999999674, + "export_evidence_bundle": 20.14914399999907 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 312 + } + }, + { + "case": "base64-d", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 27.817, + "cpu_seconds": 27.589669, + "family_peak_bytes": 1693085696, + "first_pages_ms": 2355.739948999999, + "warm_pages_ms": 1656.8954969999977, + "tokens": { + "input_catalog_once": 198492, + "arguments": 973, + "text_replies": 83420, + "transport_catalog": 891652, + "catalog_args_text_total": 282885 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "6367b5beb60f1157a2d7cedd595226a01c9300903803c0680ff1ef6095434adc", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "9ebb990aca6ffa155e22a1c8f41f46bf711b0211e2a34ba66fb38f7fea257f0e", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base64-d.log": "8f2b184af69c133e63139ac70adbd4a3d213c958a9a5316ef2c3dad1fccd7f1f" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8940.791294999999, + "decode_interface_builder": 10049.189375, + "retained:first:nodes:0": 622.5075870000001, + "retained:first:nodes:32": 522.2525859999987, + "retained:first:nodes:64": 830.4053469999999, + "retained:first:edges:0": 380.57442900000024, + "retained:warm:nodes:0": 454.59643700000015, + "retained:warm:nodes:32": 413.37309900000037, + "retained:warm:nodes:64": 375.4898209999992, + "retained:warm:edges:0": 413.436139999998, + "export_evidence_bundle": 203.834770999998 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 306 + } + }, + { + "case": "candidate64-c", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 24.389, + "cpu_seconds": 24.168312, + "family_peak_bytes": 1579798528, + "first_pages_ms": 297.56617500000357, + "warm_pages_ms": 79.30373900000268, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "1cb1deda156ef165a42212d9635884c10ab4e2450cb30c75e0b174ff76c42f11", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "eb6687b87d444d828e9383b12477d1b5c233e0d64a1c2034414e432172a624db", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "candidate64-c.log": "3f377d3124d96fc664fad25cce8c694b5de6b548d6f3851b4281a2089e65e4e3" + }, + "cohort": "pre-review-diagnostic", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8493.766014, + "decode_interface_builder": 10724.045096000002, + "retained:first:nodes:0": 216.44189800000095, + "retained:first:nodes:32": 55.42932400000063, + "retained:first:nodes:64": 13.646237000000838, + "retained:first:edges:0": 12.04871600000115, + "retained:warm:nodes:0": 29.29442299999937, + "retained:warm:nodes:32": 19.360114000002795, + "retained:warm:nodes:64": 17.378645000000688, + "retained:warm:edges:0": 13.270556999999826, + "export_evidence_bundle": 157.9878549999994 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 316 + } + }, + { + "case": "base1-b", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 14.426, + "cpu_seconds": 14.189495, + "family_peak_bytes": 1029562368, + "first_pages_ms": 379.44765200000074, + "warm_pages_ms": 87.13169700000071, + "tokens": { + "input_catalog_once": 198492, + "arguments": 925, + "text_replies": 89328, + "transport_catalog": 891652, + "catalog_args_text_total": 288745 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "31bd95098ed36cd40cc5f498679e87ed3b0dba6dc006a33e7ea8a2bde6c17750", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "ec65273e4c705be11fbe0fb020ba80cfafb9c7dc23c70fd98d37c68275bf9b14", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "base1-b.log": "0484dee607396a24cd869a7bf174d3c90d383a31fe495dcdaa16755c18ef1f81" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9022.373514, + "decode_interface_builder": 415.484332, + "retained:first:nodes:0": 244.64386599999852, + "retained:first:nodes:32": 56.88103500000034, + "retained:first:nodes:64": 59.26247500000136, + "retained:first:edges:0": 18.660276000000522, + "retained:warm:nodes:0": 30.546250999999756, + "retained:warm:nodes:32": 20.56200500000159, + "retained:warm:nodes:64": 17.23850599999969, + "retained:warm:edges:0": 18.784934999999678, + "export_evidence_bundle": 20.133835000000545 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 302 + } + }, + { + "case": "candidate1-b", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 14.322, + "cpu_seconds": 14.063822, + "family_peak_bytes": 910708736, + "first_pages_ms": 312.15903100000105, + "warm_pages_ms": 106.91923399999723, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "df4cb49ad11f4ea97324ee82216d2c7b6679851d69cfdc6aca622ea3167a7ec8", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "949bee557a7b277022bbee4bfbcb5d4a29db81595bbf3dbc08dcf1cb366e3b39", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "candidate1-b.log": "e730c6b38f4b83eb64d849b42c3f61f2e9926a4afa053a0e7196edd526601c47" + }, + "cohort": "pre-review-diagnostic", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 8700.808704000001, + "decode_interface_builder": 822.1318289999999, + "retained:first:nodes:0": 232.40674000000035, + "retained:first:nodes:32": 42.78948000000128, + "retained:first:nodes:64": 25.622323999999935, + "retained:first:edges:0": 11.340486999999484, + "retained:warm:nodes:0": 30.13187299999845, + "retained:warm:nodes:32": 24.73438399999941, + "retained:warm:nodes:64": 42.265139000001, + "retained:warm:edges:0": 9.787837999998374, + "export_evidence_bundle": 22.565863999998328 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 312 + } + }, + { + "case": "final64-a", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 45.451, + "cpu_seconds": 45.159521, + "family_peak_bytes": 1678360576, + "first_pages_ms": 502.6393830000088, + "warm_pages_ms": 113.75028999999631, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "21d11b8d8e54443ef725ad30e1e7723b1322ab3a1c3ef07b5e0b29528ea9c47b", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "01044e0718834c73146ad23a33776539316af906687b58a5ad93658f76334b03", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "final64-a.log": "15682283ca803c76a6799c72096b9a4c0ba02e1a8e94b4689e849dbe73e0f363" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 17300.406723, + "decode_interface_builder": 19707.669085999998, + "retained:first:nodes:0": 408.7007730000041, + "retained:first:nodes:32": 67.7736040000018, + "retained:first:nodes:64": 11.763998000002175, + "retained:first:edges:0": 14.40100800000073, + "retained:warm:nodes:0": 45.824015999998664, + "retained:warm:nodes:32": 36.86674700000003, + "retained:warm:nodes:64": 17.011309000001347, + "retained:warm:edges:0": 14.048217999996268, + "export_evidence_bundle": 217.4340299999967 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 308 + } + }, + { + "case": "final64-b", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 28.104, + "cpu_seconds": 27.66296, + "family_peak_bytes": 1589579776, + "first_pages_ms": 337.1969790000003, + "warm_pages_ms": 94.25291099999959, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "c456d12d1c433930fe0c367cf682605be30fcdb9e43726db1154569a8aa77067", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "b7aace414d26430deaa5757f168b9518d67013eed774c3ca035f6965e31a2b68", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "final64-b.log": "59f1d03576b569ef8568ce82969d445e1f19d2a7413fea5b91b3679dfefda589" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9580.544025, + "decode_interface_builder": 10731.996933999999, + "retained:first:nodes:0": 264.14993499999764, + "retained:first:nodes:32": 47.82620600000155, + "retained:first:nodes:64": 12.882488999999623, + "retained:first:edges:0": 12.338349000001472, + "retained:warm:nodes:0": 31.906856999998126, + "retained:warm:nodes:32": 22.65899800000261, + "retained:warm:nodes:64": 20.228237999999692, + "retained:warm:edges:0": 19.458817999999155, + "export_evidence_bundle": 190.28224300000147 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 308 + } + }, + { + "case": "final64-c", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 27.658, + "cpu_seconds": 27.423775, + "family_peak_bytes": 1686052864, + "first_pages_ms": 725.3027760000004, + "warm_pages_ms": 202.0118909999983, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "1eff45931ebf95e8d6a422e5d4bd08669e5b223366f23fd40c7897ec9d854b09", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "62984f96d7479eaed95deebdb2c997791432f6b3f3269c9732d9203840c0dbb6", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "final64-c.log": "8beebdde99e3030c24e99cfbc71afea89f5d6d0353b9970318e0a949b094465e" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9291.559111999999, + "decode_interface_builder": 12147.919030000001, + "retained:first:nodes:0": 627.6897540000027, + "retained:first:nodes:32": 62.24454499999774, + "retained:first:nodes:64": 15.814807999999175, + "retained:first:edges:0": 19.55366900000081, + "retained:warm:nodes:0": 112.77606000000014, + "retained:warm:nodes:32": 60.271733999998105, + "retained:warm:nodes:64": 13.751129000000219, + "retained:warm:edges:0": 15.212967999999819, + "export_evidence_bundle": 195.4423029999998 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 308 + } + }, + { + "case": "final1-a", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 16.361, + "cpu_seconds": 16.070345, + "family_peak_bytes": 989687808, + "first_pages_ms": 349.94369800000095, + "warm_pages_ms": 101.16938900000059, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "e61b6d3a30009a38069cec430b92c719f7847da05d472037ec1c3d50857e0b1a", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "94f566a17731de29e711413e03460b271c4d49c7fee0d89e47d38d7cc22e245a", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "final1-a.log": "3cddeda326963098c14f6ee4ab6fdae23566f0f5fc13d893a8595e51067bbcb0" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9938.202416, + "decode_interface_builder": 945.5195460000014, + "retained:first:nodes:0": 255.7381179999993, + "retained:first:nodes:32": 47.779545000001235, + "retained:first:nodes:64": 34.98892700000033, + "retained:first:edges:0": 11.43710800000008, + "retained:warm:nodes:0": 22.465237000000343, + "retained:warm:nodes:32": 27.447097000000213, + "retained:warm:nodes:64": 11.183578999998645, + "retained:warm:edges:0": 40.07347600000139, + "export_evidence_bundle": 34.000576999998884 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 304 + } + }, + { + "case": "final1-b", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 19.213, + "cpu_seconds": 18.923359, + "family_peak_bytes": 983822336, + "first_pages_ms": 385.12225599999874, + "warm_pages_ms": 121.68651899999895, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "d7a41f94a218827e802e16a95ee72d0de454f09fc866cc0b7bf41f7d04787b0a", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "c44ec58566bec7d2c9ee7d20242b064d0ac5370162692cec62bc98e7c2ac910b", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "final1-b.log": "0f13e36b1e65d81a8abfa570aea06f0d4cb24a2dd39c3a96701255ec418b0839" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 12526.691116, + "decode_interface_builder": 518.3830240000025, + "retained:first:nodes:0": 278.44313599999805, + "retained:first:nodes:32": 47.781536000002234, + "retained:first:nodes:64": 29.427746999997908, + "retained:first:edges:0": 29.469837000000553, + "retained:warm:nodes:0": 24.411996999999246, + "retained:warm:nodes:32": 34.29762800000026, + "retained:warm:nodes:64": 52.186045999998896, + "retained:warm:edges:0": 10.790848000000551, + "export_evidence_bundle": 26.291368999998667 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 304 + } + }, + { + "case": "paired-base-a", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 42.361, + "cpu_seconds": 41.989455, + "family_peak_bytes": 1726439424, + "first_pages_ms": 2606.3296100000007, + "warm_pages_ms": 2608.246241000008, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "437f78b63b90caeb5fd5585da13880a271c11720f7f4e8da61c396b0c0afed08", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "ad7c5828d91bc3af3ceb3abefacd05fe36ead59b30663f58e6f77372523aa085", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-base-a.log": "e68d8e1dd2816959efa23f5303bcf543e7a28c07170d24e575ed8bb14ae661b2" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 14478.24454, + "decode_interface_builder": 14946.413408000004, + "retained:first:nodes:0": 896.6980340000009, + "retained:first:nodes:32": 612.930088000001, + "retained:first:nodes:64": 512.8796670000011, + "retained:first:edges:0": 583.8218209999977, + "retained:warm:nodes:0": 1305.0322510000042, + "retained:warm:nodes:32": 454.78708200000256, + "retained:warm:nodes:64": 472.8005689999991, + "retained:warm:edges:0": 375.6263390000022, + "export_evidence_bundle": 234.39118099999905 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 316 + } + }, + { + "case": "paired-final-a", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 27.683, + "cpu_seconds": 27.415948, + "family_peak_bytes": 1626423296, + "first_pages_ms": 338.8228429999981, + "warm_pages_ms": 82.13496300000043, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "73952930a8b8e88b8a22d7f70ac8fb56e6252f1919aecbb5bd4a7fef5af9006b", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "adcd0752e09c7d805a0b7fb03def70f0f71126c96c5f3d5cef5955245951b494", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-final-a.log": "b5142a86306593cc784b29338baea6544e039b6c4dec525b7bddbe44f1c21a11" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 10389.192591, + "decode_interface_builder": 11465.374235999998, + "retained:first:nodes:0": 243.36653999999908, + "retained:first:nodes:32": 60.40034600000217, + "retained:first:nodes:64": 13.298558999998932, + "retained:first:edges:0": 21.75739799999792, + "retained:warm:nodes:0": 27.915908000002673, + "retained:warm:nodes:32": 25.82844699999987, + "retained:warm:nodes:64": 13.422219000000041, + "retained:warm:edges:0": 14.968388999997842, + "export_evidence_bundle": 174.43110499999966 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 318 + } + }, + { + "case": "paired-base-b", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 30.798, + "cpu_seconds": 30.53183, + "family_peak_bytes": 1583390720, + "first_pages_ms": 3312.2940770000023, + "warm_pages_ms": 1817.7919000000002, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "840e50593dc87a5d71cf06f8c6e760e39d632c2dc3ba418b2de2cd8e94c1ea30", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "c9b8c7260b7368da3e01026762a2a86dd5e87f1d3d57640e3710c6f8828e9625", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-base-b.log": "2548cb0dd9876190e549421a8f32d3f62962904376529d0cbf3a7140f588441d" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9854.016906, + "decode_interface_builder": 10634.946204000002, + "retained:first:nodes:0": 828.5348120000017, + "retained:first:nodes:32": 770.8737260000016, + "retained:first:nodes:64": 1141.1423859999995, + "retained:first:edges:0": 571.7431529999994, + "retained:warm:nodes:0": 488.864239999999, + "retained:warm:nodes:32": 459.1659319999999, + "retained:warm:nodes:64": 403.45395700000154, + "retained:warm:edges:0": 466.3077709999998, + "export_evidence_bundle": 209.22893199999817 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 316 + } + }, + { + "case": "paired-final-b", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 25.247, + "cpu_seconds": 24.979939, + "family_peak_bytes": 1592606720, + "first_pages_ms": 299.69509700000344, + "warm_pages_ms": 69.85876400000052, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "948baef8a55068304acb37f89d45a9654f80fbd189b579c4057a3f299054c2bf", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "bdcae254ab669e5658592ca7eeb912b0b57d7aa5d7fd457fcba17d61ed944a9d", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-final-b.log": "5ff421e6b16b56dfdc4294cc8051fc4e03e7b4ae5273ec1f7116661abdc4e5f4" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 9434.522058, + "decode_interface_builder": 10145.091444, + "retained:first:nodes:0": 226.1149919999989, + "retained:first:nodes:32": 47.55704700000206, + "retained:first:nodes:64": 13.987059000002773, + "retained:first:edges:0": 12.03599899999972, + "retained:warm:nodes:0": 18.870499000000564, + "retained:warm:nodes:32": 20.93528900000092, + "retained:warm:nodes:64": 16.08977799999775, + "retained:warm:edges:0": 13.963198000001285, + "export_evidence_bundle": 167.33527700000195 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 73267, + "retained:first:nodes:0": 85591, + "retained:first:nodes:32": 89363, + "retained:first:nodes:64": 61877, + "retained:first:edges:0": 55423, + "retained:warm:nodes:0": 85591, + "retained:warm:nodes:32": 89363, + "retained:warm:nodes:64": 61877, + "retained:warm:edges:0": 55423, + "export_evidence_bundle": 318 + } + }, + { + "case": "paired-small-base-a", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 16.883, + "cpu_seconds": 16.642377, + "family_peak_bytes": 1004916736, + "first_pages_ms": 385.71881999999823, + "warm_pages_ms": 120.08177099999739, + "tokens": { + "input_catalog_once": 198492, + "arguments": 927, + "text_replies": 89330, + "transport_catalog": 891652, + "catalog_args_text_total": 288749 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "69cac3d8dad8756d82c57db0ad74ddd88d2eee7f457982eb78bcfc1a6470a2f8", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "220762862f95028998c5296d71933602dd2958d643b06fd2bedc43d6bb9688f9", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-small-base-a.log": "083e566addc7785558ecb9be86d2de514fbff3c035016e44fc1da4a6a14b8d0d" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 10192.143904, + "decode_interface_builder": 869.8038230000002, + "retained:first:nodes:0": 259.25972, + "retained:first:nodes:32": 42.00718599999891, + "retained:first:nodes:64": 63.25943499999994, + "retained:first:edges:0": 21.192478999999366, + "retained:warm:nodes:0": 63.1786749999992, + "retained:warm:nodes:32": 26.862538000001223, + "retained:warm:nodes:64": 16.07532899999933, + "retained:warm:edges:0": 13.965228999997635, + "export_evidence_bundle": 22.24519899999723 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 326 + } + }, + { + "case": "paired-small-final-a", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 16.988, + "cpu_seconds": 16.720706, + "family_peak_bytes": 991711232, + "first_pages_ms": 324.83837599999606, + "warm_pages_ms": 102.21713199999795, + "tokens": { + "input_catalog_once": 198492, + "arguments": 927, + "text_replies": 89330, + "transport_catalog": 891652, + "catalog_args_text_total": 288749 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "398343d550bb7a11d1c5737d5fb5feda709f740207abe9eab161ea287c4af15b", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "3c4a73568bcc58aa6e0dee8bc3b54277c4cac6053442e62126b2071cf5eada76", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-small-final-a.log": "10d540bd81abb2f170801bdd5aa7b24ff8301986626c57c1ffc489681a55818e" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 10421.354091, + "decode_interface_builder": 935.4700279999997, + "retained:first:nodes:0": 245.61356100000012, + "retained:first:nodes:32": 42.95156700000007, + "retained:first:nodes:64": 25.667897999997876, + "retained:first:edges:0": 10.605349999997998, + "retained:warm:nodes:0": 30.417288000000553, + "retained:warm:nodes:32": 53.03630599999815, + "retained:warm:nodes:64": 10.664878999999928, + "retained:warm:edges:0": 8.098658999999316, + "export_evidence_bundle": 21.154237999999168 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 328 + } + }, + { + "case": "paired-small-base-b", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 18.317, + "cpu_seconds": 18.026515, + "family_peak_bytes": 992854016, + "first_pages_ms": 556.5680170000014, + "warm_pages_ms": 114.84649100000024, + "tokens": { + "input_catalog_once": 198492, + "arguments": 927, + "text_replies": 89330, + "transport_catalog": 891652, + "catalog_args_text_total": 288749 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "e1abb6e9bb3344e75cf503a613f8dd055f5107545649a652861d787e9fb527e7", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "b3c316fbe15a13c5cdf78e5c4913e9bf4dadad2147959225c225d02ebc490a2a", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-small-base-b.log": "a899914b975dc3841b0e172c58ebb9a1934a8784189e97642bb6fdf19a3b7c3f" + }, + "cohort": "baseline", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 11258.444909999998, + "decode_interface_builder": 1147.0202310000004, + "retained:first:nodes:0": 352.18821299999763, + "retained:first:nodes:32": 57.270345000000816, + "retained:first:nodes:64": 79.75677400000131, + "retained:first:edges:0": 67.35268500000166, + "retained:warm:nodes:0": 36.704587000000174, + "retained:warm:nodes:32": 34.813686999998026, + "retained:warm:nodes:64": 25.278568000001542, + "retained:warm:edges:0": 18.0496490000005, + "export_evidence_bundle": 27.995558000002347 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 326 + } + }, + { + "case": "paired-small-final-b", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 20.276, + "cpu_seconds": 20.021178, + "family_peak_bytes": 1016156160, + "first_pages_ms": 491.9646810000013, + "warm_pages_ms": 87.60847399999693, + "tokens": { + "input_catalog_once": 198492, + "arguments": 927, + "text_replies": 89330, + "transport_catalog": 891652, + "catalog_args_text_total": 288749 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "a3bf76fa7df53959df42698ffaabfaf40f15ce5bacb841519f3dfd1e42d10c38", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "cfde9c3e9c89ca30181ca3a7d0a00878daad291d6cb6d2f0dc095b530b6ba069", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "paired-small-final-b.log": "2efb80764db42ebe0e17925db76c5021291dca71b3fea3ce312fb382b1c7e9e5" + }, + "cohort": "final", + "payload_exit_code": 0, + "rpc_elapsed_ms": { + "open_bundle_resources": 13076.700744999998, + "decode_interface_builder": 658.1864890000033, + "retained:first:nodes:0": 325.4082649999982, + "retained:first:nodes:32": 66.75422500000059, + "retained:first:nodes:64": 66.08206400000199, + "retained:first:edges:0": 33.7201270000005, + "retained:warm:nodes:0": 33.28379700000005, + "retained:warm:nodes:32": 25.212798000000475, + "retained:warm:nodes:64": 14.38543899999786, + "retained:warm:edges:0": 14.726439999998547, + "export_evidence_bundle": 26.190567999998166 + }, + "rpc_reply_bytes": { + "open_bundle_resources": 781, + "decode_interface_builder": 43711, + "retained:first:nodes:0": 94151, + "retained:first:nodes:32": 97923, + "retained:first:nodes:64": 70437, + "retained:first:edges:0": 63983, + "retained:warm:nodes:0": 94151, + "retained:warm:nodes:32": 97923, + "retained:warm:nodes:64": 70437, + "retained:warm:edges:0": 63983, + "export_evidence_bundle": 328 + } + } + ], + "pre_review_source_fingerprints": { + "src/domain/analysisView/interfaceBuilderView.ts": "d605205312e9d3240737a13f7ccc08706976021e48b0e5db6e92afdca4c64a96", + "src/domain/immutableJson.ts": "0138c1e41866272ffe8a933b303e77468ee255f3ae9230d13d354b8af4290b3a", + "src/domain/analysisView/interfaceBuilderView.test.ts": "82f19a4bd2f3d2171324ce6f4d5928f670d738662cdd8dfc669cbdeaba5c9dac", + "src/domain/immutableJson.test.ts": "11377201326f068a38bc455b13ca0b38ccbe767db6d768c7d8519186e85fd47d", + "experiments/analysis-efficiency/interface-builder-views.mjs": "caa21f946d9a5499a924db7c3b00efb42cee1cda2a75254f62e764273db41ac4", + "experiments/analysis-efficiency/interface-builder-oracle.py": "421728911c7d46c08a8488c171f1b447a1a43dd35b12a8cde0c739b73f7647e3" + }, + "resource_accounting": "Authenticated payload-exit cgroup counters including observer; final scope counters unavailable", + "scope": "Fresh SDK/server task on prepared artifact including warm query diagnostic and cleanup; acquisition/build/oracle preparation excluded", + "isolated_projection_diagnostic": { + "excludes": "imports, reading/sealing the already decoded parent, authentication, startup, decoder, serialization, retention and cleanup; real public tasks account for those separately", + "source_sha256": "ec9d354ededf9895c123d622176bb5382a8482a4023375d7695573a201477cfe", + "receipt_sha256": "9c3f866e96d93dad5a69c6ec207181235a97a726a8ce6e459408df53fc571b47", + "measurements": { + "status": "passed", + "records": [ + { + "size": 1, + "epoch": 0, + "lane": "baseline", + "times": [ + { + "wall_ms": 68.41303400000004, + "cpu_ms": 70.081 + }, + { + "wall_ms": 29.286256999999978, + "cpu_ms": 29.326 + }, + { + "wall_ms": 43.9494370000001, + "cpu_ms": 44.027 + }, + { + "wall_ms": 43.20122700000002, + "cpu_ms": 42.528 + }, + { + "wall_ms": 44.23856599999999, + "cpu_ms": 48.3 + }, + { + "wall_ms": 24.85953900000004, + "cpu_ms": 24.903 + }, + { + "wall_ms": 25.515979000000016, + "cpu_ms": 25.553 + }, + { + "wall_ms": 17.346677999999997, + "cpu_ms": 17.379 + }, + { + "wall_ms": 37.6827780000001, + "cpu_ms": 37.717 + } + ] + }, + { + "size": 1, + "epoch": 0, + "lane": "final", + "times": [ + { + "wall_ms": 73.70459500000015, + "cpu_ms": 73.755 + }, + { + "wall_ms": 1.2189100000000508, + "cpu_ms": 1.242 + }, + { + "wall_ms": 9.507348999999977, + "cpu_ms": 9.538 + }, + { + "wall_ms": 0.2941000000000713, + "cpu_ms": 0.312 + }, + { + "wall_ms": 0.1800500000001648, + "cpu_ms": 0.192 + }, + { + "wall_ms": 0.19095100000004095, + "cpu_ms": 0.206 + }, + { + "wall_ms": 0.2362799999998515, + "cpu_ms": 0.252 + }, + { + "wall_ms": 0.20059900000001107, + "cpu_ms": 0.212 + }, + { + "wall_ms": 0.17951000000016393, + "cpu_ms": 0.191 + } + ] + }, + { + "size": 1, + "epoch": 1, + "lane": "final", + "times": [ + { + "wall_ms": 18.17219900000009, + "cpu_ms": 18.221 + }, + { + "wall_ms": 0.613589999999931, + "cpu_ms": 0.628 + }, + { + "wall_ms": 0.1300300000000334, + "cpu_ms": 0.135 + }, + { + "wall_ms": 0.43833999999992557, + "cpu_ms": 0.452 + }, + { + "wall_ms": 0.09960999999998421, + "cpu_ms": 0.104 + }, + { + "wall_ms": 0.11517000000003463, + "cpu_ms": 0.122 + }, + { + "wall_ms": 1.2772500000000946, + "cpu_ms": 1.282 + }, + { + "wall_ms": 0.0995700000000852, + "cpu_ms": 0.106 + }, + { + "wall_ms": 0.07568999999989501, + "cpu_ms": 0.08 + } + ] + }, + { + "size": 1, + "epoch": 1, + "lane": "baseline", + "times": [ + { + "wall_ms": 21.308299999999917, + "cpu_ms": 21.355 + }, + { + "wall_ms": 24.813978000000134, + "cpu_ms": 24.834 + }, + { + "wall_ms": 6.929008999999951, + "cpu_ms": 6.947 + }, + { + "wall_ms": 5.681449000000157, + "cpu_ms": 5.7 + }, + { + "wall_ms": 4.449569999999994, + "cpu_ms": 4.468 + }, + { + "wall_ms": 18.29602799999998, + "cpu_ms": 18.343 + }, + { + "wall_ms": 4.77597999999989, + "cpu_ms": 4.794 + }, + { + "wall_ms": 10.4982100000002, + "cpu_ms": 10.512 + }, + { + "wall_ms": 5.67465900000002, + "cpu_ms": 5.69 + } + ] + }, + { + "size": 1, + "epoch": 2, + "lane": "baseline", + "times": [ + { + "wall_ms": 36.07669800000008, + "cpu_ms": 36.108 + }, + { + "wall_ms": 11.09699999999998, + "cpu_ms": 11.112 + }, + { + "wall_ms": 6.764928999999938, + "cpu_ms": 6.782 + }, + { + "wall_ms": 21.68032900000003, + "cpu_ms": 21.696 + }, + { + "wall_ms": 6.783108999999968, + "cpu_ms": 6.797 + }, + { + "wall_ms": 21.953609000000142, + "cpu_ms": 21.849 + }, + { + "wall_ms": 25.07021799999984, + "cpu_ms": 25.102 + }, + { + "wall_ms": 11.641978999999992, + "cpu_ms": 11.653 + }, + { + "wall_ms": 16.247978000000103, + "cpu_ms": 16.285 + } + ] + }, + { + "size": 1, + "epoch": 2, + "lane": "final", + "times": [ + { + "wall_ms": 28.014597999999978, + "cpu_ms": 28.068 + }, + { + "wall_ms": 0.3190300000001116, + "cpu_ms": 0.327 + }, + { + "wall_ms": 0.5170200000000023, + "cpu_ms": 0.532 + }, + { + "wall_ms": 0.2934689999999591, + "cpu_ms": 0.302 + }, + { + "wall_ms": 0.17150000000015098, + "cpu_ms": 0.178 + }, + { + "wall_ms": 0.2591100000001916, + "cpu_ms": 0.264 + }, + { + "wall_ms": 0.2626309999998284, + "cpu_ms": 0.294 + }, + { + "wall_ms": 0.2321799999999712, + "cpu_ms": 0.236 + }, + { + "wall_ms": 0.1327689999998256, + "cpu_ms": 0.138 + } + ] + }, + { + "size": 64, + "epoch": 0, + "lane": "baseline", + "times": [ + { + "wall_ms": 1100.342839, + "cpu_ms": 1093.983 + }, + { + "wall_ms": 708.1302479999999, + "cpu_ms": 707.257 + }, + { + "wall_ms": 721.5706760000003, + "cpu_ms": 721.333 + }, + { + "wall_ms": 810.9676309999995, + "cpu_ms": 810.507 + }, + { + "wall_ms": 713.5866079999996, + "cpu_ms": 713.009 + }, + { + "wall_ms": 657.5378719999999, + "cpu_ms": 655.528 + }, + { + "wall_ms": 684.4311900000002, + "cpu_ms": 684.385 + }, + { + "wall_ms": 566.7142789999998, + "cpu_ms": 566.675 + }, + { + "wall_ms": 499.6365730000007, + "cpu_ms": 499.549 + } + ] + }, + { + "size": 64, + "epoch": 0, + "lane": "final", + "times": [ + { + "wall_ms": 881.4091349999999, + "cpu_ms": 879.842 + }, + { + "wall_ms": 3.981789999999819, + "cpu_ms": 4.005 + }, + { + "wall_ms": 3.931600999998409, + "cpu_ms": 3.944 + }, + { + "wall_ms": 3.212169000000358, + "cpu_ms": 3.224 + }, + { + "wall_ms": 11.921779000000242, + "cpu_ms": 11.94 + }, + { + "wall_ms": 3.441370000000461, + "cpu_ms": 3.473 + }, + { + "wall_ms": 2.952068999999028, + "cpu_ms": 2.97 + }, + { + "wall_ms": 2.792419000001246, + "cpu_ms": 2.806 + }, + { + "wall_ms": 2.468410000001313, + "cpu_ms": 2.484 + } + ] + }, + { + "size": 64, + "epoch": 1, + "lane": "final", + "times": [ + { + "wall_ms": 685.8004799999999, + "cpu_ms": 685.639 + }, + { + "wall_ms": 2.5660700000007637, + "cpu_ms": 2.577 + }, + { + "wall_ms": 3.658269999999902, + "cpu_ms": 3.67 + }, + { + "wall_ms": 8.307368999998289, + "cpu_ms": 8.332 + }, + { + "wall_ms": 0.6905699999988428, + "cpu_ms": 0.703 + }, + { + "wall_ms": 2.457350000000588, + "cpu_ms": 2.471 + }, + { + "wall_ms": 1.5386899999994057, + "cpu_ms": 1.543 + }, + { + "wall_ms": 1.1259989999998652, + "cpu_ms": 1.131 + }, + { + "wall_ms": 0.4890500000001339, + "cpu_ms": 0.492 + } + ] + }, + { + "size": 64, + "epoch": 1, + "lane": "baseline", + "times": [ + { + "wall_ms": 543.0276200000008, + "cpu_ms": 542.928 + }, + { + "wall_ms": 576.3298480000012, + "cpu_ms": 573.412 + }, + { + "wall_ms": 606.2757359999996, + "cpu_ms": 606.276 + }, + { + "wall_ms": 564.9468080000006, + "cpu_ms": 564.96 + }, + { + "wall_ms": 507.8036940000002, + "cpu_ms": 507.732 + }, + { + "wall_ms": 484.5579740000012, + "cpu_ms": 484.485 + }, + { + "wall_ms": 592.9803169999996, + "cpu_ms": 590.128 + }, + { + "wall_ms": 518.292512, + "cpu_ms": 518.214 + }, + { + "wall_ms": 609.3945350000013, + "cpu_ms": 609.412 + } + ] + }, + { + "size": 64, + "epoch": 2, + "lane": "baseline", + "times": [ + { + "wall_ms": 620.1696850000008, + "cpu_ms": 620.167 + }, + { + "wall_ms": 647.038063, + "cpu_ms": 646.998 + }, + { + "wall_ms": 628.229163, + "cpu_ms": 628.178 + }, + { + "wall_ms": 832.7170499999993, + "cpu_ms": 832.658 + }, + { + "wall_ms": 556.3752390000009, + "cpu_ms": 556.295 + }, + { + "wall_ms": 625.9563049999997, + "cpu_ms": 625.621 + }, + { + "wall_ms": 521.6217819999983, + "cpu_ms": 521.616 + }, + { + "wall_ms": 763.3255339999996, + "cpu_ms": 763.213 + }, + { + "wall_ms": 808.9021509999984, + "cpu_ms": 808.738 + } + ] + }, + { + "size": 64, + "epoch": 2, + "lane": "final", + "times": [ + { + "wall_ms": 1067.6547919999975, + "cpu_ms": 1067.543 + }, + { + "wall_ms": 13.563959999999497, + "cpu_ms": 13.554 + }, + { + "wall_ms": 2.0100099999981467, + "cpu_ms": 2.028 + }, + { + "wall_ms": 1.9144300000007206, + "cpu_ms": 1.927 + }, + { + "wall_ms": 0.538540000001376, + "cpu_ms": 0.548 + }, + { + "wall_ms": 2.348549999998795, + "cpu_ms": 2.361 + }, + { + "wall_ms": 1.8924990000014077, + "cpu_ms": 1.904 + }, + { + "wall_ms": 1.8247210000008636, + "cpu_ms": 1.834 + }, + { + "wall_ms": 0.6497290000006615, + "cpu_ms": 0.667 + } + ] + } + ] + }, + "resource_observation": { + "wall_seconds": 24.043, + "cpu_seconds": 23.736371, + "peak_cgroup_bytes": 546844672, + "payload_exit_code": 0, + "payload_cleanup_verified": true, + "payload_counters_verified": true, + "resource_events": { + "memory.events": { + "low": 0, + "high": 0, + "max": 0, + "oom": 0, + "oom_kill": 0, + "oom_group_kill": 0 + }, + "pids.events": { + "max": 0 + } + }, + "final_scope_events": null + } + }, + "public_task_resource_policy": { + "hard_memory_bytes": 4294967296, + "early_stop_bytes": 3221225472, + "cpu_quota_percent": 100, + "cpu_affinity": [15], + "task_ceiling": 192 + }, + "public_task_resource_observations": { + "payload_counters_verified": true, + "payload_cleanup_verified": true, + "abort": null, + "limit_events": { + "memory.events": { + "low": 0, + "high": 0, + "max": 0, + "oom": 0, + "oom_kill": 0, + "oom_group_kill": 0 + }, + "pids.events": { + "max": 0 + } + }, + "final_scope_events": null, + "rpc_error_count": 0 + }, + "post_rebase_verification": { + "revision": "383e19f43cb9be1cd9db4bf22e4ba7bca016f4a2", + "base": "f5410bdc4c86de564ddb24f24df86c41cfdd8bec", + "purpose": "Integration correctness confirmation, excluded from the pinned pre-rebase comparison medians. Complete retained parents equal original baseline for both sizes; complete and portable CLI Evidence also equal baseline/MCP.", + "records": [ + { + "case": "rebased64", + "status": "passed", + "documents_limit": 64, + "wall_seconds": 29.808, + "cpu_seconds": 29.494642, + "family_peak_bytes": 1599897600, + "tokens": { + "input_catalog_once": 198492, + "arguments": 973, + "text_replies": 83420, + "transport_catalog": 891652, + "catalog_args_text_total": 282885 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "21728d09aab31188c85fd2bb68741e8b467121634cc4c76145613a0ff2e7b375", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "2da913b447910ddbd2c8e207ed5316607bbb28a1f282bdb45bafcc4b59a37794", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "rebased64.log": "636318779fa44e685a0a2034f6e3e091dc668202534fb33ea6b770b91085047b" + } + }, + { + "case": "rebased1", + "status": "passed", + "documents_limit": 1, + "wall_seconds": 21.098, + "cpu_seconds": 20.773775, + "family_peak_bytes": 1012338688, + "tokens": { + "input_catalog_once": 198492, + "arguments": 925, + "text_replies": 89328, + "transport_catalog": 891652, + "catalog_args_text_total": 288745 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "e4f51a350e0a81bb97875c68ffe338f72946cc949418ef6fd51f25b20fd53811", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "fe05f481070a3e940f6a7a4e5663503a7b176c79e93aa91c21ce7b9ac864395a", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "rebased1.log": "06c2cb16cba89a596028cb15c2fdf88d6ad7de3793e83954c65957d2a3e318a2" + } + } + ] + }, + "measured_sources_sha256": { + "src/domain/analysisView/interfaceBuilderView.ts": "54dae141833b6032af49b9be14e32200c789d8e3c77f597fb56fd23a50143623", + "src/domain/immutableJson.ts": "0138c1e41866272ffe8a933b303e77468ee255f3ae9230d13d354b8af4290b3a", + "src/domain/analysisView/interfaceBuilderView.test.ts": "9e8eaec694e386d6af109eb270a7d382c6a60d509d6abcbe39d52af879c439f7", + "src/domain/immutableJson.test.ts": "11377201326f068a38bc455b13ca0b38ccbe767db6d768c7d8519186e85fd47d", + "experiments/analysis-efficiency/interface-builder-views.mjs": "caa21f946d9a5499a924db7c3b00efb42cee1cda2a75254f62e764273db41ac4", + "experiments/analysis-efficiency/interface-builder-oracle.py": "421728911c7d46c08a8488c171f1b447a1a43dd35b12a8cde0c739b73f7647e3" + }, + "current_sources_sha256": { + "src/domain/analysisView/interfaceBuilderView.ts": "54dae141833b6032af49b9be14e32200c789d8e3c77f597fb56fd23a50143623", + "src/domain/immutableJson.ts": "0138c1e41866272ffe8a933b303e77468ee255f3ae9230d13d354b8af4290b3a", + "src/domain/analysisView/interfaceBuilderView.test.ts": "9e8eaec694e386d6af109eb270a7d382c6a60d509d6abcbe39d52af879c439f7", + "src/domain/immutableJson.test.ts": "11377201326f068a38bc455b13ca0b38ccbe767db6d768c7d8519186e85fd47d", + "experiments/analysis-efficiency/interface-builder-views.mjs": "e4c13065259ca96d50e3f94eb9faf10f4d196c4131357d00d52ba8521f62c4d0", + "experiments/analysis-efficiency/interface-builder-oracle.py": "553915cad163514508f47f5f12da6eaaa8c0e8576211330aaa184b3999441597" + }, + "review_verification": { + "purpose": "Require a separate pre-change complete parent for both limits; reject an intentionally wrong 1-document baseline after a successful real task. Production source is unchanged. Excluded from original comparison medians.", + "records": [ + { + "case": "reviewed64", + "status": "passed", + "failure": null, + "documents_limit": 64, + "wall_seconds": 28.383, + "cpu_seconds": 28.015985, + "family_peak_bytes": 1668419584, + "tokens": { + "input_catalog_once": 198492, + "arguments": 974, + "text_replies": 83421, + "transport_catalog": 891652, + "catalog_args_text_total": 282887 + }, + "parent_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "file_sha256": { + "report.json": "4b5965e5c68145f95f63351d29afca8036b1c4372cb1af5dffb8e283b15b2d03", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "a402f0ed756ee4914e5e5f9ec4f78009a881658f6bbf5c712ae670604056afd4", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "reviewed64.log": "b4a0a1ce492cbdebdcecc33ea97cab210e60fb01a3cc0a27c623d3c65f9bac82" + }, + "baseline_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "baseline_file_sha256": "15f7e82e66e51403f2446ad6cbd2fbee66ebd1d847e68569d764b60f6e0755a7" + }, + { + "case": "reviewed1", + "status": "passed", + "failure": null, + "documents_limit": 1, + "wall_seconds": 16.156, + "cpu_seconds": 15.932201, + "family_peak_bytes": 972292096, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "0c8aa9af5ed2d0a4c7e1a76aaea3b0889965f8c9e52afb5f43fcb2a9245b31ce", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "575ea1a79043f1af406cc835db2b8c2c7d9b40130ec4efe8ebcc1fba3f7d0fd2", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "reviewed1.log": "43d9d0d81bd4794d1ba10c69c7dd9e668645152abfee67b54ce58db46b9bbe6e" + }, + "baseline_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "baseline_file_sha256": "aeebab95f4b0e7c1dc0887cd5494c4a30005d5f4c6e8196449db93499db171b0" + }, + { + "case": "review-negative-small", + "status": "failed", + "failure": "AssertionError [ERR_ASSERTION]: Complete retained Evidence differs from the pre-change 1-document baseline.\n+ actual - expected\n\n+ 'ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639'\n- 'ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89'\n\n at file:///home/yann/yann/rea-perf-apple-ui-20261021/experiments/analysis-efficiency/interface-builder-views.mjs:212:10", + "documents_limit": 1, + "wall_seconds": 25.22, + "cpu_seconds": 24.994988, + "family_peak_bytes": 1021820928, + "tokens": { + "input_catalog_once": 198492, + "arguments": 926, + "text_replies": 89329, + "transport_catalog": 891652, + "catalog_args_text_total": 288747 + }, + "parent_evidence_id": "ev_7a255584cf54617bded9de05000605773a10fdb364c4a5e15e082ecb7c48f639", + "file_sha256": { + "report.json": "dc0ea04dc0db7ac19214894e4897256edb181548129dcf7b0713ba1e0fc97b72", + "catalog.json": "e927d03a1e0d33805583b9e62ff1f297b6d6cfeb5f21e58ed92aa47423772e1c", + "transcript.json": "865c2bf9becf8d5710ccc0ce4366ff0b1ce1a341092b30d6c74babfa99d0dc64", + "server.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "review-negative-small.log": "cc786e8948aee51c7851f65a6603b52b630563520635042c1845b573683452ba" + }, + "baseline_evidence_id": "ev_138e56163e8754e99a47c017105dcb9e9db4d7a0326cbbf5c219c9e2cb725c89", + "baseline_file_sha256": "15f7e82e66e51403f2446ad6cbd2fbee66ebd1d847e68569d764b60f6e0755a7" + } + ] + } +} diff --git a/experiments/analysis-efficiency/interface-builder-views.md b/experiments/analysis-efficiency/interface-builder-views.md new file mode 100644 index 0000000000..b99b5d1495 --- /dev/null +++ b/experiments/analysis-efficiency/interface-builder-views.md @@ -0,0 +1,225 @@ +# Retained Interface Builder graph validation + +Issue #5855. Baseline `f801b2fbfd28f4e3713adefddc7bd73db44c284c`, Linux +x86_64 / AMD EPYC 7B12 / Node 24.18.0 / npm 11.16.0. This is static archive +analysis on Linux, without executing an app or using ibtool or a native +analysis provider. + +## Question and oracle + +Identify the AAC settings outlets and VBR action in the official +[XLD 20250302 app](https://tmkk.undo.jp/xld/index_e.html), including archive +source/destination object identities, connection evidence and limitations. + +- [Official DMG](https://tmkk.undo.jp/xld/xld-20250302.dmg) SHA-256: + `0032a5470ea4e32a11a35b8077ebf4986102891f8eb82743094f2c6621ad8aeb`. +- Selected document: + `Contents/PlugIns/XLDAacOutput.bundle/Contents/Resources/English.lproj/XLDAacOutput.nib`. +- Archive SHA-256: + `4fdbfba451ee64b1d333c96a4f3d1a0c4b543a36b9b3686e1151b51e4dd14c72`. +- Python's independent `plistlib` reads the actual `$objects` table and + `NSNibOutletConnector` / `NSNibControlConnector` records. Observed connections: + +| Kind | Label | Source UID | Destination UID | +| ------ | ------------- | ---------- | --------------- | +| outlet | o_bitrate | 2 | 10 | +| outlet | o_gaplessFlag | 2 | 41 | +| outlet | o_prefPane | 2 | 53 | +| outlet | o_quality | 2 | 62 | +| outlet | o_useVBR | 2 | 58 | +| action | vbrChecked: | 58 | 2 | + +The benchmark checks each connector, both endpoint records, relationship kinds, +archive path/digest and page coverage against these independent facts. It also +compares all returned document rows with the exported complete parent; all +64-document normalized results match the pre-change complete CLI Evidence. +The complete exported parent Evidence is equal across versions for both +admission sizes. The reproduction oracle requires a separate pre-change +complete Evidence file for each size, and the harness compares the entire +parent, including its identity and parameters, for the selected limit. Equality is a preservation control, not an independent proof +of every decoded fact. + +The default 64-document report contains 6,528 nodes and 1,378 edges. The small +control admits one document from the same unmodified real app, with 80 nodes +and 13 edges. Both reports retain truncation and hierarchy limitations. Resource +sessions have no executable subject or executable digest; archive identities +must not be promoted to executable identity. + +## Completed workflow and accounting + +`interface-builder-views.mjs` uses the real SDK and compiled stdio MCP server: +connect, discover the full catalog, open bundle resources, decode with summary +delivery, exhaust three 32-row node pages and one edge page for the selected +document, repeat those same four pages as a warm query diagnostic, export the +complete Evidence, verify the answer and complete parent, and await cleanup. +The repeat is included in all whole-task costs. Each run starts a fresh server +and isolated account. Decoding is the first decode in that server; retained +queries follow the summary's first validation. OS caches were not flushed, so +these are not disk-cold measurements. + +Artifact acquisition/extraction, build time and independent oracle preparation +are outside this analysis task. No actual model session or billed model token +usage was measured. The SDK benchmark answers a fixed factual question; it does +not establish agent usability or general provider performance. + +Experiments ran serially using `resource-run.py --observe-payload-exit`: one CPU +(affinity 15), 100% quota, 4 GiB hard memory / 3 GiB early stop, no swap and a +192-task ceiling. CPU and peak memory cover the SDK, server and observer family. +Peak is cgroup memory.peak, including charged page cache, rather than summed RSS. +Payload-exit cgroup counters are authenticated and cleanup is verified; final +whole-scope counters are unavailable after the transient scope disappears. +Every accepted and failed task has exit/cleanup verification and zero observed +memory high/max/OOM/OOM-kill and PID-limit events. Missing final counters are +not interpreted as zero. + +## Observations + +Medians across all accepted baseline runs and the measured optimized +production-source cohort. The later harness-only review fix does not change +those production files; its revalidation is recorded separately. Five +earlier candidate runs remain labeled pre-review diagnostics and are excluded +from the final-source medians. One failed initial harness run is also retained. +All individual runs, phase timings, token estimates and raw receipt hashes are +in `interface-builder-views.json`. + +| Admitted documents | Revision | Runs | Whole wall s | Family CPU s | Family peak MiB | First four pages ms | Repeated four pages ms | +| ------------------ | -------- | ---- | ------------ | ------------ | --------------- | ------------------- | ---------------------- | +| 64 | baseline | 5 | 30.798 | 30.532 | 1614.7 | 2606.3 | 1817.8 | +| 64 | final | 5 | 27.683 | 27.424 | 1551.1 | 338.8 | 94.3 | +| 1 | baseline | 4 | 15.702 | 15.456 | 952.6 | 389.5 | 101.0 | +| 1 | final | 4 | 18.101 | 17.822 | 944.8 | 367.5 | 101.7 | + +The larger sampled task has about 10% lower whole wall/CPU medians and 94.8% +lower repeated-page latency. Whole-task ranges overlap substantially: +27.420–51.481 s baseline and 25.247–45.451 s final. Startup/initial decoding +vary independently of the retained-query change; these observations do not +establish a general whole-task speedup or stable memory reduction. Both +versions' slow first runs remain included. + +The small sampled task is slower overall (15.3% wall), with no repeat-page +benefit. In the two later interleaved small pairs, baseline took 16.883/18.317 s +and final took 16.988/20.276 s. Do not interpret the earlier unpaired small +measurements as evidence of a cold-start improvement. Startup variance remains +unexplained; this optimization is justified by repeated large-parent queries, +not a claim that every completed task becomes faster. + +An additional production-boundary diagnostic isolates the changed projection +from startup, decoding and transport. It imports both compiled owners, seals +separate clones of the actual exported parent with each owner's snapshot +module, and alternates version order for three epochs. Each epoch projects a +summary and the same eight pages; every resulting payload is equal. Median +projection CPU falls from 157.4 to 30.3 ms for the one-document parent and +6003.5 to 914.7 ms for the 64-document parent. Snapshot preparation, Evidence +authentication and all adapters are excluded from this diagnostic; the public +tasks above account for their whole costs. First large-summary CPU rises from +620.2 to 879.8 ms because representation comparison is paid up front. This is a +reuse tradeoff, not a faster first decode. The diagnostic source/receipt hashes, +per-call wall/CPU times and bounded process-family counters are retained in the +JSON; it does not replace real public workflow evidence. + +Selection still scans retained rows to count every match; no additional +per-document index is retained. The whole original graph and serialization +costs still exist. + +Public input/output contracts and complete parent Evidence are unchanged. +Tokenizer estimates count the entire 212-tool input catalog once, every RPC's +arguments and text response, including warm diagnostics and export. The raw SDK +catalog, including output schemas, is reported separately. Structured content +and model-specific discovery/exposure may incur different costs. The 64-document task estimates are 282,885 baseline and 282,887 for the +initial candidate (198,492 input-catalog tokens in each); the two-token change +comes solely from the export destination. The first ten RPC requests and +replies are exactly equal. Raw SDK catalog exposure estimates 891,652 tokens +including output schemas. Final-source values and every run are retained in +the JSON. There is no claimed token reduction. + +## Ownership and reuse + +The Interface Builder view owner validates an unknown normalized result with +its existing schema. Reuse requires the application's seal plus exact owned +immutable snapshot identity and representation-preserving comparison against +the parsed result. A weak set records only successful snapshots. It retains no +second graph, file-path cache, index, transient errors or failed subject +bindings. Every view still checks its current parent's target binding and +constructs current parent provenance and limitations. Different results, +mutable imports, forged seals and schema normalization revalidate normally. + +Document selection uses the shared matching pager to count all matching rows +while retaining only the requested page. Unfiltered requests keep direct +slicing. Row IDs, ordering, provenance, decoder truncation and unknowns remain +unchanged. CLI and MCP share the same application/domain implementation. + +The snapshot comparison helper's type accepts owning schemas with optional +undefined members; its runtime comparison is unchanged and refuses a parsed +representation that actually adds an undefined field. + +## Reproduction and limits + +Extract the official app without running it. On the baseline, save complete +CLI JSON with `rea decode-interface-builder --format json` and a +separate control with `rea decode-interface-builder --max-documents 1 +--format json` (without profiler logging mixed into either JSON). Then: + +```sh +python3 experiments/analysis-efficiency/interface-builder-oracle.py \ + --bundle '' \ + --document 'Contents/PlugIns/XLDAacOutput.bundle/Contents/Resources/English.lproj/XLDAacOutput.nib' \ + --baseline '' \ + --small-baseline '' --output '' +python3 experiments/analysis-efficiency/resource-run.py --observe-payload-exit -- \ + node experiments/analysis-efficiency/interface-builder-views.mjs \ + --runtime '' --input '' \ + --oracle '' --output '' --documents 64 +``` + +Repeat with `--documents 1`. Paths must be absolute. The oracle uses standard +Python only; token estimates use offline tiktoken 0.12.0 / cl100k_base. Count +compact JSON tool name/description/inputSchema entries once, compact +`{name,arguments}` for every transcript event, and every returned text block; +these are estimates, not actual model usage. + +Failed attempts remain visible. `base64-a` completed all eight page RPCs but the +first harness incorrectly expected an action-source `contains` edge. Production +correctly returned `target_action`; the harness was corrected before accepted +runs. That failure's costs/receipt remain in the JSON. An initial typecheck +refused the snapshot helper's unnecessarily narrow generic constraint for the +optional resource root; the constraint was corrected without changing runtime +comparison. Build resource observations with a still-exiting Turbo child are +not qualified task measurements. + +KeepingYouAwake 1.6.8 (official ZIP SHA-256 +`8001a149b4490c008fdac19898bce9902d516c4aa6412a7eb0f9a37443b15c6b`) +was also downloaded and smoke-decoded through the real CLI +(17 documents, 1,369 nodes, 542 edges), but its NIBArchive records cannot be read +by this plistlib oracle. It is not a comparative benchmark or independent NIB +correctness claim. macOS ibtool, runtime UI, other archive variants, globally +complete hierarchy/class interpretation, #5720/#5721 and the remaining source +decoder issues are unverified or unchanged here. + +## Integration verification + +The measured comparison above was pinned to `f801b2fbf`. The branch was then +rebased onto `f5410bdc4` (the separate #5806 scalar-record fix). All six recorded owned-source +fingerprints remained identical across that rebase. On the rebased runtime both real SDK +tasks passed again, with the complete retained parent equal to the original +baseline for both admission sizes. The complete real CLI Evidence and portable +CLI page also equal the baseline/MCP results. These integration runs are recorded +separately in the JSON and excluded from the pinned comparison medians. + +The relevant 12-file suite passed 204 tests after the paging refactor. After +rebasing, another six-file run passed 78 tests covering scalar source facts, +keyed archive number metadata, Interface Builder views, production MCP summary +paging and compiled CLI numeric/hierarchy boundaries. Both cohorts verified +owned cleanup with no observed memory/PID limit events; tests used the bounded +two-CPU, 4 GiB guard. Native ibtool/macOS runtime behavior is not established by +these tests. + +Greptile identified that the original script only enforced the pre-change +comparison for 64 documents; the one-document equality above had been checked +manually. The oracle now requires both baseline files and the harness compares +the selected complete parent, including its Evidence ID and parameters, for +either limit. Both real workflows passed again. An intentional wrong baseline +(the 64-document parent supplied for the 1-document task) is rejected after all +other real-task checks succeed, with cleanup verified. These review checks and +updated harness fingerprints are recorded separately. Production source and +original comparison medians are unchanged; original measured fingerprints are +preserved rather than relabeled as the new harness. diff --git a/experiments/analysis-efficiency/interface-builder-views.mjs b/experiments/analysis-efficiency/interface-builder-views.mjs new file mode 100644 index 0000000000..2b97d9887d --- /dev/null +++ b/experiments/analysis-efficiency/interface-builder-views.mjs @@ -0,0 +1,238 @@ +import assert from "node:assert/strict"; +import { createHash } from "node:crypto"; +import { createWriteStream } from "node:fs"; +import { mkdir, mkdtemp, readFile, writeFile } from "node:fs/promises"; +import { createRequire } from "node:module"; +import { tmpdir } from "node:os"; +import { join, resolve } from "node:path"; +import { finished } from "node:stream/promises"; +import { pathToFileURL } from "node:url"; +import { parseArgs } from "node:util"; +import { createRetainedQueryCaller } from "./retained-query-calls.mjs"; +import { finalizeRetainedQueryReceipt } from "./retained-query-finalization.mjs"; + +const { values } = parseArgs({ + options: { + runtime: { type: "string" }, + input: { type: "string" }, + oracle: { type: "string" }, + output: { type: "string" }, + documents: { type: "string", default: "64" }, + }, +}); +for (const key of ["runtime", "input", "oracle", "output"]) + assert.equal(values[key], resolve(values[key])); +const maxDocuments = Number(values.documents); +assert.ok([1, 64].includes(maxDocuments)); +const oracle = JSON.parse(await readFile(values.oracle, "utf8")); +const baselinePath = oracle.complete_result_paths?.[String(maxDocuments)]; +assert.equal( + typeof baselinePath, + "string", + "Provide a pre-change baseline for the selected document limit.", +); +assert.equal(baselinePath, resolve(baselinePath)); +const sha256 = (bytes) => createHash("sha256").update(bytes).digest("hex"); +assert.equal( + sha256(await readFile(join(values.input, oracle.document))), + oracle.archive_sha256, +); +const require = createRequire(join(values.runtime, "package.json")); +const { Client } = await import( + pathToFileURL(require.resolve("@modelcontextprotocol/client")) +); +const { StdioClientTransport } = await import( + pathToFileURL(require.resolve("@modelcontextprotocol/client/stdio")) +); +await mkdir(values.output, { mode: 0o700 }); +const account = await mkdtemp(join(tmpdir(), "rea-interface-builder-views-")); +const report = { + question: + "Identify archived AAC settings outlets and the VBR action with source/destination object identities, coverage and complete Evidence access.", + max_documents: maxDocuments, + calls: [], +}; +const client = new Client({ + name: "rea-interface-builder-views", + version: "1", +}); +const transport = new StdioClientTransport({ + command: process.execPath, + args: [join(values.runtime, "scripts/rea.mjs"), "mcp"], + env: { + HOME: account, + PATH: process.env.PATH, + NODE_OPTIONS: "--max-old-space-size=2048", + UV_THREADPOOL_SIZE: "1", + REA_LOG_LEVEL: "silent", + }, + stderr: "pipe", +}); +const serverLog = createWriteStream(join(values.output, "server.log")); +const serverLogFinished = finished(serverLog); +serverLogFinished.catch(() => {}); +transport.stderr?.pipe(serverLog); +const transcript = []; +const call = createRetainedQueryCaller(client, (receipt, event) => { + report.calls.push(receipt); + transcript.push(event); +}); +async function result(name, input, phase = name) { + const reply = await call(name, input, phase); + assert.ok(!reply.isError, JSON.stringify(reply)); + assert.ok(reply.structuredContent); + assert.equal(reply.content.length, 1); + assert.equal(reply.content[0].type, "text"); + assert.deepEqual(JSON.parse(reply.content[0].text), reply.structuredContent); + return reply.structuredContent; +} +try { + await client.connect(transport); + const catalog = await client.listTools(); + assert.equal(catalog.nextCursor, undefined); + report.catalog_tools = catalog.tools.length; + await writeFile(join(values.output, "catalog.json"), JSON.stringify(catalog)); + await result("open_bundle_resources", { path: values.input }); + const initial = await result("decode_interface_builder", { + max_documents: maxDocuments, + detail: "summary", + }); + const summary = initial.normalized_result; + report.parent_evidence_id = summary.parent_evidence_id; + assert.equal(summary.resource_root.executable_sha256, null); + assert.equal(summary.artifact.sha256, null); + assert.equal(summary.summary.truncated, true); + assert.ok( + summary.summary.documents.some( + (d) => + d.relative_path === oracle.document && + d.archive_sha256 === oracle.archive_sha256, + ), + ); + const collections = {}; + for (const pass of ["first", "warm"]) { + for (const collection of ["nodes", "edges"]) { + const rows = []; + let offset = 0; + for (;;) { + const selected = await result( + "inspect_analysis_view", + { + source: { + kind: "retained-evidence", + evidence_id: report.parent_evidence_id, + }, + view: { + kind: "interface-builder", + collection, + document: oracle.document, + offset, + limit: 32, + }, + }, + `retained:${pass}:${collection}:${offset}`, + ); + const page = selected.normalized_result; + assert.equal(page.parent_evidence_id, report.parent_evidence_id); + assert.equal(page.source_truncated, true); + assert.ok(page.unknowns.length > 0); + rows.push(...page.items); + if (page.coverage.exhausted) { + assert.equal(rows.length, page.coverage.total); + break; + } + assert.ok(page.items.length > 0); + offset += page.items.length; + } + if (pass === "warm") assert.deepEqual(rows, collections[collection]); + else collections[collection] = rows; + } + } + const byId = new Map(collections.nodes.map((n) => [n.id, n])); + for (const expected of oracle.connections) { + const connector = collections.nodes.find( + (n) => n.kind === expected.kind && n.name === expected.name, + ); + assert.ok(connector); + const sourceRelation = + expected.kind === "outlet" ? "contains" : "target_action"; + const source = collections.edges.find( + (e) => e.to === connector.id && e.relation === sourceRelation, + ); + assert.equal( + byId.get(source.from).attributes.interface_builder_object_id, + expected.source, + ); + const relation = expected.kind === "outlet" ? "outlet_to" : "target_action"; + const destination = collections.edges.find( + (e) => + e.from === connector.id && + e.relation === relation && + byId.get(e.to)?.attributes.interface_builder_object_id === + expected.destination, + ); + assert.equal( + byId.get(destination.to).attributes.interface_builder_object_id, + expected.destination, + ); + for (const row of [connector, source, destination]) + assert.ok( + row.evidence.some( + (e) => + e.artifact_path === oracle.document && + e.artifact_sha256 === oracle.archive_sha256, + ), + ); + } + report.answer = oracle.connections; + await result("export_evidence_bundle", { + path: join(values.output, "evidence.json"), + }); + const bundle = JSON.parse( + await readFile(join(values.output, "evidence.json"), "utf8"), + ); + const parent = bundle.records.find( + (e) => e.evidence_id === report.parent_evidence_id, + ); + assert.equal(parent.subject, null); + assert.equal(parent.operation, "decode_interface_builder"); + const full = parent.normalized_result; + for (const collection of ["nodes", "edges"]) + assert.deepEqual( + collections[collection], + full.graph[collection].filter((r) => + r.evidence.some((e) => e.artifact_path === oracle.document), + ), + ); + const baselineBytes = await readFile(baselinePath, "utf8"); + const expectedParent = JSON.parse(baselineBytes); + report.baseline_sha256 = sha256(baselineBytes); + report.baseline_evidence_id = expectedParent.evidence_id; + const mismatch = `Complete retained Evidence differs from the pre-change ${maxDocuments}-document baseline.`; + assert.equal(parent.evidence_id, expectedParent.evidence_id, mismatch); + assert.deepEqual(parent, expectedParent, mismatch); + report.available_counts = { + nodes: full.graph.nodes.length, + edges: full.graph.edges.length, + }; + report.oracle_sha256 = sha256(await readFile(values.oracle)); + report.status = "passed"; +} catch (cause) { + report.status = "failed"; + report.failure = String(cause?.stack ?? cause); + process.exitCode = 1; +} finally { + if ( + !(await finalizeRetainedQueryReceipt({ + report, + client, + transport, + account, + serverLog, + serverLogFinished, + output: values.output, + transcript, + })) + ) + process.exitCode = 1; +} diff --git a/src/domain/analysisView/interfaceBuilderView.test.ts b/src/domain/analysisView/interfaceBuilderView.test.ts index b3f02916ea..9ec2dd0bfe 100644 --- a/src/domain/analysisView/interfaceBuilderView.test.ts +++ b/src/domain/analysisView/interfaceBuilderView.test.ts @@ -1,4 +1,6 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it, vi } from "vitest"; +import { interfaceBuilderAnalysisSchema } from "../apple/interfaceBuilderGraph.js"; +import { freezeJsonSnapshot } from "../immutableJson.js"; import { analysisViewResultSchema, @@ -102,6 +104,110 @@ const parent = ( limitations: [], }); +describe("Interface Builder immutable interpretation", () => { + it("validates a sealed graph once while checking the current parent binding every time", () => { + const source = { + ...parent(freezeJsonSnapshot(report())), + sealedResult: true, + }; + const parse = vi.spyOn(interfaceBuilderAnalysisSchema, "safeParse"); + try { + expect(projectAnalysisView(source, { kind: "summary" }).ok).toBe(true); + expect( + projectAnalysisView(source, { + kind: "interface-builder", + collection: "nodes", + document: main, + offset: 0, + limit: 1, + }).ok, + ).toBe(true); + expect(parse).toHaveBeenCalledTimes(1); + const changed = { + ...source, + subject: { ...source.subject!, digest: { sha256: "d".repeat(64) } }, + }; + const rejected = projectAnalysisView(changed, { kind: "summary" }); + if (rejected.ok) + throw new Error("expected a subject refusal after reuse"); + expect(rejected.error).toMatchObject({ + issues: [{ path: ["source", "subject"] }], + }); + expect(parse).toHaveBeenCalledTimes(1); + } finally { + parse.mockRestore(); + } + }); + + it("revalidates mutable and shallow-frozen imports despite a claimed seal", () => { + const mutable = report(); + const source = { ...parent(mutable), sealedResult: true }; + expect(projectAnalysisView(source, { kind: "summary" }).ok).toBe(true); + Object.freeze(mutable); + mutable.graph.nodes[0]!.name = ""; + expect(projectAnalysisView(source, { kind: "summary" }).ok).toBe(false); + mutable.graph.nodes[0]!.name = "corrected"; + const corrected = projectAnalysisView(source, { + kind: "interface-builder", + collection: "nodes", + offset: 0, + limit: 1, + }); + if (!corrected.ok) throw corrected.error; + expect(corrected.value).toMatchObject({ items: [{ name: "corrected" }] }); + }); + + it("does not reuse a claimed immutable graph without the owning seal", () => { + const source = parent(freezeJsonSnapshot(report())); + const parse = vi.spyOn(interfaceBuilderAnalysisSchema, "safeParse"); + try { + expect(projectAnalysisView(source, { kind: "summary" }).ok).toBe(true); + expect(projectAnalysisView(source, { kind: "summary" }).ok).toBe(true); + expect(parse).toHaveBeenCalledTimes(2); + } finally { + parse.mockRestore(); + } + }); + + it("counts matching rows once, preserves their order, and exhausts empty or late pages", () => { + const decoded = report(true); + decoded.graph.nodes.splice(1, 0, node("other:middle", "control", second)); + decoded.graph.nodes[0]!.evidence.push(...evidence(main)); + const source = { + ...parent(freezeJsonSnapshot(decoded)), + sealedResult: true, + }; + for (const offset of [0, 1, 2, 20]) { + const result = projectAnalysisView(source, { + kind: "interface-builder", + collection: "nodes", + document: main, + offset, + limit: 1, + }); + if (!result.ok) throw result.error; + expect(result.value).toMatchObject({ + items: offset < 2 ? [decoded.graph.nodes[offset === 0 ? 0 : 2]] : [], + source_truncated: true, + coverage: { total: 2, exhausted: offset >= 1 }, + }); + } + const empty = projectAnalysisView(source, { + kind: "interface-builder", + collection: "edges", + document: second, + offset: 0, + limit: 1, + }); + if (!empty.ok) throw empty.error; + expect(empty.value).toMatchObject({ + items: [], + source_truncated: true, + coverage: { total: 0, exhausted: true }, + }); + }); +}); + describe("Interface Builder analysis views", () => { it("keeps resource-root provenance in both summary and detail views without a subject", () => { const source: AnalysisViewParent = { diff --git a/src/domain/analysisView/interfaceBuilderView.ts b/src/domain/analysisView/interfaceBuilderView.ts index a4f49a92e4..7eeef59908 100644 --- a/src/domain/analysisView/interfaceBuilderView.ts +++ b/src/domain/analysisView/interfaceBuilderView.ts @@ -2,11 +2,11 @@ import { z } from "zod"; import type { AnalysisError } from "../analysisErrorBase.js"; import { analysisViewInputError } from "./analysisViewErrors.js"; import { uniqueSorted } from "../canonicalOrdering.js"; +import { canBorrowParsedJsonSnapshot } from "../immutableJson.js"; import { interfaceBuilderAnalysisSchema, interfaceBuilderDocumentSchema, } from "../apple/interfaceBuilderGraph.js"; -import { bundleResourceRootSchema } from "../apple/bundleResourceRoot.js"; import { nativeInvestigationCoverageSchema, nativeInvestigationEdgeSchema, @@ -15,6 +15,7 @@ import { } from "../native/nativeInvestigationGraph.js"; import { err, ok, type Result } from "../result.js"; import { parseAnalysisViewResult } from "./analysisViewParent.js"; +import { selectViewRows } from "./selectViewRows.js"; import type { AnalysisViewParent, AnalysisViewRequest, @@ -96,15 +97,47 @@ const tally = (values: readonly string[]): Record => { }; type InterfaceBuilderReport = z.output; +type InterfaceBuilderPage = z.output; + +const pageRows = (rows: readonly Row[], view: InterfaceBuilderPage) => ({ + rows: rows.slice(view.offset, view.offset + view.limit), + total: rows.length, +}); + +const selectDocumentRows = < + Row extends { readonly evidence: readonly { artifact_path: unknown }[] }, +>( + rows: readonly Row[], + view: InterfaceBuilderPage, + document: string | undefined, +) => + document === undefined + ? pageRows(rows, view) + : selectViewRows( + rows, + view, + (row) => + row.evidence.some((evidence) => evidence.artifact_path === document), + (row) => row, + ); + +// Exact owned snapshot identity, with no second retained graph or live-file cache. +// Weak membership ends with the Evidence lifetime; failed/mutable imports are not reused. +const checkedReports = new WeakSet(); /** Admit a well-formed report bound to its recorded target, if one exists. */ const parseInterfaceBuilderReport = ( parent: AnalysisViewParent, ): Result => { - const parsed = parseAnalysisViewResult( - interfaceBuilderAnalysisSchema, - parent, - ); + const source = parent.normalizedResult; + const reusable = + parent.sealedResult === true && + typeof source === "object" && + source !== null; + const known = reusable && checkedReports.has(source); + const parsed = known + ? ok(source as InterfaceBuilderReport) + : parseAnalysisViewResult(interfaceBuilderAnalysisSchema, parent); if (!parsed.ok) return parsed; const report = parsed.value; if ( @@ -122,6 +155,10 @@ const parseInterfaceBuilderReport = ( }, ]), ); + if (!known && reusable && canBorrowParsedJsonSnapshot(source, report)) { + checkedReports.add(source); + return ok(source); + } return ok(report); }; @@ -229,31 +266,24 @@ export const projectInterfaceBuilderView = ( }, ]), ); - const inDocument = < - Row extends { readonly evidence: readonly { artifact_path: unknown }[] }, - >( - candidates: readonly Row[], - ): readonly Row[] => - document === undefined - ? candidates - : candidates.filter((row) => - row.evidence.some((evidence) => evidence.artifact_path === document), - ); - const rows = + const selected = view.collection === "documents" - ? report.documents + ? pageRows(report.documents, view) : view.collection === "coverage" - ? graph.coverage + ? pageRows(graph.coverage, view) : view.collection === "nodes" - ? inDocument(graph.nodes) - : inDocument(graph.edges); - const items = rows.slice(view.offset, view.offset + view.limit); + ? selectDocumentRows(graph.nodes, view, document) + : selectDocumentRows(graph.edges, view, document); return ok({ kind: "interface-builder", view, - items, + items: selected.rows, ...shared, source_truncated: graph.truncated, - coverage: pageViewCoverage(view.offset, items.length, rows.length), + coverage: pageViewCoverage( + view.offset, + selected.rows.length, + selected.total, + ), }); }; diff --git a/src/domain/immutableJson.test.ts b/src/domain/immutableJson.test.ts index 068192f104..49caf837b0 100644 --- a/src/domain/immutableJson.test.ts +++ b/src/domain/immutableJson.test.ts @@ -145,6 +145,12 @@ describe("borrowing a parsed JSON snapshot", () => { it("preserves parser defaults, hidden-field removal and enumerability changes", () => { const source = freezeJsonSnapshot({ observed: 1 }); + const optional: { observed: number; optional?: string | undefined } = { + observed: 1, + }; + expect(canBorrowParsedJsonSnapshot(source, optional)).toBe(true); + optional.optional = undefined; + expect(canBorrowParsedJsonSnapshot(source, optional)).toBe(false); expect( canBorrowParsedJsonSnapshot(source, { observed: 1, defaulted: 0 }), ).toBe(false); diff --git a/src/domain/immutableJson.ts b/src/domain/immutableJson.ts index afe8462212..9565fd075c 100644 --- a/src/domain/immutableJson.ts +++ b/src/domain/immutableJson.ts @@ -38,8 +38,10 @@ export const immutableJsonSnapshotMember = ( return member; }; -/** Match a completed snapshot to its parsed representation without recursion. */ -export const canBorrowParsedJsonSnapshot = ( +/** Match a completed snapshot to its parsed representation without recursion. + * Parsed schemas may permit optional undefined members; only exact JSON matches borrow. + */ +export const canBorrowParsedJsonSnapshot = ( source: unknown, parsed: Parsed, ): source is Parsed => {