{
  "current": "1.1.2",
  "channel": "stable",
  "releases": [
    {
      "version": "1.1.2",
      "date": "2026-09-04",
      "title": "GPU bench dài hơn + 2400 mesh 3D + progress realtime",
      "summary": "Trước đó GPU test chỉ chạy 3s quá nhanh, không thấy gì. Bây giờ chạy 600 frames thật với 2400 mesh × 4 geometry (396K tri/frame), 60 FPS cap → ~10s, có progress overlay realtime (frame count, FPS, %, progress bar) + visible 3D canvas ngay trong viz panel.",
      "new": [
        "GPU bench cap 60 FPS × 600 frames × 2400 mesh = ~10s (từ 240 frames × 600 mesh = 0.07s)",
        "GPU canvas visible ngay trong viz panel khi GPU stage chạy (không phải mock)",
        "Real-time progress overlay: WARM-UP / BENCH label, frame X/600, instant FPS, elapsed, progress bar gradient"
      ],
      "improved": [
        "Mesh count 600 → 2400 (4 geometry: box + sphere + octahedron + torus) cho nặng hơn",
        "Score capped ở 60 FPS (GPU quá mạnh không trivialize score)",
        "Sub-score mới: 'Mesh count' để hiển thị rõ 2400 mesh"
      ],
      "fixed": [
        "GPU bench quá nhanh (3s) → cap 60 FPS pace cho duration cố định ~10s"
      ]
    },
    {
      "version": "1.1.1",
      "date": "2026-09-04",
      "title": "GPU test fix — verified chạy thật trong app tích hợp",
      "summary": "Fix GPU benchmark từng bị skip do host canvas clientWidth = 0 (canvas absolute z:-10 opacity-0). Bây giờ tự tạo visible canvas fallback 1280×720, console.log từng bước để debug. E2E test thật: 12435 FPS / 20,725 pts trên RTX 3090.",
      "new": [],
      "improved": [
        "GPU test logging: mỗi bước (probe / init / warm-up / benchmark / done) có console.log [ApexMark/GPU] để debug dễ"
      ],
      "fixed": [
        "GPU test bị skip vì host canvas có clientWidth=0 (canvas absolute z:-10 opacity-0) → tạo visible canvas tạm 1280×720, attach DOM, dùng làm render surface",
        "GPU test không có diagnostics khi fail → thêm console.log đầy đủ + error code (no-webgl / no-canvas / zero-size / context-lost / render-failed)"
      ]
    },
    {
      "version": "1.1.0",
      "date": "2026-09-02",
      "title": "Tier 1 heavy benchmarks",
      "summary": "GPU nặng 2400 mesh + PBR + bloom, AI benchmark (MobileNet), real-time monitor overlay (FPS, frame time, JS heap). Web ngon như AnTuTu.",
      "new": [
        "GPU benchmark nặng: 2400 instanced mesh, PBR materials, IBL env, bloom postprocessing, 2000 particles, auto-orbit camera, frame-time HUD",
        "AI benchmark: TensorFlow.js + MobileNet v2 (alpha 0.5), auto backend WebGPU → WebGL → CPU, 50 iters + 5 warmup",
        "AI visualization: neural network particle field 2D",
        "Real-time monitor overlay: FPS (màu theo ngưỡng xanh/vàng/đỏ), frame time, JS heap memory"
      ],
      "improved": [
        "Trọng số benchmark: CPU 25% / RAM 15% / Disk 10% / GPU 30% / AI 20% (GPU + AI lên đáng kể)",
        "Tab nav có thêm tab AI với icon Brain"
      ],
      "fixed": [
        "Service worker cache không tự bump khi deploy mới → bump version mỗi release"
      ]
    },
    {
      "version": "1.0.0",
      "date": "2026-08-30",
      "title": "Initial public release",
      "summary": "MVP: 4 benchmark (CPU, RAM, Disk, GPU), AnTuTu-style visualizers, PWA install, historical comparison, hosted on Cloudflare.",
      "new": [
        "CPU benchmark: single + multi-core qua Web Workers, mixed ALU + cache stress",
        "Memory benchmark: 64MB / 256MB arrays, sequential + reverse + stride access",
        "Disk benchmark: sequential read/write (Electron IPC cho desktop, fallback cho web)",
        "GPU benchmark: Three.js scene 3D cơ bản",
        "AnTuTu-style visualizers riêng cho từng benchmark (grid pulse, waves, tracks, sphere)",
        "PWA install (manifest + service worker, icons 192/512/180)",
        "Historical comparison: IndexedDB storage, lưu mọi run, Compare view với Recharts",
        "Deploy lên Cloudflare Pages + custom domain benchmark.jimmyvu.me"
      ],
      "improved": [],
      "fixed": []
    }
  ]
}