mimo-v2.5 · go
go
- config
- mimo-v2.5--opencode-go--dev
- batch
- 2026-07-19--unified
- transport
- opencode-go-gateway
- protocol
- api · plan
- served model
- mimo-v2.5
- 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
claude-opus-4-8 @medium · kiro0.72claude-sonnet-4-6 @max · kiro0.72claude-sonnet-5 @low · CC0.72claude-opus-4-8 @high · kiro0.70claude-sonnet-4-6 @high · kiro0.70farthest
qwen3.5-plus · go0.44claude-haiku-4-5 @high · CC0.44claude-sonnet-5 @xhigh · CC0.45gpt-5.6-luna @medium · codex-oauth0.47gpt-5.5 @low · codex-oauth0.47within 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
- hourlymismatchcoverage 1/24 · 1 match · 8 mismatch · 15 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=1280">
<title>Weather</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
background:linear-gradient(160deg,#0b1026 0%,#131b3a 30%,#1a2550 55%,#1e2d5e 75%,#141e3c 100%);
display:flex;align-items:center;justify-content:center;
color:#fff;min-height:100vh;overflow:auto;
}
#app{width:100%;padding:20px}
.card{
width:920px;margin:0 auto;
background:rgba(255,255,255,0.07);
backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);
border-radius:28px;
border:1px solid rgba(255,255,255,0.1);
padding:48px 56px 44px;
box-shadow:0 32px 80px rgba(0,0,0,0.45),0 0 0 1px rgba(255,255,255,0.04) inset;
animation:cardIn .7s cubic-bezier(.22,1,.36,1);
}
@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
.location-name{
font-size:12px;font-weight:700;text-transform:uppercase;
letter-spacing:4px;color:rgba(255,255,255,.45);margin-bottom:6px;
}
.date-display{font-size:16px;font-weight:300;color:rgba(255,255,255,.65);margin-bottom:36px}
.hero{display:flex;align-items:center;gap:40px;margin-bottom:32px}
.weather-icon{font-size:76px;line-height:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}
.hero-text{}
.temp-big{font-size:72px;font-weight:200;line-height:1;letter-spacing:-3px}
.temp-big .deg{font-size:36px;font-weight:300;vertical-align:super;margin-left:-2px;opacity:.7}
.temp-range{display:flex;gap:20px;margin-top:10px;font-size:15px;font-weight:400}
.temp-range .hi{color:rgba(255,180,100,.85)}
.temp-range .lo{color:rgba(130,190,255,.85)}
.weather-desc{font-size:17px;font-weight:400;color:rgba(255,255,255,.7);margin-top:12px}
.sep{
height:1px;margin:4px 0 28px;
background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 20%,rgba(255,255,255,.12) 80%,transparent 100%);
}
.section-label{
font-size:11px;font-weight:700;text-transform:uppercase;
letter-spacing:2.5px;color:rgba(255,255,255,.3);margin-bottom:20px;
}
.chart{position:relative;display:flex;gap:4px}
.chart-y{display:flex;flex-direction:column;justify-content:space-between;
height:170px;padding:0 6px 0 0;flex-shrink:0}
.chart-y span{font-size:9px;font-weight:500;color:rgba(255,255,255,.22);
text-align:right;min-width:22px;line-height:1}
.chart-area{flex:1;position:relative;height:170px}
.chart-grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;
pointer-events:none}
.chart-grid i{display:block;height:1px;
background:rgba(255,255,255,.06)}
.chart-bars{position:absolute;inset:0;display:flex;align-items:flex-end;gap:0;z-index:1}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}
.bar-val{font-size:9px;font-weight:600;color:rgba(255,255,255,.38);
margin-bottom:3px;white-space:opacity .6;transition:opacity .3s}
.bar-col:hover .bar-val{opacity:1}
.bar{width:60%;min-height:3px;border-radius:3px 3px 1px 1px;
transition:height 1s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}
.bar::after{content:'';position:absolute;inset:0;
background:linear-gradient(to bottom,rgba(255,255,255,.15) 0%,transparent 60%);
border-radius:inherit}
.chart-times{position:absolute;left:0;right:0;bottom:-22px;z-index:2}
.chart-times span{position:absolute;transform:translateX(-50%);
font-size:9px;font-weight:600;color:rgba(255,255,255,.2)}
.error-state,.loading-state{text-align:center;padding:72px 40px}
.error-state .icon{font-size:52px;margin-bottom:18px;opacity:.45}
.error-state .msg{font-size:15px;color:rgba(255,255,255,.55);line-height:1.7}
.loading-spinner{
width:30px;height:30px;margin:0 auto 18px;
border:2.5px solid rgba(255,255,255,.08);
border-top-color:rgba(255,255,255,.45);
border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:13px;color:rgba(255,255,255,.4)}
</style>
</head>
<body>
<div id="app"><div class="loading-state"><div class="loading-spinner"></div><div class="loading-text">Loading weather data…</div></div></div>
<script>
(function(){
var P=new URLSearchParams(location.search);
var lat=parseFloat(P.get('lat'))||52.52;
var lon=parseFloat(P.get('lon'))||13.405;
var locName=P.get('name')||'Berlin';
var reqDate=P.get('date');
var now=new Date();
var today=now.toISOString().slice(0,10);
if(!reqDate)reqDate=today;
if(!/^\d{4}-\d{2}-\d{2}$/.test(reqDate)){showError('Invalid date format. Use YYYY-MM-DD.');return;}
var isPast=reqDate<today;
var base=isPast?'/api/om/archive':'/api/om/forecast';
var qs=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:reqDate,end_date:reqDate
});
fetch(base+'?'+qs).then(function(r){
if(!r.ok)throw new Error('HTTP '+r.status);
return r.json();
}).then(function(d){
if(!d.daily||!d.hourly||!d.daily.temperature_2m_max)throw new Error('Bad data');
render(d);
}).catch(function(e){
console.error(e);
showError('Unable to load weather data. Please try again later.');
});
function render(d){
var mx=d.daily.temperature_2m_max[0];
var mn=d.daily.temperature_2m_min[0];
var code=d.daily.weather_code[0];
var temps=d.hourly.temperature_2m;
var n=Math.min(temps.length,24);
var icon=weatherIcon(code);
var desc=weatherDesc(code);
var fDate=fmtDate(reqDate);
var cMin=Infinity,cMax=-Infinity;
for(var i=0;i<n;i++){if(temps[i]<cMin)cMin=temps[i];if(temps[i]>cMax)cMax=temps[i];}
var cRange=cMax-cMin||1;
var pad=cRange*0.08;
cMin-=pad;cMax+=pad;
var range=cMax-cMin||1;
var yTicks=5;
var yHTML='';
for(var t=0;t<yTicks;t++){
var v=cMax-(cRange+2*pad)*t/(yTicks-1);
yHTML+='<span>'+Math.round(v)+'°</span>';
}
var gridHTML='';
for(var t=0;t<yTicks;t++)gridHTML+='<i></i>';
var barsHTML='';
for(var i=0;i<n;i++){
var tmp=temps[i];
var h=Math.max(((tmp-cMin)/range)*100,2);
var clr=barColor(tmp,cMin,cMax);
barsHTML+='<div class="bar-col"><div class="bar-val">'+Math.round(tmp)+'°</div><div class="bar" style="height:'+h+'%;background:'+clr+'"></div></div>';
}
var timesHTML='';
for(var i=0;i<n;i++){
if(i%3===0||i===n-1){
var pct=(i/(n-1))*100;
timesHTML+='<span style="left:'+pct+'%">'+String(i).padStart(2,'0')+':00</span>';
}
}
document.getElementById('app').innerHTML=
'<div class="card">'+
'<div class="location-name">📍 '+esc(locName)+'</div>'+
'<div class="date-display">'+fDate+'</div>'+
'<div class="hero">'+
'<div class="weather-icon">'+icon+'</div>'+
'<div class="hero-text">'+
'<div class="temp-big">'+Math.round(mx)+'<span class="deg">°C</span></div>'+
'<div class="temp-range"><span class="hi">▲ '+Math.round(mx)+'°</span><span class="lo">▼ '+Math.round(mn)+'°</span></div>'+
'<div class="weather-desc">'+desc+'</div>'+
'</div>'+
'</div>'+
'<div class="sep"></div>'+
'<div class="section-label">Hourly Temperatures</div>'+
'<div class="chart">'+
'<div class="chart-y">'+yHTML+'</div>'+
'<div style="flex:1;position:relative;height:192px">'+
'<div class="chart-area" style="height:170px">'+
'<div class="chart-grid">'+gridHTML+'</div>'+
'<div class="chart-bars">'+barsHTML+'</div>'+
'</div>'+
'<div class="chart-times" style="position:relative;height:22px">'+timesHTML+'</div>'+
'</div>'+
'</div>'+
'</div>';
setTimeout(function(){
var bars=document.querySelectorAll('.bar');
bars.forEach(function(b){
var h=b.style.height;
b.style.height='3px';
requestAnimationFrame(function(){b.style.height=h;});
});
},50);
}
function showError(msg){
document.getElementById('app').innerHTML=
'<div class="card"><div class="error-state"><div class="icon">⚠️</div><div class="msg">'+esc(msg)+'</div></div></div>';
}
function fmtDate(s){
var d=new Date(s+'T12:00:00Z');
return d.toLocaleDateString('en-US',{weekday:'long',year:'numeric',month:'long',day:'numeric',timeZone:'UTC'});
}
function weatherIcon(c){
if(c===0)return'☀️';if(c===1)return'🌤️';if(c===2)return'⛅';if(c===3)return'☁️';
if(c===45||c===48)return'🌫️';
if(c>=51&&c<=57)return'🌦️';
if(c>=61&&c<=67)return'🌧️';
if(c>=71&&c<=77)return'❄️';
if(c>=80&&c<=82)return'🌦️';
if(c>=85&&c<=86)return'🌨️';
if(c>=95)return'⛈️';
return'🌡️';
}
function weatherDesc(c){
var m={0:'Clear Sky',1:'Mainly Clear',2:'Partly Cloudy',3:'Overcast',
45:'Foggy',48:'Rime Fog',51:'Light Drizzle',53:'Moderate Drizzle',55:'Dense Drizzle',
56:'Freezing Drizzle',57:'Heavy Freezing Drizzle',61:'Slight Rain',63:'Moderate Rain',
65:'Heavy Rain',66:'Light Freezing Rain',67:'Heavy Freezing Rain',71:'Slight Snowfall',
73:'Moderate Snowfall',75:'Heavy Snowfall',77:'Snow Grains',80:'Light Rain Showers',
81:'Moderate Rain Showers',82:'Violent Rain Showers',85:'Light Snow Showers',
86:'Heavy Snow Showers',95:'Thunderstorm',96:'Thunderstorm with Hail',
99:'Severe Thunderstorm'};
return m[c]||'Unknown';
}
function barColor(temp,min,max){
var stops=[
[0, [70,150,250]],
[.2, [80,180,240]],
[.4,[200,200,100]],
[.6,[245,190,60]],
[.8,[240,120,50]],
[1, [230,70,50]]
];
var t=max>min?(temp-min)/(max-min):.5;
var lo=stops[0],hi=stops[stops.length-1];
for(var i=0;i<stops.length-1;i++){
if(t>=stops[i][0]&&t<=stops[i+1][0]){lo=stops[i];hi=stops[i+1];break;}
}
var lt=hi[0]===lo[0]?0:(t-lo[0])/(hi[0]-lo[0]);
var r=Math.round(lo[1][0]+lt*(hi[1][0]-lo[1][0]));
var g=Math.round(lo[1][1]+lt*(hi[1][1]-lo[1][1]));
var b=Math.round(lo[1][2]+lt*(hi[1][2]-lo[1][2]));
return'rgb('+r+','+g+','+b+')';
}
function esc(s){var d=document.createElement('span');d.textContent=s;return d.innerHTML;}
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 10,457 | html / css / js | 338 / 3,924 / 6,195 |
|---|---|---|---|
| dom nodes | 12 | dom depth | 5 |
| css rules | 42 | js present | yes |
| brightness | 43.8 | contrast | 15.6 |
| colorfulness | 21.9 | whitespace | 77.3% |
This slot's telemetry
| prompt tokens | 562 | completion tokens | 17,948 |
|---|---|---|---|
| total tokens | 18,510 | wall | 117 s |
| cost | — | request id | — |
config.json537 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_OPENCODE_KEY",
"method": "oauth"
},
"billing": "plan",
"config_id": "mimo-v2.5--opencode-go--dev",
"effort": null,
"family": "mimo",
"m": {
"min": 2,
"q": 2
},
"model_id": "mimo-v2.5",
"protocol": "api",
"served_model": "mimo-v2.5",
"telemetry": {
"completion_tokens": 72282,
"cost_usd": null,
"prompt_tokens": 2232,
"total_tokens": 74514,
"wall_ms": 456347
},
"transport": "opencode-go-gateway",
"vendor_sanction_ref": null
}send-log2.4 KB
{
"N": 2,
"batch_id": "2026-07-19--go-requeue2",
"config_id": "mimo-v2.5--opencode-go--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T20:38:58.431466+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T20:38:37.719190+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-18T20:40:58.174247+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T20:39:01.186758+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-18T20:45:44.278537+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T20:41:02.102337+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-q"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T20:46:24.747326+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T20:45:48.329946+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-min"
}
],
"retry_policy": {
"max_unreachable_retries": 5,
"rate_limit_backoff": {
"max_attempts": 4,
"max_total_ms": 60000
}
}
}