{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "meta": {
    "title": "Build of Binary (BoB) Process & Build Status Manifest",
    "generator": "render-status.py v1.0",
    "timestamp": "2026-09-27T12:20:57Z",
    "portal_url": "https://bob.refineid.fi/",
    "status_url": "https://bob.refineid.fi/status.json",
    "audit_url": "https://bob.refineid.fi/audit.json",
    "tests_url": "https://bob.refineid.fi/tests.json",
    "builds_url": "https://bob.refineid.fi/builds.json"
  },
  "overall_health": {
    "status": "HEALTHY",
    "description": "All systems operational. Watcher running. 2765 tests passed, 0 failures.",
    "is_building": false,
    "watcher_alive": true,
    "summary_for_ai": "Build of Binary (BoB) (https://bob.refineid.fi/): Status HEALTHY. Watcher: RUNNING. Pipeline Lock: IDLE. Test Suite: 2765 passed, 0 failed across 5 suites. Security Audits: 0 vulns, 0 leaks. Host: Linux aarch64 (load: 0.18, mem: 5.4%, disk: 20.8%)."
  },
  "process_check": {
    "watcher_service": {
      "name": "refineid-watcher.service",
      "active": true,
      "pid": 380820
    },
    "lock_state": {
      "locked": false,
      "lock_file": "/home/bob/state/runner.lock",
      "current_stage": "idle",
      "stage_started_at": null,
      "stage_elapsed_seconds": 0,
      "last_completed_at": "2026-09-27T12:00:55Z",
      "last_status": "SUCCESS"
    },
    "active_processes": []
  },
  "system_metrics": {
    "load_average": [
      0.18,
      0.13,
      0.4
    ],
    "memory": {
      "total_mb": 11924,
      "available_mb": 11277,
      "used_mb": 647,
      "percent": 5.4
    },
    "disk": {
      "total_gb": 192.7,
      "used_gb": 40.2,
      "free_gb": 152.5,
      "percent": 20.8
    },
    "uptime_seconds": 283847
  },
  "test_suite_summary": {
    "test_suites_count": 5,
    "passed_suites": 5,
    "failed_suites": 0,
    "total_tests_passed": 2765,
    "total_tests_failed": 0,
    "total_tests_ignored": 33,
    "active_bugs_count": 0
  },
  "security_audit_summary": {
    "repositories_monitored": 7,
    "clean_repositories": 0,
    "repositories_with_warnings": 7,
    "cargo_vulnerabilities": 0,
    "cargo_advisories": 2,
    "outdated_dependencies": 0,
    "secret_leaks": 0
  },
  "repositories": [
    {
      "name": "refineid-core",
      "processed_sha": "97332c8e",
      "full_sha": "97332c8e8b0b7869b7bd8d4043838d096f73151d",
      "last_commit_date": "2026-09-25",
      "last_commit_message": "Switch toolchain to stable and stamp 26.9.24.210 (#28)"
    },
    {
      "name": "refineid-unix",
      "processed_sha": "93799eed",
      "full_sha": "93799eed80f16f4143042fb6e7450798baf0f7f8",
      "last_commit_date": "2026-09-27",
      "last_commit_message": "Update Slint to 1.18 and pdfluent-jpeg2000 to 0.4 (#14)"
    },
    {
      "name": "refineid-windows",
      "processed_sha": "3c313325",
      "full_sha": "3c313325b884f6ac2ead9d6736135bb6ae952d41",
      "last_commit_date": "2026-09-27",
      "last_commit_message": "win32: version in main window title (#29)"
    },
    {
      "name": "refineid-android",
      "processed_sha": "dc3537aa",
      "full_sha": "dc3537aa9d924493ff401bbf84ba1a7be95e1311",
      "last_commit_date": "2026-09-26",
      "last_commit_message": "Add handshake deadline and timeout recovery to pairing listener (#48)"
    },
    {
      "name": "refineid-apple",
      "processed_sha": "2a9411ea",
      "full_sha": "2a9411eaa704b8667252b6afa5b9f84fbe47453c",
      "last_commit_date": "2026-09-27",
      "last_commit_message": "Retire WHATSUP.md and derive worktree activity from git (#34)"
    },
    {
      "name": "refineid-java",
      "processed_sha": "6dd924cd",
      "full_sha": "6dd924cdf220305e1547254f7b33885c88d242e3",
      "last_commit_date": "2026-09-13",
      "last_commit_message": "Rename product ReFineID -> RefineID"
    },
    {
      "name": "refineid-hack",
      "processed_sha": "61e770da",
      "full_sha": "61e770daf819fedc1a4413964c38de2c20df66ee",
      "last_commit_date": "2026-09-13",
      "last_commit_message": "Rename product ReFineID -> RefineID"
    }
  ]
}