gpt-5.5 @ high · cursor-xl
cursor-xlhigh
- config
- gpt-5.5-eff-high--cli--cursor-xl--dev
- batch
- 2026-07-19--unified
- transport
- cursor-agent-cli-isolated-home
- protocol
- cli · plan
- served model
- gpt-5.5-high
- 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.5 @extra-high · cursor0.75gpt-5.5 @high · cursor0.75gpt-5.5 @medium · cursor0.73gpt-5.5 @low · cursor-xl0.73gpt-5.4 @medium · codex-oauth0.72farthest
qwen3.6-plus · go0.50north-mini-code-free · api0.51claude-sonnet-4 · kiro0.51nemotron-3-ultra-free · api0.51deepseek-v4-pro-0812 @none · api0.52within 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 tempmatchshown: 25
- min tempmatchshown: 16
- hourlymatchcoverage 2/24 · 2 match · 0 mismatch · 22 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 {
--bg-1: #07111f;
--bg-2: #102a43;
--card: rgba(255, 255, 255, 0.14);
--card-strong: rgba(255, 255, 255, 0.22);
--stroke: rgba(255, 255, 255, 0.24);
--text: #f7fbff;
--muted: rgba(247, 251, 255, 0.72);
--soft: rgba(247, 251, 255, 0.1);
--accent: #8bd3ff;
--warm: #ffd08a;
--cool: #9bd8ff;
--danger: #ffb4a8;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
color: var(--text);
background:
radial-gradient(circle at 18% 18%, rgba(116, 207, 255, 0.35), transparent 28%),
radial-gradient(circle at 82% 20%, rgba(255, 198, 109, 0.28), transparent 26%),
radial-gradient(circle at 50% 105%, rgba(76, 111, 255, 0.28), transparent 38%),
linear-gradient(135deg, var(--bg-1), var(--bg-2) 58%, #1f3850);
overflow: hidden;
}
.sky {
position: fixed;
inset: 0;
pointer-events: none;
overflow: hidden;
}
.orb {
position: absolute;
width: 260px;
height: 260px;
right: 108px;
top: 66px;
border-radius: 50%;
background: radial-gradient(circle at 35% 32%, #fff7c7, #ffd16e 48%, rgba(255, 183, 76, 0.16) 72%, transparent 73%);
filter: blur(0.2px);
opacity: 0.92;
box-shadow: 0 0 90px rgba(255, 202, 103, 0.36);
}
.cloud {
position: absolute;
border-radius: 999px;
background: rgba(255, 255, 255, 0.13);
box-shadow: 0 22px 70px rgba(4, 13, 26, 0.18);
backdrop-filter: blur(8px);
}
.cloud:before,
.cloud:after {
content: "";
position: absolute;
border-radius: 50%;
background: inherit;
}
.cloud.one {
width: 310px;
height: 82px;
left: 78px;
top: 112px;
}
.cloud.one:before {
width: 132px;
height: 132px;
left: 42px;
bottom: 18px;
}
.cloud.one:after {
width: 166px;
height: 166px;
right: 38px;
bottom: 8px;
}
.cloud.two {
width: 220px;
height: 60px;
right: 236px;
bottom: 88px;
opacity: 0.72;
}
.cloud.two:before {
width: 96px;
height: 96px;
left: 26px;
bottom: 12px;
}
.cloud.two:after {
width: 124px;
height: 124px;
right: 26px;
bottom: 4px;
}
main {
position: relative;
z-index: 1;
min-height: 100vh;
display: grid;
place-items: center;
padding: 48px;
}
.card {
width: min(1120px, calc(100vw - 96px));
min-height: 660px;
display: grid;
grid-template-columns: 0.92fr 1.08fr;
gap: 28px;
padding: 30px;
border: 1px solid var(--stroke);
border-radius: 38px;
background:
linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08)),
rgba(8, 21, 38, 0.42);
box-shadow: 0 34px 110px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.24);
backdrop-filter: blur(24px);
}
.panel {
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 30px;
background: rgba(255, 255, 255, 0.09);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
}
.hero {
position: relative;
overflow: hidden;
padding: 34px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.hero:after {
content: "";
position: absolute;
width: 360px;
height: 360px;
right: -128px;
bottom: -128px;
border-radius: 50%;
background: radial-gradient(circle, rgba(139, 211, 255, 0.34), transparent 68%);
}
.eyebrow {
margin: 0 0 12px;
color: var(--muted);
font-size: 14px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
}
h1 {
margin: 0;
max-width: 390px;
font-size: 52px;
line-height: 0.98;
letter-spacing: -0.055em;
}
.date {
margin-top: 18px;
color: var(--muted);
font-size: 18px;
font-weight: 600;
}
.condition-art {
position: relative;
width: 230px;
height: 190px;
margin: 28px auto 20px;
}
.sun {
position: absolute;
right: 16px;
top: 4px;
width: 126px;
height: 126px;
border-radius: 50%;
background: radial-gradient(circle at 34% 31%, #fff8cc, #ffd36f 54%, #ffad49);
box-shadow: 0 0 52px rgba(255, 195, 85, 0.54);
}
.art-cloud {
position: absolute;
left: 4px;
bottom: 24px;
width: 188px;
height: 70px;
border-radius: 999px;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(215, 236, 255, 0.88));
box-shadow: 0 20px 42px rgba(7, 18, 32, 0.24);
}
.art-cloud:before,
.art-cloud:after {
content: "";
position: absolute;
border-radius: 50%;
background: inherit;
}
.art-cloud:before {
width: 94px;
height: 94px;
left: 26px;
bottom: 22px;
}
.art-cloud:after {
width: 112px;
height: 112px;
right: 20px;
bottom: 12px;
}
.temp-row {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
}
.temp-box {
padding: 22px;
border-radius: 24px;
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.16);
}
.temp-box span {
display: block;
color: var(--muted);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.15em;
text-transform: uppercase;
}
.temp-box strong {
display: block;
margin-top: 8px;
font-size: 42px;
line-height: 1;
letter-spacing: -0.06em;
}
.details {
padding: 28px;
display: grid;
grid-template-rows: auto auto 1fr;
gap: 22px;
}
.status {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 24px;
border-radius: 26px;
background: linear-gradient(135deg, rgba(139, 211, 255, 0.2), rgba(255, 255, 255, 0.09));
border: 1px solid rgba(255, 255, 255, 0.16);
}
.status h2 {
margin: 0;
font-size: 30px;
letter-spacing: -0.04em;
}
.status p {
margin: 8px 0 0;
color: var(--muted);
font-size: 15px;
line-height: 1.5;
}
.badge {
flex: 0 0 auto;
padding: 12px 16px;
border-radius: 999px;
color: #082136;
background: linear-gradient(135deg, #d8f2ff, #8bd3ff);
font-size: 13px;
font-weight: 900;
letter-spacing: 0.12em;
text-transform: uppercase;
box-shadow: 0 14px 32px rgba(67, 177, 237, 0.25);
}
.metrics {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.metric {
min-height: 112px;
padding: 18px;
border-radius: 24px;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.14);
}
.metric span {
display: block;
color: var(--muted);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.metric strong {
display: block;
margin-top: 13px;
font-size: 28px;
line-height: 1.05;
letter-spacing: -0.045em;
}
.hourly {
min-height: 310px;
padding: 22px;
border-radius: 28px;
background: rgba(3, 12, 23, 0.22);
border: 1px solid rgba(255, 255, 255, 0.14);
}
.hourly-head {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 18px;
margin-bottom: 18px;
}
.hourly-head h3 {
margin: 0;
font-size: 22px;
letter-spacing: -0.035em;
}
.hourly-head span {
color: var(--muted);
font-size: 13px;
font-weight: 700;
}
.chart {
height: 230px;
display: grid;
grid-template-columns: repeat(24, minmax(12px, 1fr));
align-items: end;
gap: 6px;
}
.bar-wrap {
min-width: 0;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
gap: 7px;
}
.bar-value {
color: rgba(247, 251, 255, 0.82);
font-size: 11px;
font-weight: 800;
opacity: 0;
transform: translateY(4px);
transition: 160ms ease;
white-space: nowrap;
}
.bar {
width: 100%;
min-height: 8px;
border-radius: 999px 999px 8px 8px;
background: linear-gradient(180deg, var(--warm), var(--accent));
box-shadow: 0 10px 22px rgba(46, 168, 231, 0.2);
}
.bar-hour {
color: rgba(247, 251, 255, 0.58);
font-size: 10px;
font-weight: 800;
}
.bar-wrap:hover .bar-value {
opacity: 1;
transform: translateY(0);
}
.message {
grid-column: 1 / -1;
display: grid;
place-items: center;
min-height: 590px;
padding: 40px;
text-align: center;
}
.message-box {
max-width: 560px;
padding: 36px;
border-radius: 30px;
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.18);
}
.spinner {
width: 54px;
height: 54px;
margin: 0 auto 22px;
border-radius: 50%;
border: 4px solid rgba(255, 255, 255, 0.18);
border-top-color: var(--accent);
animation: spin 900ms linear infinite;
}
.message h2 {
margin: 0;
font-size: 34px;
letter-spacing: -0.045em;
}
.message p {
margin: 12px 0 0;
color: var(--muted);
font-size: 17px;
line-height: 1.55;
}
.error .message-box {
border-color: rgba(255, 180, 168, 0.4);
background: rgba(120, 30, 24, 0.18);
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@media (max-width: 900px) {
body {
overflow: auto;
}
main {
padding: 24px;
}
.card {
width: 100%;
grid-template-columns: 1fr;
min-height: auto;
}
.chart {
grid-template-columns: repeat(12, 1fr);
height: 330px;
}
}
</style>
</head>
<body>
<div class="sky" aria-hidden="true">
<div class="orb"></div>
<div class="cloud one"></div>
<div class="cloud two"></div>
</div>
<main>
<section id="app" class="card" aria-live="polite">
<div class="message">
<div class="message-box">
<div class="spinner" aria-hidden="true"></div>
<h2>Loading weather</h2>
<p>Fetching the requested day from the local weather API.</p>
</div>
</div>
</section>
</main>
<script>
(function () {
"use strict";
var weatherCodes = {
0: "Clear sky",
1: "Mainly clear",
2: "Partly cloudy",
3: "Overcast",
45: "Fog",
48: "Depositing rime fog",
51: "Light drizzle",
53: "Moderate drizzle",
55: "Dense drizzle",
56: "Light freezing drizzle",
57: "Dense freezing drizzle",
61: "Slight rain",
63: "Moderate rain",
65: "Heavy rain",
66: "Light freezing rain",
67: "Heavy freezing rain",
71: "Slight snow",
73: "Moderate snow",
75: "Heavy snow",
77: "Snow grains",
80: "Slight rain showers",
81: "Moderate rain showers",
82: "Violent rain showers",
85: "Slight snow showers",
86: "Heavy snow showers",
95: "Thunderstorm",
96: "Thunderstorm with hail",
99: "Thunderstorm with heavy hail"
};
var app = document.getElementById("app");
var params = new URLSearchParams(window.location.search);
var today = new Date().toISOString().slice(0, 10);
var lat = parseNumber(params.get("lat"), 52.52);
var lon = parseNumber(params.get("lon"), 13.405);
var name = cleanText(params.get("name") || "Berlin");
var date = isDate(params.get("date")) ? params.get("date") : today;
loadWeather();
function parseNumber(value, fallback) {
var number = Number(value);
return Number.isFinite(number) ? number : fallback;
}
function isDate(value) {
return typeof value === "string" && /^\d{4}-\d{2}-\d{2}$/.test(value) && !Number.isNaN(Date.parse(value + "T00:00:00Z"));
}
function cleanText(value) {
return String(value).replace(/\s+/g, " ").trim().slice(0, 80) || "Berlin";
}
function formatDate(value) {
return new Intl.DateTimeFormat("en", {
weekday: "long",
month: "long",
day: "numeric",
year: "numeric",
timeZone: "UTC"
}).format(new Date(value + "T00:00:00Z"));
}
function formatTemp(value) {
return Number.isFinite(value) ? Math.round(value) + "°C" : "Unavailable";
}
function endpointFor(value) {
return value < today ? "/api/om/archive" : "/api/om/forecast";
}
function buildUrl() {
var query = new URLSearchParams({
latitude: String(lat),
longitude: String(lon),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: date,
end_date: date
});
return endpointFor(date) + "?" + query.toString();
}
async function loadWeather() {
try {
var response = await fetch(buildUrl(), { credentials: "same-origin" });
if (!response.ok) {
throw new Error("Weather service returned " + response.status);
}
var data = await response.json();
var daily = data && data.daily;
var hourly = data && data.hourly;
if (!daily || !hourly || !Array.isArray(daily.time) || daily.time.length === 0) {
throw new Error("Weather data was incomplete");
}
var dayIndex = daily.time.indexOf(date);
if (dayIndex === -1) {
dayIndex = 0;
}
var max = Number(daily.temperature_2m_max && daily.temperature_2m_max[dayIndex]);
var min = Number(daily.temperature_2m_min && daily.temperature_2m_min[dayIndex]);
var code = Number(daily.weather_code && daily.weather_code[dayIndex]);
var hours = extractHours(hourly);
if (!hours.length || !Number.isFinite(max) || !Number.isFinite(min)) {
throw new Error("Weather data was incomplete");
}
render({
location: name,
date: date,
dateLabel: formatDate(date),
max: max,
min: min,
code: code,
condition: weatherCodes[code] || "Weather code " + code,
hours: hours
});
} catch (error) {
renderError();
}
}
function extractHours(hourly) {
var times = Array.isArray(hourly.time) ? hourly.time : [];
var temps = Array.isArray(hourly.temperature_2m) ? hourly.temperature_2m : [];
return times.map(function (time, index) {
return {
time: time,
hour: time.slice(11, 16),
temp: Number(temps[index])
};
}).filter(function (item) {
return item.time.indexOf(date + "T") === 0 && Number.isFinite(item.temp);
});
}
function render(model) {
var highHour = model.hours.reduce(function (best, item) {
return item.temp > best.temp ? item : best;
}, model.hours[0]);
var lowHour = model.hours.reduce(function (best, item) {
return item.temp < best.temp ? item : best;
}, model.hours[0]);
app.className = "card";
app.innerHTML =
'<section class="panel hero">' +
'<div>' +
'<p class="eyebrow">Weather card</p>' +
'<h1>' + escapeHtml(model.location) + '</h1>' +
'<div class="date">' + escapeHtml(model.dateLabel) + '</div>' +
'</div>' +
'<div class="condition-art" aria-hidden="true">' +
'<div class="sun"></div>' +
'<div class="art-cloud"></div>' +
'</div>' +
'<div class="temp-row">' +
'<div class="temp-box"><span>Maximum</span><strong>' + formatTemp(model.max) + '</strong></div>' +
'<div class="temp-box"><span>Minimum</span><strong>' + formatTemp(model.min) + '</strong></div>' +
'</div>' +
'</section>' +
'<section class="panel details">' +
'<div class="status">' +
'<div>' +
'<h2>' + escapeHtml(model.condition) + '</h2>' +
'<p>Daily summary and hourly temperatures for ' + escapeHtml(model.date) + ' in UTC.</p>' +
'</div>' +
'<div class="badge">Celsius</div>' +
'</div>' +
'<div class="metrics">' +
'<div class="metric"><span>Location</span><strong>' + escapeHtml(model.location) + '</strong></div>' +
'<div class="metric"><span>Warmest hour</span><strong>' + escapeHtml(highHour.hour) + ' · ' + formatTemp(highHour.temp) + '</strong></div>' +
'<div class="metric"><span>Coolest hour</span><strong>' + escapeHtml(lowHour.hour) + ' · ' + formatTemp(lowHour.temp) + '</strong></div>' +
'</div>' +
'<div class="hourly">' +
'<div class="hourly-head">' +
'<h3>Hourly Temperatures</h3>' +
'<span>' + model.hours.length + ' readings</span>' +
'</div>' +
'<div class="chart" role="img" aria-label="Hourly temperatures for ' + escapeHtml(model.date) + '">' +
model.hours.map(renderBar).join("") +
'</div>' +
'</div>' +
'</section>';
}
function renderBar(item, index, list) {
var temps = list.map(function (entry) { return entry.temp; });
var min = Math.min.apply(Math, temps);
var max = Math.max.apply(Math, temps);
var range = Math.max(1, max - min);
var height = 22 + ((item.temp - min) / range) * 78;
var labelHour = item.hour.slice(0, 2);
var showHour = index % 3 === 0 ? labelHour : "";
return '<div class="bar-wrap" title="' + escapeHtml(item.hour + " · " + formatTemp(item.temp)) + '">' +
'<div class="bar-value">' + formatTemp(item.temp) + '</div>' +
'<div class="bar" style="height:' + height.toFixed(2) + '%"></div>' +
'<div class="bar-hour">' + escapeHtml(showHour) + '</div>' +
'</div>';
}
function renderError() {
app.className = "card error";
app.innerHTML =
'<div class="message">' +
'<div class="message-box">' +
'<h2>Weather data could not be loaded</h2>' +
'<p>Please check the requested location, date, and local API availability, then reload the page.</p>' +
'</div>' +
'</div>';
}
function escapeHtml(value) {
return String(value).replace(/[&<>"']/g, function (char) {
return {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
}[char];
});
}
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 20,068 | html / css / js | 723 / 10,558 / 8,787 |
|---|---|---|---|
| dom nodes | 19 | dom depth | 7 |
| css rules | 63 | js present | yes |
| brightness | 89.5 | contrast | 43.9 |
| colorfulness | 27.6 | whitespace | 34.8% |
This slot's telemetry
| prompt tokens | 2,703 | completion tokens | 6,346 |
|---|---|---|---|
| total tokens | 9,049 | wall | 68 s |
| cost | — | request id | — |
config.json559 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.5-eff-high--cli--cursor-xl--dev",
"effort": "high",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.5",
"protocol": "cli",
"served_model": "gpt-5.5-high",
"telemetry": {
"completion_tokens": 21683,
"cost_usd": null,
"prompt_tokens": 52280,
"total_tokens": 73963,
"wall_ms": 246323
},
"transport": "cursor-agent-cli-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-13--cursor-xl-s1",
"config_id": "gpt-5.5-eff-high--cli--cursor-xl--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-13T08:52:52.446559+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:51:44.473745+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-08-13T08:53:42.407116+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:52:56.609700+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-08-13T08:54:40.695737+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:53:46.119864+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-08-13T08:56:01.980047+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-13T08:54:43.998356+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
}
}
}