# Cross-Runtime Drift Report

- **Arm A:** `openai-agents` (`docs/experiments/cross-runtime-drift-2026-05/runs/a0/run_arm_a-openai_20260525T113813Z_1/archive.tar.gz`, manifest `sha256:686b57e6bc0cd4f1d99e354ed6c35846c8d64cfc90b6fc9e75e9c75c05c8d800`)
- **Arm B:** `gemini-genai` (`docs/experiments/cross-runtime-drift-2026-05/runs/b0/run_arm_b-gemini_20260525T114112Z_1/archive.tar.gz`, manifest `sha256:f392cea861f0d671d66756c608960ed5e58154e4f1cc24be6e1b53748bea94d0`)
- **Render:** `re_render`; at `2026-05-26T08:58:26Z`; using comparator `2b8ab383`; from `https://github.com/Rul1an/assay/actions/runs/26398427430`; raw captures unchanged `true`

| Dimension | Source | Classification | Only in A | Only in B | In both | Projection | Detail |
|---|---|---|---|---|---|---|---|
| `filesystem_paths_touched` | `capability_surface.filesystem_paths` | **runtime-induced** | `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/sdk-events.ndjson`, `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt`, `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt`, `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/run-meta.json`, `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/tool-calls.ndjson`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/dist/package.json`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/dist/sdk-events.js`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/dist/workload.js`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/package.json` | `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/sdk-events.ndjson`, `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt`, `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-output.txt`, `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/run-meta.json`, `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/tool-calls.ndjson`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/dist/package.json`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/dist/sdk-events.js`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/dist/workload.js`, `/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/package.json` | `/etc/gai.conf`, `/etc/host.conf`, `/etc/hosts`, `/etc/netsvc.conf`, `/etc/nsswitch.conf`, `/etc/resolv.conf`, `/etc/svc.conf` | projected_equivalent: `/etc/gai.conf`, `/etc/host.conf`, `/etc/hosts`, `/etc/netsvc.conf`, `/etc/nsswitch.conf`, `/etc/resolv.conf`, `/etc/svc.conf`, `workdir/input`, `workdir/output`<br>maps: `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt` -> `workdir/input`, `/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt` -> `workdir/output`, `/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt` -> `workdir/input`; +1 more<br>unmatched raw: a=14, b=14 | 18 non-shared item(s); 4 fixture, 14 unclassified |
| `kernel_file_operations` | `layers/kernel.ndjson (openat access_mode + operation_flags)` | **runtime-induced** | `append:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/sdk-events.ndjson`, `append:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/tool-calls.ndjson`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/sdk-events.ndjson`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/run-meta.json`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/tool-calls.ndjson`, `read:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/dist/sdk-events.js`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/dist/workload.js`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-openai/package.json`, `truncate:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/sdk-events.ndjson`, `truncate:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt`, `truncate:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt`, `truncate:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/run-meta.json`, `truncate:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/tool-calls.ndjson`, `write:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/sdk-events.ndjson`, `write:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt`, `write:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt`, `write:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/run-meta.json`, `write:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/tool-calls.ndjson` | `append:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/sdk-events.ndjson`, `append:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/tool-calls.ndjson`, `create:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/sdk-events.ndjson`, `create:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt`, `create:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-output.txt`, `create:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/run-meta.json`, `create:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/tool-calls.ndjson`, `read:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/dist/sdk-events.js`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/dist/workload.js`, `read:/opt/actions-runner/_work/assay/assay/docs/experiments/cross-runtime-drift-2026-05/workload-gemini/package.json`, `truncate:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/sdk-events.ndjson`, `truncate:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt`, `truncate:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-output.txt`, `truncate:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/run-meta.json`, `truncate:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/tool-calls.ndjson`, `write:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/sdk-events.ndjson`, `write:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-input.txt`, `write:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/fixture-output.txt`, `write:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/run-meta.json`, `write:/opt/actions-runner/_work/assay/assay/arm-b-gemini-runs/run_arm_b-gemini_20260525T114112Z_1/workdir/tool-calls.ndjson` | `read:/etc/gai.conf`, `read:/etc/host.conf`, `read:/etc/hosts`, `read:/etc/nsswitch.conf`, `read:/etc/resolv.conf` | projected_equivalent: `create:workdir/input`, `create:workdir/output`, `read:/etc/gai.conf`, `read:/etc/host.conf`, `read:/etc/hosts`, `read:/etc/nsswitch.conf`, `read:/etc/resolv.conf`, `read:workdir/input`, `truncate:workdir/input`, `truncate:workdir/output`, `write:workdir/input`, `write:workdir/output`<br>maps: `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt` -> `create:workdir/input`, `create:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-output.txt` -> `create:workdir/output`, `read:/opt/actions-runner/_work/assay/assay/arm-a-openai-runs/run_arm_a-openai_20260525T113813Z_1/workdir/fixture-input.txt` -> `read:workdir/input`; +11 more<br>unmatched raw: a=19, b=19 | 42 non-shared item(s); 14 fixture, 28 unclassified |
| `network_endpoints` | `capability_surface.network_endpoints` | **runtime-induced** | `162.159.140.245:0`, `162.159.140.245:443`, `172.66.0.243:0`, `172.66.0.243:443` | `142.250.180.10:0`, `142.251.142.202:0`, `142.251.209.234:0`, `142.251.39.138:0`, `172.217.17.202:0`, `172.217.171.106:0`, `172.217.23.234:0`, `192.178.25.202:0`, `216.58.198.10:0`, `216.58.198.42:0`, `216.58.198.42:443`, `[2a00:1450:400e:806::200a]:0`, `[2a00:1450:400e:809::200a]:0`, `[2a00:1450:400e:813::200a]:0`, `[2a00:1450:400e:815::200a]:0` | `127.0.0.53:53` | projected_equivalent: `dns`<br>maps: `127.0.0.53:53` -> `dns`<br>unmatched raw: a=4, b=15 | 19 non-shared item(s); 0 provider, 0 fixture, 19 unclassified |
| `process_execs` | `capability_surface.process_execs` | **inconclusive** | — | — | — | — | dimension empty in both arms |
| `sdk_tool_events` | `layers/sdk.ndjson (tool field, deduplicated)` | **task-induced** | — | — | `read_file`, `write_file` | — | full overlap |
| `mcp_tool_surface` | `capability_surface.mcp_tools` | **inconclusive** | — | — | — | — | dimension empty in both arms |
| `tool_invocation_order` | `layers/sdk.ndjson (event_type=tool_call_started, ordered by seq)` | **task-induced** | — | — | `read_file`, `write_file` | — | identical sequence: read_file -> write_file |
