{
  "head": "77a99086b929fe2024990efaa77b6e2e33825131",
  "base": "968dd51704441138559a3fe9c348719f2b11e0c6",
  "dbBackupSha256": "94df498297598a39fbe14a4c83953c60dac162f976f94c07116fb70b383066e1",
  "sessionV2RowsSha256": "2e46b0ea62b312d317ec4185c5f6c2c514deee8a59d2917d03c97f02584dd5d1",
  "sessionMessageRowsSha256": "c9af2e9a4f34c9d8cc918a50a115da9b561842597f564f3522708bfa910bab43",
  "dbVerification": "Live native DB and stable backup session_v2 (4 rows) and session_message (8 rows) have identical ordered row hashes; both quick_check ok. Three assistant copies. No DB writes performed.",
  "procedure": "Only usage.ts swapped to exact base and restored from exact head backup; primary-owned server auto-reloaded. Actual app Tokens, OpenCode only, 30 days. Theme through persisted t3code:theme-appearance-mode; full page reload. Sidebar explicitly collapsed after each reload and geometric absence checked. Notification dismissed. No reconstructed UI.",
  "limits": [
    "Web responsive layouts only; no native mobile, Electron, remote, relay/tunnel verification.",
    "Synthetic imported usage and cost; no billed live-model request.",
    "Image pixel differences include expected chart auto-scale and session/token/cost text changes.",
    "No UI source changes, commits, server starts or process kills."
  ],
  "captures": [
    {
      "stage": "after",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nCost\nTokens\nLimits\nPast 24h\n7 days\n30 days\n90 days\n1.50K\n1 sessions\nOpenCode\n1 session\n1.50K\n100.0% of tokens \u00b7 $0.01\nDaily processed tokens\n0\n500\n1K\n1.50K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n1.50K\nCached input\n300\nUncached input\n1K\nOutput\n200\nCache savings\n$0.00\nTokens by type\nInput\n1K\nCache read\n300\nOutput\n200\nBreakdown\nModel\nDay\n#\tModel\tCost\tShare\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.01\t100.0%\t1.50K",
      "theme": "light",
      "htmlClass": "",
      "width": 1440,
      "height": 900,
      "time": "2026-10-21T22:20:20.260Z",
      "sidebarBounds": {
        "x": -256,
        "y": 0,
        "width": 256,
        "height": 900,
        "top": 0,
        "right": 0,
        "bottom": 900,
        "left": -256
      },
      "file": "after-1440-light.png",
      "sourceSha256": "e07d672337f22d915c22c5408dae1a936ebc113fd4425d20e7bcae55960dd0b3",
      "pngSha256": "e87e42ab642b5c4f834e5ed9eb5d158d9e1710410c70a7a25c3e4eb2eae832a8",
      "pngSize": [
        1280,
        800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "after",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nCost\nTokens\nLimits\nPast 24h\n7 days\n30 days\n90 days\n1.50K\n1 sessions\nOpenCode\n1 session\n1.50K\n100.0% of tokens \u00b7 $0.01\nDaily processed tokens\n0\n500\n1K\n1.50K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n1.50K\nCached input\n300\nUncached input\n1K\nOutput\n200\nCache savings\n$0.00\nTokens by type\nInput\n1K\nCache read\n300\nOutput\n200\nBreakdown\nModel\nDay\n#\tModel\tCost\tShare\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.01\t100.0%\t1.50K",
      "theme": "dark",
      "htmlClass": "dark",
      "width": 1440,
      "height": 900,
      "time": "2026-10-21T22:20:35.384Z",
      "sidebarBounds": {
        "x": -256,
        "y": 0,
        "width": 256,
        "height": 900,
        "top": 0,
        "right": 0,
        "bottom": 900,
        "left": -256
      },
      "file": "after-1440-dark.png",
      "sourceSha256": "e07d672337f22d915c22c5408dae1a936ebc113fd4425d20e7bcae55960dd0b3",
      "pngSha256": "82e8417ebe43fadc00c16d986821704f95e40bb52c8470d39767afbf51654959",
      "pngSize": [
        1280,
        800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "after",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nTokens\n30 days\n1.50K\n1 sessions\nOpenCode\n1 session\n1.50K\n100.0% of tokens \u00b7 $0.01\nDaily processed tokens\n0\n500\n1K\n1.50K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n1.50K\nCached input\n300\nUncached input\n1K\nOutput\n200\nCache savings\n$0.00\nTokens by type\nInput\n1K\nCache read\n300\nOutput\n200\nBreakdown\nModel\nDay\n#\tModel\tCost\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.01\t1.50K",
      "theme": "light",
      "htmlClass": "",
      "width": 390,
      "height": 900,
      "time": "2026-10-21T22:20:41.166Z",
      "file": "after-390-light.png",
      "sourceSha256": "e07d672337f22d915c22c5408dae1a936ebc113fd4425d20e7bcae55960dd0b3",
      "pngSha256": "87b0a288f6434ace09ba6dc536d49b7c9434a86e1c4b1a8859b4d32ba57bfd70",
      "pngSize": [
        780,
        1800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "after",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nTokens\n30 days\n1.50K\n1 sessions\nOpenCode\n1 session\n1.50K\n100.0% of tokens \u00b7 $0.01\nDaily processed tokens\n0\n500\n1K\n1.50K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n1.50K\nCached input\n300\nUncached input\n1K\nOutput\n200\nCache savings\n$0.00\nTokens by type\nInput\n1K\nCache read\n300\nOutput\n200\nBreakdown\nModel\nDay\n#\tModel\tCost\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.01\t1.50K",
      "theme": "dark",
      "htmlClass": "dark",
      "width": 390,
      "height": 900,
      "time": "2026-10-21T22:20:46.614Z",
      "file": "after-390-dark.png",
      "sourceSha256": "e07d672337f22d915c22c5408dae1a936ebc113fd4425d20e7bcae55960dd0b3",
      "pngSha256": "212370db7804c6dfd1e7c3492083528d0fac678bb65d79fa45e392bb6abe7cbe",
      "pngSize": [
        780,
        1800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "before",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nCost\nTokens\nLimits\nPast 24h\n7 days\n30 days\n90 days\n4.50K\n3 sessions\nOpenCode\n3 sessions\n4.50K\n100.0% of tokens \u00b7 $0.03\nDaily processed tokens\n0\n2K\n4K\n6K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n4.50K\nCached input\n900\nUncached input\n3K\nOutput\n600\nCache savings\n$0.00\nTokens by type\nInput\n3K\nCache read\n900\nOutput\n600\nBreakdown\nModel\nDay\n#\tModel\tCost\tShare\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.03\t100.0%\t4.50K",
      "theme": "light",
      "htmlClass": "",
      "width": 1440,
      "height": 900,
      "time": "2026-10-21T22:20:58.711Z",
      "sidebarBounds": {
        "x": -256,
        "y": 0,
        "width": 256,
        "height": 900,
        "top": 0,
        "right": 0,
        "bottom": 900,
        "left": -256
      },
      "file": "before-1440-light.png",
      "sourceSha256": "0d920de04b21310c26eb955e82eefeec964dd2cb9bb8697ea053c7d7b864deaf",
      "pngSha256": "8794cfb676ebfbf2c1e4f98a2911a236cf291fc4c363969d8694be0f585eb1a3",
      "pngSize": [
        1280,
        800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "before",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nCost\nTokens\nLimits\nPast 24h\n7 days\n30 days\n90 days\n4.50K\n3 sessions\nOpenCode\n3 sessions\n4.50K\n100.0% of tokens \u00b7 $0.03\nDaily processed tokens\n0\n2K\n4K\n6K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n4.50K\nCached input\n900\nUncached input\n3K\nOutput\n600\nCache savings\n$0.00\nTokens by type\nInput\n3K\nCache read\n900\nOutput\n600\nBreakdown\nModel\nDay\n#\tModel\tCost\tShare\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.03\t100.0%\t4.50K",
      "theme": "dark",
      "htmlClass": "dark",
      "width": 1440,
      "height": 900,
      "time": "2026-10-21T22:21:05.347Z",
      "sidebarBounds": {
        "x": -256,
        "y": 0,
        "width": 256,
        "height": 900,
        "top": 0,
        "right": 0,
        "bottom": 900,
        "left": -256
      },
      "file": "before-1440-dark.png",
      "sourceSha256": "0d920de04b21310c26eb955e82eefeec964dd2cb9bb8697ea053c7d7b864deaf",
      "pngSha256": "14cbca9601189f527e1bf0c0dc3330df4ebb1b62fd37ba3c13a4c4ae91a00538",
      "pngSize": [
        1280,
        800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "before",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nTokens\n30 days\n4.50K\n3 sessions\nOpenCode\n3 sessions\n4.50K\n100.0% of tokens \u00b7 $0.03\nDaily processed tokens\n0\n2K\n4K\n6K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n4.50K\nCached input\n900\nUncached input\n3K\nOutput\n600\nCache savings\n$0.00\nTokens by type\nInput\n3K\nCache read\n900\nOutput\n600\nBreakdown\nModel\nDay\n#\tModel\tCost\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.03\t4.50K",
      "theme": "light",
      "htmlClass": "",
      "width": 390,
      "height": 900,
      "time": "2026-10-21T22:21:11.681Z",
      "file": "before-390-light.png",
      "sourceSha256": "0d920de04b21310c26eb955e82eefeec964dd2cb9bb8697ea053c7d7b864deaf",
      "pngSha256": "517e15d7a43a88047ac44bab19585946736a9da073e52801d525dbac17d3ff55",
      "pngSize": [
        780,
        1800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    },
    {
      "stage": "before",
      "text": "Usage\n/\nAll environments\n/\nOpenCode\nTokens\n30 days\n4.50K\n3 sessions\nOpenCode\n3 sessions\n4.50K\n100.0% of tokens \u00b7 $0.03\nDaily processed tokens\n0\n2K\n4K\n6K\nSEP 22\nOCT 7\nOCT 21\nTotals\nProcessed tokens\n4.50K\nCached input\n900\nUncached input\n3K\nOutput\n600\nCache savings\n$0.00\nTokens by type\nInput\n3K\nCache read\n900\nOutput\n600\nBreakdown\nModel\nDay\n#\tModel\tCost\tTokens\n1\t\nclaude-sonnet-4-5\n\t$0.03\t4.50K",
      "theme": "dark",
      "htmlClass": "dark",
      "width": 390,
      "height": 900,
      "time": "2026-10-21T22:21:16.774Z",
      "file": "before-390-dark.png",
      "sourceSha256": "0d920de04b21310c26eb955e82eefeec964dd2cb9bb8697ea053c7d7b864deaf",
      "pngSha256": "838420a4f0dcc857104f60d7be9257d357164394650499434b3ad7a70818eff6",
      "pngSize": [
        780,
        1800
      ],
      "visuallyInspected": true,
      "privateSidebarAbsent": true,
      "scrollTop": 0
    }
  ],
  "pixelDifferences": [
    {
      "widthCss": 1440,
      "theme": "light",
      "imageSize": [
        1280,
        800
      ],
      "changedPixels": 1966,
      "totalPixels": 1024000,
      "changedPercent": 0.1919921875,
      "bounds": [
        18,
        17,
        1074,
        592
      ]
    },
    {
      "widthCss": 1440,
      "theme": "dark",
      "imageSize": [
        1280,
        800
      ],
      "changedPixels": 1944,
      "totalPixels": 1024000,
      "changedPercent": 0.18984375,
      "bounds": [
        21,
        17,
        1074,
        592
      ]
    },
    {
      "widthCss": 390,
      "theme": "light",
      "imageSize": [
        780,
        1800
      ],
      "changedPixels": 6338,
      "totalPixels": 1404000,
      "changedPercent": 0.4514245014245014,
      "bounds": [
        41,
        165,
        740,
        1592
      ]
    },
    {
      "widthCss": 390,
      "theme": "dark",
      "imageSize": [
        780,
        1800
      ],
      "changedPixels": 6322,
      "totalPixels": 1404000,
      "changedPercent": 0.45028490028490026,
      "bounds": [
        41,
        165,
        740,
        1592
      ]
    }
  ],
  "model": "gpt-6.1-sol",
  "harness": "Codex",
  "viewportIndependentVerification": [
    {
      "innerWidth": 1440,
      "innerHeight": 900,
      "devicePixelRatio": 2,
      "time": "2026-10-21T22:22:45.736Z"
    },
    {
      "innerWidth": 390,
      "innerHeight": 900,
      "devicePixelRatio": 2,
      "time": "2026-10-21T22:22:45.825Z"
    }
  ],
  "rasterDisclosure": "Actual window.innerWidth/innerHeight were evaluated during every capture: 1440x900 or 390x900 CSS pixels. Independent follow-up evaluation confirms both requested viewports with devicePixelRatio=2. Native preview save produced 1280x800 PNGs for desktop (preview-resampled) and 780x1800 PNGs for narrow. No hand resizing/upscaling was performed. Desktop files are NOT 1440-pixel PNGs. Pixel comparisons operate on the saved raster dimensions.",
  "finalState": "Exact head restored; git status --porcelain empty; app visible fixed totals 1.50K / $0.01 / 1 session after reload."
}
