{
  "schemaVersion": 1,
  "status": "success",
  "project": "froge",
  "name": "Froge",
  "runId": "2026-09-10T10-51-12-939Z-293b",
  "createdAt": "2026-09-10T10:51:12.940Z",
  "completedAt": "2026-09-10T10:51:31.476Z",
  "technology": "Flutter adaptive desktop/mobile UI + Rust / flutter_rust_bridge",
  "detectedPlatforms": [
    {
      "platform": "rust",
      "root": "Froge"
    },
    {
      "platform": "rust",
      "root": "Froge/apps/agentd"
    },
    {
      "platform": "flutter",
      "root": "Froge/apps/flutter_app",
      "targets": [
        "web",
        "android",
        "ios",
        "windows",
        "macos",
        "linux"
      ],
      "sdkConstraint": "\">=3.12.2 <4.0.0\""
    },
    {
      "platform": "rust",
      "root": "Froge/apps/forge"
    }
  ],
  "captureMethod": "Native Windows application; UI Automation; HWND-only recording and screenshots",
  "viewport": {
    "width": 1360,
    "height": 850
  },
  "deviceScaleFactor": 1,
  "dataMode": "Existing guarded FORGE_DEMO=true entrypoint with FakeAgentClient and redacted deterministic fixtures, hosted by an isolated stock Flutter Windows runner. Application Dart sources are unchanged; Rust/provider execution is not exercised.",
  "source": {
    "projectPath": "Froge",
    "commit": "e827e55d673d2514e79a3fcfa7e7d1f7c1828ee9",
    "dirty": false,
    "statusFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "trackedDiffFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
  },
  "build": {
    "kind": "isolated-source-build",
    "sha256": "c5c0efe651d57c3310ccdca98e30eaa8fdc4b41f4a9a929498cfa3f4678e51ed",
    "sourceFreshness": "built_from_current_source",
    "flutter": "3.44.6",
    "dart": "3.12.2",
    "platform": "windows",
    "target": "lib/main_demo.dart",
    "defines": [
      "FORGE_DEMO=true"
    ],
    "sourceFingerprint": "62c33ff1d63a5418ffe95548a5961e4aeea9d80e5a03a31cb88eed6e9f9a71d4",
    "host": "stock Flutter Windows runner generated outside the repository"
  },
  "sourceStateUnchanged": true,
  "steps": [
    {
      "name": "Open Runs from the navigation rail",
      "status": "passed",
      "method": "owned-child-window-mouse-message",
      "windowRelativePoint": [
        54,
        251
      ],
      "endMs": 1864
    },
    {
      "name": "Filter tasks requiring attention",
      "status": "passed",
      "method": "owned-child-window-mouse-message",
      "windowRelativePoint": [
        475,
        248
      ],
      "endMs": 3059
    },
    {
      "name": "Open Workspaces from the navigation rail",
      "status": "passed",
      "method": "owned-child-window-mouse-message",
      "windowRelativePoint": [
        54,
        306
      ],
      "endMs": 4240
    },
    {
      "name": "Switch the workspace from Changes to Files",
      "status": "passed",
      "method": "owned-child-window-mouse-message",
      "windowRelativePoint": [
        326,
        352
      ],
      "endMs": 5436
    },
    {
      "name": "Return to the control room",
      "status": "passed",
      "method": "owned-child-window-mouse-message",
      "windowRelativePoint": [
        54,
        195
      ],
      "endMs": 6634
    }
  ],
  "assets": {
    "animation": {
      "file": "froge-interaction.webp",
      "format": "WEBP",
      "width": 1080,
      "height": 648,
      "bytes": 467192,
      "sha256": "67bfbdd2df374bd3e05d8ebab2c08ee8ccad0af4c81193ef1814f5a5e7ef23ce",
      "frames": 64,
      "distinctFrames": 56,
      "durationMs": 7666,
      "loop": 0,
      "blankFrames": 0,
      "validation": "decoded_all_frames",
      "encoding": {
        "width": 1080,
        "fps": 12,
        "quality": 78,
        "bytes": 467192
      },
      "encodingAttempts": [
        {
          "width": 1080,
          "fps": 12,
          "quality": 78,
          "bytes": 467192
        }
      ],
      "budgetBytes": 2097152
    },
    "screenshots": [
      {
        "alt": "Froge guarded demo: control room and active work",
        "png": {
          "file": "01-control-room.png",
          "format": "PNG",
          "width": 1342,
          "height": 803,
          "bytes": 49968,
          "sha256": "bdbec7b81256dfd07af5607634e7a6354269eb8dd77c658d642029b7abeeed09",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "01-control-room.webp",
          "format": "WEBP",
          "width": 1342,
          "height": 803,
          "bytes": 47440,
          "sha256": "ede7d2165f878817034997ffb4575cc7027fceab1c8b7965c6a76b50a74358f1",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "Froge task list and execution details with deterministic demo data",
        "png": {
          "file": "02-runs.png",
          "format": "PNG",
          "width": 1342,
          "height": 803,
          "bytes": 58155,
          "sha256": "2e240977352c3190a09744327017007b1132cbd301b280c57315f9269ed3e663",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "02-runs.webp",
          "format": "WEBP",
          "width": 1342,
          "height": 803,
          "bytes": 56152,
          "sha256": "da13a33833d988a7c9c0782d4c961f7b230d55081af894fc9b74bd0eaf94e9c2",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "Froge attention filter and approval details; no approval action is taken",
        "png": {
          "file": "03-attention-filter.png",
          "format": "PNG",
          "width": 1342,
          "height": 803,
          "bytes": 49858,
          "sha256": "73b801a6aa2d2a8d8fc346b534e05708b3b26150c0595145da9a47568456ff3c",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "03-attention-filter.webp",
          "format": "WEBP",
          "width": 1342,
          "height": 803,
          "bytes": 46400,
          "sha256": "2b07e7fea1eff4c30bebcc4fc4958c8c30b3824c0a3b5cfd0e2066b343656b18",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "Froge demo workspace change list and code-diff preview",
        "png": {
          "file": "04-workspace-changes.png",
          "format": "PNG",
          "width": 1342,
          "height": 803,
          "bytes": 49873,
          "sha256": "0068f00236d661b9ec1f065588467ac7197ce2f90ab720c75f83be5479a62d24",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "04-workspace-changes.webp",
          "format": "WEBP",
          "width": 1342,
          "height": 803,
          "bytes": 46842,
          "sha256": "063fa451f677d9be1b08faff23a3a95d747eb7d10c860a1fe51ff950cfa90b25",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "Froge demo workspace file browser",
        "png": {
          "file": "05-workspace-files.png",
          "format": "PNG",
          "width": 1342,
          "height": 803,
          "bytes": 50162,
          "sha256": "131c63fb17663c1efec2650e86580a6954c98375f72dd2d24b9e5f12bb11c73c",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "05-workspace-files.webp",
          "format": "WEBP",
          "width": 1342,
          "height": 803,
          "bytes": 46888,
          "sha256": "1a85962cd68a7e540b477d5cad680a05b6f40e9bd9c03a3f6f2dfb97fc21fb96",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      }
    ]
  },
  "limitations": [
    "Windows UIA exposes only the Flutter view; the demo uses reviewed, source-pinned window-relative mouse messages, not semantic selectors.",
    "Web compilation is blocked by the missing generated lib/src/generated/frb_generated.web.dart file.",
    "Flutter 3.44.6 matches the pinned intl 0.20.2; Flutter 3.47.2 requires intl 0.20.3.",
    "The separate stock Windows demo host intentionally does not run the production CMake Rust bridge build target."
  ],
  "runtimeEvidence": {
    "pageErrors": [],
    "expectedOfflineConsoleErrors": [],
    "blockedRequestCount": 0,
    "fullDesktopCaptured": false
  },
  "verification": {
    "media": "All frames decoded; nonblank; changing animation; loop; dimensions; file-size budget; checksums.",
    "interaction": "Each configured step completed against the real running application.",
    "visualReview": "passed: all screenshots and representative animation frames inspected; no blank, cropping, font, or viewport defects observed"
  },
  "primaryFormat": "Animated WebP",
  "sourceRecordingRetained": false
}
