#!/usr/bin/env bash
# Synthetic fixtures for issue 26811. Usage: repro-setup.sh <run-dir> <worktree>
set -euo pipefail
RUN="$1"
WT="$2"
mkdir -p "$RUN"
CACHE='{"version":1,"cached_at":"2026-10-29T00:00:00Z","expires_at":"2026-10-29T01:00:00Z","chatgpt_user_id":"user-main","account_id":"acct-main","bundle":{}}'

# Shared (main) home: Codex signed in as account "main" wrote its own cache.
mkdir -p "$RUN/shared"
printf 'model = "gpt-5"\n' > "$RUN/shared/config.toml"
printf '%s\n' "$CACHE" > "$RUN/shared/cloud-config-bundle-cache.json"

# A: shadow home where Codex already wrote the account's own cache as a regular file.
mkdir -p "$RUN/shadow-a"
printf '{"auth_mode":"chatgpt"}\n' > "$RUN/shadow-a/auth.json"
printf '%s\n' '{"version":1,"chatgpt_user_id":"user-work","account_id":"acct-work","bundle":{}}' > "$RUN/shadow-a/cloud-config-bundle-cache.json"

# B: reporter's steps 1-2: the cache entry starts as a link to the shared cache.
mkdir -p "$RUN/shadow-b"
printf '{"auth_mode":"chatgpt"}\n' > "$RUN/shadow-b/auth.json"
ln -s "$RUN/shared/cloud-config-bundle-cache.json" "$RUN/shadow-b/cloud-config-bundle-cache.json"

# C: fresh, empty shadow home.
mkdir -p "$RUN/shadow-c"

mkdir -p "$WT/.t3/dev"
cat > "$WT/.t3/dev/settings.json" <<JSON
{
  "providerInstances": {
    "codex_a": { "driver": "codex", "displayName": "Codex A (regular cache)", "config": { "homePath": "$RUN/shared", "shadowHomePath": "$RUN/shadow-a" } },
    "codex_b": { "driver": "codex", "displayName": "Codex B (linked, then rewritten)", "config": { "homePath": "$RUN/shared", "shadowHomePath": "$RUN/shadow-b" } },
    "codex_c": { "driver": "codex", "displayName": "Codex C (fresh shadow)", "config": { "homePath": "$RUN/shared", "shadowHomePath": "$RUN/shadow-c" } }
  }
}
JSON
echo "fixtures in $RUN"
