deepseek-v4-flash-vision-exp @ off · dsh
dshoff
- config
- deepseek-v4-flash-vision-exp-eff-off--cli--dsh--dev
- batch
- 2026-07-19--unified
- transport
- dsh-0.1.0-rc.8-headless-isolated-home
- protocol
- cli · api
- served model
- deepseek-v4-flash-vision-exp
- captured
- Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe

content never populated — at capture time this card was still in its placeholder state and the real content never arrived. The screenshot is exactly what the page showed; its own code is in Source below.
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 neighborsNo similarity data for this session — this batch has no computed pairs.
Fidelity — does the card show the right data?
- namematch
- conditionmatch
- datematch
- max tempnot-foundno-temperature-candidate
- min tempnot-foundno-temperature-candidate
- hourlynot-foundcoverage · 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=1280, initial-scale=1">
<title>Weather Card</title>
<style>
:root {
--bg-1: #0f1b2d;
--bg-2: #1b3a5c;
--card-bg: rgba(255, 255, 255, 0.06);
--card-border: rgba(255, 255, 255, 0.12);
--text: #eef4fb;
--text-dim: #a8bcd0;
--accent: #6fc3ff;
--accent-warm: #ffb86c;
--shadow: rgba(0, 0, 0, 0.35);
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
margin: 0;
min-height: 100vh;
background:
radial-gradient(1200px 800px at 20% 0%, #24405f 0%, transparent 60%),
radial-gradient(1000px 700px at 90% 100%, #1d4d6b 0%, transparent 55%),
linear-gradient(160deg, var(--bg-1) 0%, var(--bg-2) 100%);
color: var(--text);
font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
display: flex;
align-items: center;
justify-content: center;
padding: 40px;
-webkit-font-smoothing: antialiased;
}
.card {
width: 100%;
max-width: 920px;
background: var(--card-bg);
border: 1px solid var(--card-border);
border-radius: 24px;
padding: 36px 40px 40px;
box-shadow:
0 30px 60px -20px var(--shadow),
inset 0 1px 0 rgba(255,255,255,0.08);
backdrop-filter: blur(14px);
}
.card-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 24px;
}
.location h1 {
margin: 0;
font-size: 34px;
font-weight: 700;
letter-spacing: 0.2px;
}
.location .date {
margin-top: 6px;
font-size: 15px;
color: var(--text-dim);
}
.condition {
text-align: right;
min-width: 150px;
}
.condition .icon {
font-size: 54px;
line-height: 1;
}
.condition .label {
margin-top: 6px;
font-size: 16px;
font-weight: 600;
color: var(--accent);
}
.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--card-border), transparent);
margin: 28px 0;
}
.temps {
display: flex;
align-items: baseline;
gap: 18px;
margin-bottom: 8px;
}
.temps .max {
font-size: 72px;
font-weight: 700;
line-height: 1;
letter-spacing: -1px;
color: var(--accent-warm);
}
.temps .max .unit,
.temps .min .unit { font-size: 34px; font-weight: 600; vertical-align: 18px; }
.temps .min { font-size: 42px; font-weight: 500; color: var(--text-dim); }
.temps .max-label, .temps .min-label {
font-size: 13px;
color: var(--text-dim);
letter-spacing: 0.5px;
text-transform: uppercase;
}
.temps .max-block, .temps .min-block { display: flex; flex-direction: column; gap: 4px; }
.range-line {
height: 6px;
border-radius: 999px;
background: rgba(255,255,255,0.08);
position: relative;
margin: 14px 0 30px;
}
.range-fill {
position: absolute;
top: 0;
bottom: 0;
left: 0;
border-radius: 999px;
background: linear-gradient(90deg, var(--accent), var(--accent-warm));
box-shadow: 0 0 14px rgba(111,195,255,0.4);
}
.hourly-title {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.hourly-title h2 {
margin: 0;
font-size: 15px;
font-weight: 600;
letter-spacing: 0.6px;
text-transform: uppercase;
color: var(--text-dim);
}
.hourly-chart {
position: relative;
height: 180px;
}
.chart-grid {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
justify-content: space-between;
pointer-events: none;
}
.chart-grid span {
display: block;
height: 1px;
background: rgba(255,255,255,0.06);
}
.bars {
position: absolute;
inset: 0;
display: flex;
align-items: flex-end;
gap: 6px;
}
.bar {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
gap: 8px;
height: 100%;
}
.bar .value {
font-size: 12px;
font-weight: 600;
color: var(--text-dim);
opacity: 0;
transition: opacity 0.2s;
}
.bar:hover .value { opacity: 1; }
.bar .stem {
width: 60%;
max-width: 34px;
border-radius: 8px 8px 3px 3px;
background: linear-gradient(180deg, var(--accent) 0%, rgba(111,195,255,0.35) 100%);
transition: filter 0.15s;
}
.bar:hover .stem { filter: brightness(1.3); }
.bar .time {
font-size: 11px;
color: var(--text-dim);
margin-top: 2px;
}
.card.hidden { display: none; }
.error {
display: none;
align-items: center;
flex-direction: column;
text-align: center;
gap: 12px;
padding: 40px;
}
.error.show { display: flex; }
.error .err-icon { font-size: 48px; }
.error h2 { margin: 0; font-size: 22px; }
.error p { margin: 0; color: var(--text-dim); font-size: 15px; }
.error .retry {
margin-top: 8px;
background: rgba(111,195,255,0.15);
color: var(--accent);
border: 1px solid rgba(111,195,255,0.4);
border-radius: 999px;
padding: 10px 24px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: background 0.15s;
}
.error .retry:hover { background: rgba(111,195,255,0.28); }
.spinner {
width: 34px;
height: 34px;
border: 3px solid rgba(255,255,255,0.15);
border-top-color: var(--accent);
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loading { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 40px; color: var(--text-dim); }
.loading.hidden { display: none; }
</style>
</head>
<body>
<div class="loading" id="loading">
<div class="spinner"></div>
<div>Loading weather…</div>
</div>
<div class="error" id="error">
<div class="err-icon">⚠️</div>
<h2>Weather unavailable</h2>
<p id="errorMsg">The weather data could not be loaded.</p>
<button class="retry" onclick="loadWeather()">Try again</button>
</div>
<main class="card hidden" id="card">
<div class="card-header">
<div class="location">
<h1 id="locName">—</h1>
<div class="date" id="locDate"></div>
</div>
<div class="condition">
<div class="icon" id="condIcon"></div>
<div class="label" id="condLabel"></div>
</div>
</div>
<div class="divider"></div>
<div class="temps">
<div class="max-block">
<span class="max-label">High</span>
<span class="max"><span id="tempMax">—</span><span class="unit">°C</span></span>
</div>
<div class="min-block">
<span class="min-label">Low</span>
<span class="min"><span id="tempMin">—</span><span class="unit">°C</span></span>
</div>
</div>
<div class="range-line">
<div class="range-fill" id="rangeFill"></div>
</div>
<div class="hourly-title">
<h2>Hourly temperatures</h2>
<span id="sample"></span>
</div>
<div class="hourly-chart">
<div class="chart-grid">
<span></span><span></span><span></span><span></span>
</div>
<div class="bars" id="bars"></div>
</div>
</main>
<script>
(function () {
var params = new URLSearchParams(window.location.search);
var lat = parseFloat(params.get("lat")) || 52.52;
var lon = parseFloat(params.get("lon")) || 13.405;
var name = params.get("name") || "Berlin";
var dateStr = params.get("date") || todayUTC();
function pad(n) { return (n < 10 ? "0" : "") + n; }
function todayUTC() {
var d = new Date();
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate());
}
var shown = document.getElementById("card");
var loading = document.getElementById("loading");
var errorBox = document.getElementById("error");
var errorMsg = document.getElementById("errorMsg");
function showLoading() {
shown.classList.add("hidden");
errorBox.classList.remove("show");
loading.classList.remove("hidden");
}
function showError(msg) {
loading.classList.add("hidden");
shown.classList.add("hidden");
errorBox.classList.add("show");
errorMsg.textContent = msg || "The weather data could not be loaded.";
}
var CODE_MAP = [
{ codes: [0], icon: "\u2600\uFE0F", label: "Clear sky" },
{ codes: [1, 2], icon: "\u26C5", label: "Partly cloudy" },
{ codes: [3], icon: "\u2601\uFE0F", label: "Overcast" },
{ codes: [45, 48], icon: "\uD83C\uDF2B\uFE0F", label: "Fog" },
{ codes: [51, 53, 55, 56, 57], icon: "\uD83C\uDF26\uFE0F", label: "Drizzle" },
{ codes: [61, 63, 65, 66, 67], icon: "\uD83C\uDF27\uFE0F", label: "Rain" },
{ codes: [71, 73, 75, 77], icon: "\uD83C\uDF28\uFE0F", label: "Snow" },
{ codes: [80, 81, 82], icon: "\uD83C\uDF26\uFE0F", label: "Rain showers" },
{ codes: [85, 86], icon: "\uD83C\uDF28\uFE0F", label: "Snow showers" },
{ codes: [95, 96, 99], icon: "\u26C8\uFE0F", label: "Thunderstorm" }
];
function conditionFor(code) {
for (var i = 0; i < CODE_MAP.length; i++) {
if (CODE_MAP[i].codes.indexOf(code) !== -1) return CODE_MAP[i];
}
return { icon: "\uD83C\uDF21\uFE0F", label: "Unknown" };
}
function fmtDate(iso) {
var d = new Date(iso + "T00:00:00Z");
var d2 = new Date(iso + "T12:00:00Z");
var opts = { weekday: "long", month: "long", day: "numeric", timeZone: "UTC" };
var t1 = d.toLocaleDateString("en-US", opts);
d2.setUTCDate(d2.getUTCDate());
var y = d.getUTCFullYear();
return t1 + ", " + y;
}
function buildChart(hourly, tmax, tmin, dateStr) {
var temps = hourly.time.map(function (t, i) {
return { time: t.slice(11, 16), temp: hourly.temperature_2m[i] };
});
var bars = document.getElementById("bars");
bars.innerHTML = "";
var all = temps.map(function (p) { return p.temp; });
var lo = Math.min.apply(null, all);
var hi = Math.max.apply(null, all);
if (lo === hi) { lo -= 1; hi += 1; }
var pad = (hi - lo) * 0.15;
var loBound = lo - pad, hiBound = hi + pad;
var range = hiBound - loBound;
var prevFill = 0;
temps.forEach(function (p, i) {
var val = p.temp;
var frac = (val - loBound) / range;
var heightPct = Math.max(6, Math.min(100, frac * 100));
var bar = document.createElement("div");
bar.className = "bar";
var valEl = document.createElement("div");
valEl.className = "value";
valEl.textContent = round1(val) + "\u00B0";
var stem = document.createElement("div");
stem.className = "stem";
stem.style.height = heightPct + "%";
var time = document.createElement("div");
time.className = "time";
time.textContent = p.time;
bar.appendChild(valEl);
bar.appendChild(stem);
bar.appendChild(time);
bars.appendChild(bar);
});
dispatchRange(tmax, tmin, loBound, hiBound);
}
function dispatchRange(tmax, tmin, loBound, hiBound) {
var fill = document.getElementById("rangeFill");
var lo = Math.min(tmin, tmax), hi = Math.max(tmin, tmax);
var range = hiBound - loBound;
var left = ((lo - loBound) / range) * 100;
var width = ((hi - lo) / range) * 100;
left = Math.max(0, Math.min(100, left));
width = Math.max(0, Math.min(100 - left, width));
fill.style.left = left + "%";
fill.style.width = width + "%";
}
function round1(n) { return Math.round(n * 10) / 10; }
function render(data) {
var daily = data.daily;
var hourly = data.hourly;
var idx = 0;
var tmax = daily.temperature_2m_max[idx];
var tmin = daily.temperature_2m_min[idx];
var wcode = daily.weather_code[idx];
document.getElementById("locName").textContent = name;
document.getElementById("locDate").textContent = fmtDate(dateStr);
var cond = conditionFor(wcode);
document.getElementById("condIcon").textContent = cond.icon;
document.getElementById("condLabel").textContent = cond.label;
document.getElementById("tempMax").textContent = round1(tmax);
document.getElementById("tempMin").textContent = round1(tmin);
buildChart(hourly, tmax, tmin, dateStr);
loading.classList.add("hidden");
errorBox.classList.remove("show");
shown.classList.remove("hidden");
}
function loadWeather() {
showLoading();
var past = dateStr < todayUTC();
var path = past ? "/api/om/archive" : "/api/om/forecast";
var qs = 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: dateStr,
end_date: dateStr
});
var url = path + "?" + qs.toString();
fetch(url)
.then(function (r) {
if (!r.ok) throw new Error("HTTP " + r.status);
return r.json();
})
.then(function (data) {
if (!data || !data.daily || !data.hourly) throw new Error("Missing data");
render(data);
})
.catch(function (e) {
showError("The weather data could not be loaded. (" + e.message + ")");
});
}
window.loadWeather = loadWeather;
loadWeather();
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 13,380 | html / css / js | 1,779 / 5,561 / 6,040 |
|---|---|---|---|
| dom nodes | 48 | dom depth | 7 |
| css rules | 45 | js present | yes |
| brightness | 55.8 | contrast | 22.3 |
| colorfulness | 30.8 | whitespace | 73.2% |
This slot's telemetry
| prompt tokens | 7,945 | completion tokens | 8,585 |
|---|---|---|---|
| total tokens | 16,530 | wall | 69.3 s |
| cost | — | request id | — |
config.json624 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_DEEPSEEK_KEY",
"method": "api-key"
},
"billing": "api",
"config_id": "deepseek-v4-flash-vision-exp-eff-off--cli--dsh--dev",
"effort": "off",
"family": "deepseek",
"m": {
"min": 2,
"q": 2
},
"model_id": "deepseek-v4-flash-vision-exp",
"protocol": "cli",
"served_model": "deepseek-v4-flash-vision-exp",
"telemetry": {
"completion_tokens": 37662,
"cost_usd": null,
"prompt_tokens": 32915,
"total_tokens": 70577,
"wall_ms": 309509
},
"transport": "dsh-0.1.0-rc.8-headless-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-22--dsh-vision-s0",
"config_id": "deepseek-v4-flash-vision-exp-eff-off--cli--dsh--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-21T16:53:42.074831+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:52:41.141393+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-21T16:54:56.383813+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:53:47.082843+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-21T16:56:51.170043+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:55:01.755258+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-08-21T16:58:04.895039+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:56:55.027001+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
}
}
}