gpt-5.6-terra @ high · codex-oauth
codex-oauthhigh
- config
- gpt-5.6-terra-eff-high--cli--codex-oauth--dev
- batch
- 2026-07-19--unified
- transport
- codex-cli-oauth-chatgpt
- protocol
- cli · plan
- served model
- gpt-5.6-terra
- captured
- Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.
similarity neighbors
nearest
gpt-5.6-sol @xhigh · codex-oauth0.72gpt-5.6-luna @medium · kiro0.70gpt-5.6-sol @low · codex-oauth0.70gpt-5.4-mini @low · api0.69gpt-5.6-terra @low · kiro0.69farthest
minimax-m2.7 · go0.41gpt-5.6-luna @medium · codex-oauth0.41minimax-m2.1 · kiro0.44gpt-5.6-luna @high · kiro0.44grok-4.3 · api0.45within session 2026-07-19--unified
similarity measures convergence within this session — not quality.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempambiguousshown: 17max-equals-min
- min tempambiguousshown: 17max-equals-min
- hourlyambiguouscoverage · 0 match · 0 mismatch · 24 not shown
- request sidematch0 violation(s)
extractor fidelity-extractor-v1+Berlin-2026-07-15
Source — raw model output, one byte unchanged
download card.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Weather Card</title>
<style>
:root {
color-scheme: dark;
--ink: #f7f9ff;
--muted: #b6c1db;
--soft: #8090b3;
--line: rgba(255,255,255,.13);
--panel: rgba(16, 28, 57, .64);
--accent: #ffd56a;
}
* { box-sizing: border-box; }
body {
margin: 0;
min-width: 980px;
min-height: 800px;
overflow: hidden;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--ink);
background:
radial-gradient(ellipse at 18% 20%, rgba(53, 130, 225, .35), transparent 37%),
radial-gradient(ellipse at 87% 8%, rgba(126, 72, 200, .32), transparent 34%),
linear-gradient(135deg, #07142e 0%, #111d4a 48%, #26326d 100%);
}
.orb {
position: fixed;
border-radius: 50%;
filter: blur(2px);
pointer-events: none;
}
.orb.one {
width: 310px; height: 310px; right: 3%; bottom: -105px;
background: rgba(111, 177, 255, .14);
box-shadow: 0 0 85px 32px rgba(94, 116, 242, .17);
}
.orb.two {
width: 125px; height: 125px; left: 4%; bottom: 8%;
background: rgba(255, 213, 106, .09);
box-shadow: 0 0 65px 20px rgba(255, 213, 106, .09);
}
main {
width: min(1080px, calc(100vw - 96px));
margin: 0 auto;
padding-top: 62px;
}
.eyebrow {
margin: 0 0 18px;
color: #c3d0f0;
font-size: 12px;
font-weight: 750;
letter-spacing: .16em;
text-transform: uppercase;
}
.weather-card {
position: relative;
min-height: 614px;
overflow: hidden;
padding: 44px 48px 34px;
border: 1px solid rgba(255,255,255,.17);
border-radius: 30px;
background: linear-gradient(125deg, rgba(37, 63, 120, .62), rgba(13, 24, 54, .72));
box-shadow: 0 30px 80px rgba(0, 0, 20, .35), inset 0 1px 0 rgba(255,255,255,.08);
backdrop-filter: blur(18px);
}
.weather-card::after {
content: "";
position: absolute;
top: -180px; right: -100px;
width: 440px; height: 440px;
border-radius: 50%;
background: radial-gradient(circle, rgba(255, 218, 116, .21), rgba(255, 218, 116, 0) 66%);
pointer-events: none;
}
.top, .current, .hours { position: relative; z-index: 1; }
.top {
display: flex;
justify-content: space-between;
gap: 30px;
align-items: flex-start;
}
.place {
margin: 0;
max-width: 650px;
font-size: 42px;
line-height: 1.07;
letter-spacing: -.045em;
font-weight: 700;
overflow-wrap: anywhere;
}
.date {
display: inline-flex;
align-items: center;
gap: 8px;
margin: 11px 0 0;
color: var(--muted);
font-size: 15px;
font-weight: 550;
}
.date::before {
content: "";
width: 7px; height: 7px;
border-radius: 50%;
background: #86a7ff;
box-shadow: 0 0 11px #86a7ff;
}
.source {
padding-top: 7px;
color: rgba(214,225,250,.65);
font-size: 12px;
white-space: nowrap;
}
.current {
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
min-height: 265px;
padding: 25px 4px 19px;
}
.temperature {
font-size: 139px;
font-weight: 250;
line-height: .83;
letter-spacing: -.095em;
text-shadow: 0 7px 35px rgba(0,0,0,.14);
}
.temperature sup {
position: relative;
top: -.78em;
margin-left: 7px;
font-size: 34px;
font-weight: 500;
letter-spacing: -.03em;
}
.condition {
margin: 20px 0 0 8px;
color: #e4eaff;
font-size: 20px;
font-weight: 560;
}
.high-low {
display: flex;
gap: 18px;
margin: 13px 0 0 8px;
color: var(--muted);
font-size: 14px;
font-weight: 600;
}
.high-low b { color: var(--ink); font-weight: 700; }
.weather-icon {
display: grid;
place-items: center;
width: 178px;
height: 178px;
margin-right: 23px;
font-family: Arial, sans-serif;
font-size: 121px;
line-height: 1;
filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
}
.weather-icon.sunny { color: var(--accent); text-shadow: 0 0 34px rgba(255,208,91,.42); }
.weather-icon.cloudy { color: #e7eeff; text-shadow: 0 0 26px rgba(183,206,255,.26); }
.weather-icon.rainy { color: #b9d8ff; }
.weather-icon.snowy { color: #f4fbff; }
.weather-icon.stormy { color: #ffd56a; }
.hours {
border-top: 1px solid var(--line);
padding-top: 23px;
}
.hours-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 15px;
}
.hours h2 {
margin: 0;
font-size: 13px;
font-weight: 750;
letter-spacing: .13em;
text-transform: uppercase;
}
.hours-note { color: var(--soft); font-size: 12px; }
.hourly-scroll {
overflow-x: auto;
padding: 3px 0 8px;
scrollbar-width: thin;
scrollbar-color: rgba(180,205,255,.35) transparent;
}
.hourly {
display: grid;
grid-template-columns: repeat(24, minmax(55px, 1fr));
gap: 8px;
min-width: 900px;
}
.hour {
min-height: 106px;
padding: 12px 7px 9px;
text-align: center;
border: 1px solid transparent;
border-radius: 16px;
color: var(--muted);
}
.hour.now, .hour:hover {
color: var(--ink);
border-color: rgba(255,255,255,.14);
background: rgba(163, 191, 255, .13);
}
.hour time {
display: block;
font-size: 11px;
font-weight: 650;
}
.hour .dot {
display: block;
width: 5px;
height: 5px;
margin: 17px auto 12px;
border-radius: 50%;
background: #6680bf;
}
.hour.now .dot {
background: var(--accent);
box-shadow: 0 0 10px var(--accent);
}
.hour strong {
display: block;
font-size: 16px;
font-weight: 650;
letter-spacing: -.03em;
}
.loading, .error {
display: grid;
place-items: center;
min-height: 500px;
color: var(--muted);
font-size: 17px;
}
.error {
color: #ffd1d1;
text-align: center;
padding: 40px;
}
.error span {
display: block;
margin-top: 9px;
color: var(--muted);
font-size: 14px;
}
@media (max-width: 1050px) {
main { width: calc(100vw - 48px); padding-top: 35px; }
.weather-card { padding: 36px; }
}
</style>
</head>
<body>
<div class="orb one"></div>
<div class="orb two"></div>
<main>
<p class="eyebrow">Daily weather</p>
<section class="weather-card" id="card" aria-live="polite">
<div class="loading">Loading weather data…</div>
</section>
</main>
<script>
(() => {
const params = new URLSearchParams(location.search);
const today = new Date().toISOString().slice(0, 10);
const date = /^\d{4}-\d{2}-\d{2}$/.test(params.get("date") || "") ? params.get("date") : today;
const lat = Number(params.get("lat") ?? 52.52);
const lon = Number(params.get("lon") ?? 13.405);
const name = (params.get("name") || "Berlin").trim() || "Berlin";
const card = document.getElementById("card");
const conditions = {
0: ["Clear sky", "☀", "sunny"],
1: ["Mainly clear", "☀", "sunny"],
2: ["Partly cloudy", "⛅", "cloudy"],
3: ["Overcast", "☁", "cloudy"],
45: ["Fog", "≋", "cloudy"],
48: ["Rime fog", "≋", "cloudy"],
51: ["Light drizzle", "☔", "rainy"],
53: ["Drizzle", "☔", "rainy"],
55: ["Heavy drizzle", "☔", "rainy"],
56: ["Freezing drizzle", "☔", "rainy"],
57: ["Heavy freezing drizzle", "☔", "rainy"],
61: ["Light rain", "☔", "rainy"],
63: ["Rain", "☔", "rainy"],
65: ["Heavy rain", "☔", "rainy"],
66: ["Freezing rain", "☔", "rainy"],
67: ["Heavy freezing rain", "☔", "rainy"],
71: ["Light snow", "❄", "snowy"],
73: ["Snowfall", "❄", "snowy"],
75: ["Heavy snowfall", "❄", "snowy"],
77: ["Snow grains", "❄", "snowy"],
80: ["Rain showers", "☔", "rainy"],
81: ["Rain showers", "☔", "rainy"],
82: ["Violent showers", "☔", "rainy"],
85: ["Snow showers", "❄", "snowy"],
86: ["Heavy snow showers", "❄", "snowy"],
95: ["Thunderstorm", "ϟ", "stormy"],
96: ["Thunderstorm with hail", "ϟ", "stormy"],
99: ["Thunderstorm with hail", "ϟ", "stormy"]
};
function esc(value) {
return String(value).replace(/[&<>"']/g, c => ({"&":"&","<":"<",">":">",'"':""","'":"'"}[c]));
}
function formatDate(value) {
return new Intl.DateTimeFormat("en", {
timeZone: "UTC", weekday: "long", month: "long", day: "numeric", year: "numeric"
}).format(new Date(value + "T12:00:00Z"));
}
async function load() {
if (!Number.isFinite(lat) || !Number.isFinite(lon)) throw new Error("Invalid coordinates.");
const endpoint = date < today ? "/api/om/archive" : "/api/om/forecast";
const query = new URLSearchParams({
latitude: lat,
longitude: lon,
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: date,
end_date: date
});
const response = await fetch(endpoint + "?" + query);
if (!response.ok) throw new Error("The weather service did not return data.");
const data = await response.json();
const daily = data.daily || {};
const max = daily.temperature_2m_max?.[0];
const min = daily.temperature_2m_min?.[0];
const code = daily.weather_code?.[0];
const temps = data.hourly?.temperature_2m;
const times = data.hourly?.time;
if (![max, min, code].every(v => v !== undefined && v !== null) || !Array.isArray(temps) || !Array.isArray(times)) {
throw new Error("Weather data for this date is unavailable.");
}
const [condition, icon, iconClass] = conditions[code] || ["Unknown conditions", "◌", "cloudy"];
const hours = times.map((time, i) => {
const hour = String(time).slice(11, 13);
const label = hour === "00" ? "12 AM" : hour === "12" ? "12 PM" : `${Number(hour) % 12} ${Number(hour) < 12 ? "AM" : "PM"}`;
return `<div class="hour${hour === new Date().toISOString().slice(11,13) && date === today ? " now" : ""}">
<time>${label}</time><i class="dot"></i><strong>${Math.round(temps[i])}°</strong>
</div>`;
}).join("");
card.innerHTML = `
<div class="top">
<div>
<h1 class="place">${esc(name)}</h1>
<p class="date">${formatDate(date)}</p>
</div>
<span class="source">Temperatures in °C</span>
</div>
<div class="current">
<div>
<div class="temperature">${Math.round(max)}<sup>°C</sup></div>
<p class="condition">${condition}</p>
<div class="high-low"><span>High <b>${Math.round(max)}°</b></span><span>Low <b>${Math.round(min)}°</b></span></div>
</div>
<div class="weather-icon ${iconClass}" aria-label="${condition}" role="img">${icon}</div>
</div>
<div class="hours">
<div class="hours-header"><h2>Hourly forecast</h2><span class="hours-note">UTC</span></div>
<div class="hourly-scroll"><div class="hourly">${hours}</div></div>
</div>`;
}
load().catch(error => {
card.innerHTML = `<div class="error"><div>Unable to load weather data.<span>${esc(error.message || "Please try again later.")}</span></div></div>`;
});
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 11,355 | html / css / js | 465 / 6,118 / 4,772 |
|---|---|---|---|
| dom nodes | 14 | dom depth | 5 |
| css rules | 46 | js present | yes |
| brightness | 45.0 | contrast | 18.9 |
| colorfulness | 28.7 | whitespace | 92.0% |
This slot's telemetry
| prompt tokens | 0 | completion tokens | 9,621 |
|---|---|---|---|
| total tokens | 0 | wall | 73.7 s |
| cost | — | request id | — |
config.json565 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-terra-eff-high--cli--codex-oauth--dev",
"effort": "high",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-terra",
"protocol": "cli",
"served_model": "gpt-5.6-terra",
"telemetry": {
"completion_tokens": 37811,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 303842
},
"transport": "codex-cli-oauth-chatgpt",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-17--dev-codex-oauth-gpt-5.6-terra",
"config_id": "gpt-5.6-terra-eff-high--cli--codex-oauth--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:46:10.140914+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:44:56.480779+00:00"
}
],
"block_index": 0,
"model_reaching_attempt_index": 0,
"slot_index": 0,
"terminal_state": "valid",
"variant": "P-q"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:47:58.775435+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:46:16.769068+00:00"
}
],
"block_index": 0,
"model_reaching_attempt_index": 0,
"slot_index": 0,
"terminal_state": "valid",
"variant": "P-min"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:49:08.115321+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:48:02.430711+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-min"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:50:13.992385+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:49:11.493713+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-q"
}
],
"retry_policy": {
"max_unreachable_retries": 5,
"rate_limit_backoff": {
"max_attempts": 4,
"max_total_ms": 60000
}
}
}