{
  "version": "1.11.0",
  "date": "2026-09-30",
  "passed": true,
  "tests": {
    "command": "python -m pytest tests/test_unified_hole_inventory.py tests/test_public_hole_inventory.py tests/test_hole_inventory.py tests/test_slot_inventory.py tests/test_cad_web.py tests/test_revision_detection.py tests/test_revision_benchmark.py tests/test_public_step_corpus.py tests/test_feature_recognition.py -q",
    "passed": 200,
    "duration_seconds": 98.15,
    "new_unified_tests": 13,
    "javascript_syntax_check": "node --check src/research_notes/cad_editor/holes.js: passed"
  },
  "benchmark": {
    "path": "results.json",
    "repeats": 3,
    "inputs": 6,
    "imported": 6,
    "verified_circular_holes": 5,
    "verified_slots": 6,
    "unknown_whole_counts": 6,
    "code_and_source_hashes_checked": true
  },
  "interfaces": {
    "python_cli_http_csv_identical": true,
    "installed_cli_exit_code": 2,
    "installed_cli_result_matches_benchmark": true,
    "installed_cli_version": "1.11.0",
    "browser_saved_csv": {
      "file_name": "hole-inventory.csv",
      "sha256": "04165323eccea024ffd91a51ccafd410805f713507de961585a349efadf935d8",
      "bytes": 2830,
      "rows_excluding_header": 12,
      "matches_benchmark": true
    }
  },
  "browser": {
    "browser": "Codex in-app browser",
    "local_route": "/holes",
    "step_file_chooser_upload": true,
    "summary": {
      "recognized": 11,
      "circular": 5,
      "slots": 6,
      "whole_count": null
    },
    "slot_S1": {
      "width_mm": 4.5,
      "length_mm": 7.5,
      "depth_mm": 3,
      "highlighted_wall_faces": [
        19,
        20,
        21,
        22
      ]
    },
    "circle_H3": {
      "diameter_mm": 32,
      "highlighted_wall_faces": [
        11
      ]
    },
    "selection_from_dropdown_marker_and_table_cell": true,
    "marker_keyboard_enter": true,
    "drag_changes_projection_and_preserves_selection": true,
    "desktop": {
      "viewport": [
        1440,
        900
      ],
      "document_scroll_width": 1425,
      "table_columns": 12
    },
    "mobile": {
      "viewport": [
        390,
        844
      ],
      "document_scroll_width": 375,
      "table_client_width": 306,
      "table_scroll_width": 709
    },
    "temporary_viewport_reset_called": true,
    "console_errors": [],
    "screenshots": [
      "screenshots/desktop-full.png",
      "screenshots/mobile.png",
      "screenshots/selected-slot.png"
    ]
  },
  "wheel": {
    "filename": "research_notes-1.11.0-py3-none-any.whl",
    "sha256": "2e1e5d247b9469920602c2bdd420a8377504917ae322221e38353c261f9070be",
    "version": "1.11.0",
    "modules_and_assets_match_source": [
      "hole_inventory.py",
      "slot_inventory.py",
      "unified_hole_benchmark.py",
      "cad_editor/holes.js",
      "cad_editor/holes.html",
      "cad_editor/holes.css"
    ],
    "entry_point_checked": true
  },
  "limitations": [
    "These six fixed samples are development regression inputs, not held-out accuracy evaluation.",
    "Boundary cross-checks use the same OCCT kernel; no independent metrology claim.",
    "All six public inputs keep an unknown whole opening count.",
    "Browser checks are manual interaction evidence; pytest covers Python/CLI/HTTP, not browser automation."
  ]
}
