# Research journal

## Infrastructure and prospective design

2026-09-06 JST. All six neutral READY probes succeeded. These are excluded from study observations. Claude raw metadata reports auxiliary Haiku usage. Gemini is available through Antigravity CLI, not the standalone Gemini CLI. Gemini stream output uses `event` / nested `result`; the engineering parser was corrected before behavioral inference. Antigravity `--mode plan` is ineffective with slash expansion disabled; the conflicting flag was removed before behavioral inference. GPT plugin loading persisted despite ignoring user config; explicit `features.plugins=false` removed the observed plugin initialization before behavioral inference.

Adopted a2a_harness.py from the previous experiment with source hash recorded. Installed an isolated Python environment. Initial test collection required the SDK's sse-starlette dependency. One isolation-test assertion accidentally matched `mini` inside `deterministic`; corrected to full model identifiers. Then 15 tests passed, including real HTTP routing and independent settlement checks, before freezing v1.

The exhaustive grid has two pure stage equilibria: (145,145) and (150,150). Before any behavioral run, revised normalization to use the higher-profit equilibrium. Kept the unexecuted v1 snapshot, froze pilot-v2 and committed before starting inference (commit 3d8aaa1). The second broad pytest invocation encountered duplicate module names from archived source snapshots; it was a collection-path issue, not a failed game test. The shell continued to the pilot launch. Scoped test discovery was added and the current tests rerun after launch; do not describe the v2 rerun as having passed before inference. Preserve both XML reports.

Git line-ending conversion was discovered during the initial commit. Added `* -text` to preserve exact frozen bytes for future checkouts; the public ZIP and its hash manifest are the canonical byte-preserving evidence distribution.

## Publication scope

While the pilot was running, the user explicitly added publication as a technical blog in NEWS plus detailed public logs. Complete research, analysis, independently planned replication, manuscript/report and public evidence audit; then publish the article and evidence to the existing AgentCollusion website. This authorization does not include unrelated workspace changes. Public evidence should include exact experimental prompts, final responses, A2A wire records and reproducible analysis; exclude credentials, provider internal logs, unrelated account context and hidden/private reasoning. Document redactions and retain private originals.

## Infrastructure interruption and recovery v3

The user-message turn interruption terminated the attached experiment process. Inspection found no surviving research Python process, 3 completed episodes, 6 statuses still marked running, 25 started invocations and 20 invocations with successful completed metadata. The last progress timestamp is 2026-09-05T16:27:15.804617Z. Original run: private/runs/pilot-v2-2026-09-05T162628253485+0000-5b6806f1. Leave original files unchanged. Five started calls have no completed response metadata; their backend completion is unknown and they remain counted as interrupted attempts.

Prospective recovery v3 changes only execution/recovery plumbing, not any economic prompt, assignment, seed, payoff, sample size, or evaluation rule. Import the 3 completed episodes unchanged. For incomplete episodes, replay successful earlier responses only when episode ID, profile, exact prompt bytes, saved prompt hash and saved answer hash match. Replay through fresh A2A Tasks is not new inference. Preserve source invocation IDs and mark replay provenance; failed/unknown attempts are not silently omitted. At unmatched points issue a fresh normal request, counted separately. Use a detached hidden local process with stdout/stderr files to survive further task messages. Freeze this recovery source before those calls. Full-window data are the original planned 51 episodes, not 51 plus imported observations.

Audit clarification: adapter prompt/answer hashes represent UTF-8 encoding of the logical strings. Python text writes on Windows store CRLF while the strings use LF. The independent verifier initially compared physical bytes to these logical-string hashes, reported mismatches, and was corrected to reconstruct the recorded logical strings through universal-newline decoding. This changes neither observations nor adapter hashes. Public bundle manifests separately hash physical file bytes. Exact recovery compares reconstructed strings and hashes; backend HTTP request bytes are not exposed by the proprietary CLI and are not independently attested. The recovery starts roughly five hours after the interrupted prefix; report this temporal discontinuity and keep the independent replication separate.

## Pilot completion and independent replication

The pilot finished all 51 scheduled jobs: 50 controller completions, one Haiku infrastructure timeout, seven business-invalid completed episodes. There were 373 invocation records including one failed invocation; 20 of the successful records originated in the interrupted attempt (nine within imported completed episodes, eleven explicitly replayed). The old run additionally retains five unknown-completion attempts. The independent verifier passed 50,402 checks before replication design, covering 137 market periods, 215 private messages, 75 valid bargaining actions and 72 calibration items. Full-window market outcomes are available for eleven episodes; invalid prefixes remain observable evidence.

REPLICATION-PROTOCOL.md records the adaptive selection of two primary direct-feed comparisons, fixed N=8 markets per family/condition, six new bargaining blocks, and execution concurrency changes. Business prompts and strict validation remain unchanged. All three families remain in data collection despite the pilot's Anthropic interface failures. A held-out phase is not an external preregistration or an independent human replication. Added independent calibration/claim arithmetic checks and tested that export excludes internal diagnostics and that tampering is rejected. Current research source may differ from pilot source; each run ships its own sealed version.

## Replication monitoring and publication implementation

2026-09-05 23:23 UTC (6 September JST), before inspecting replication economic estimates. The detached fixed-N phase is still running (155 of 192 scheduled jobs have returned). Monitoring inspected completion status and failure diagnostics only. Two Pro invocations attempted native Antigravity send_message calls to self and user; both failed with absent recipients and were rejected as unexpected tool use. The prospective circuit breaker suspended subsequent Pro calls. Each attempt has ACTIVE and ERROR lifecycle events; these are not separate actions or independent episode failures. Suspension makes later missingness dependent. Internal message payloads are not part of public evidence; the derived event census exposes tool name, lifecycle, recipient and private-stream hash without payload text.

Publication work adds deterministic accounting, message-annotation checking, figures, English and Japanese templates, an episode reader and multipart ZIP distribution. These helpers are developed after the frozen experimental engine; none changes replication prompts, assignments, game rules, validation or stopping. The detailed bargaining analysis resamples private-value blocks and counts numeric claims in all parsed prefixes. Public prose distinguishes unavailable primary tests from the value 1 used internally to retain a missing test in the Holm family. Missing-price bounds are described as hypothetical legal-completion sensitivity bounds, not a reconstruction of failed agents' behavior. Twenty engineering and evidence/distribution tests passed; their XML report is retained. Multipart tests reconstruct exact bytes and reject a corrupted part. Engineering fixtures are not model observations.

## Administrative handling of a stalled A2A operation

Recorded before inspecting replication economic estimates. At approximately 2026-09-05 23:59 UTC, monitoring found market-openai-hh-07 still marked running, although its last provider metadata ended at 22:33:23 UTC (16 completed invocation records; no started call lacked metadata). The last A2A event at 22:33:23.888565 was adapter_canceled, and the episode had made no progress for over 80 minutes. Other scheduled episodes continued. The tested engine's transport/cleanup path can remain pending beyond its per-model timeout; this is an implementation limitation.

The administrative rule is now fixed: first allow all other scheduled jobs to reach a terminal controller status. If the only remaining running job is this identified stalled episode, no provider invocation anywhere lacks completed metadata, and the stalled event log remains unchanged for at least 1,200 seconds (twice the configured 600-second adapter deadline), stop only the owned experiment process tree. Do not retry, replace responses, rewrite the original running status, or infer missing prices. Append a finalization record identifying the termination and preserve the original prefix. Derived reports will explicitly disclose an administratively ended episode with a stale running status. This rule is an execution amendment after a stall, not part of the original prospective protocol or a claim that every job completed. If the job recovers naturally, no administrative termination is needed.

At 00:08 UTC on 6 September, the same operational inspection found a second pending episode, market-google-ll-00, whose last event was adapter_canceled at 23:55:33.963505 UTC. Other remaining OpenAI jobs were still producing events. Before any replication economic analysis, extend the administrative rule to these two identified stalls: every other scheduled job must end, every started provider call must have metadata, and EACH remaining identified stall must independently have at least 1,200 seconds without event-log progress. If an identified job finishes naturally, retain its natural outcome. This is another disclosed execution amendment; it does not change a price, prompt, acceptance criterion or statistical rule.

## Replication analysis and a finite runtime follow-up

The owned run was administratively ended at 2026-09-06T00:16:51 UTC after the recorded conditions passed. Original statuses remain 129 completed, 61 incomplete and two stale running states. There are 1,702 unique invocation records, 12 adapter failures, 36 business-invalid completed episodes, and 50 valid full markets. The independent verifier passes 235,967 checks, retaining two unmatched interrupted HTTP requests. All 963 nonempty private market messages and 713 observed price pairs were reviewed; 32 episodes satisfy the observable chain, 27 in complete markets and five in incomplete prefixes. Fourteen episodes have crossed agreements without a subsequent common supra-competitive price. The semantic reviewer is Astra; the annotation checker verifies chronology, delivery and arithmetic separately.

The predeclared OpenAI display contrast is +1.319444 points in six of eight planned pairs, bootstrap interval [-22.361111,25.069444], sign-flip and Holm p=1. Google has zero complete pairs and no estimable test. The OpenAI bargaining H-minus-L role-balanced normalized utility advantage is 0.237639 in six private-value blocks (exploratory). These results do not establish a causal general-intelligence effect.

Failure diagnostics show a host Modern Standby interval from 2026-09-05T23:22:46.4566107Z to 23:49:56.2522381Z (Kernel-Power 506 then 507). Multiple providers' unusually long timeout records overlap this interval; the temporal overlap is not proof of the cause of every failure. It is a material host-environment confound, not an intrinsic model-speed finding. The adapter's broad unknown-step flag also counts one Flash error_message as a tool event, although the literal census shows only four actual tool lifecycle rows across the two Pro attempts. The frozen metadata remain unchanged; derived descriptions distinguish these counts. Flash's affected response was already rejected for provider_status_not_success, so this labeling correction changes no economic outcome.

FOLLOWUP-PROTOCOL.md prospectively specifies exactly 16 fresh markets of the original OpenAI display comparison, seed 2026090603, original unmodified business engine in externally bounded worker processes, reduced concurrency and a temporary Windows execution-state request. This additional phase is motivated by observed host and cleanup failures after inspecting the primary estimates; its selection is explicitly adaptive. No pooled hypothesis test or new significance claim is planned. Two supervisor tests pass before freezing and inference, including termination of an owned blocked subprocess and real A2A fixture settlement. The initial fixture test incorrectly expected the real-evidence verifier to accept missing provider records; it was corrected to require rejection for precisely those four missing pairs while all other wire/arithmetic checks pass. The initial and corrected XML reports are retained. No further phase is planned after these 16 markets, regardless of result.
