{
    "kind": "front-php-real-adapter-v1",
    "started": "2026-10-23T23:41:08+08:00",
    "checks": [
        {
            "name": "actual_adapter_table_metadata",
            "source": "application/cores/database/Dm.php",
            "status": "pass",
            "detail": {
                "tables": 284
            }
        },
        {
            "name": "fixed_user_read",
            "source": "common/service/zywxb/Config.php::fixedUser",
            "status": "fail",
            "error_class": "RuntimeException",
            "error_code": "0",
            "message": "Runtime/SQL failure; inspect isolated task locally"
        },
        {
            "name": "fixed_user_actual_menu_tree",
            "source": "model/User.php::getUserOwnSysMenus",
            "status": "fail",
            "error_class": "RuntimeException",
            "error_code": "0",
            "message": "Runtime/SQL failure; inspect isolated task locally"
        },
        {
            "name": "fixed_user_restaurant_permission",
            "source": "model/User.php::getUserOwnRestaurantIds",
            "status": "fail",
            "error_class": "RuntimeException",
            "error_code": "0",
            "message": "Runtime/SQL failure; inspect isolated task locally"
        },
        {
            "name": "null_useful_period_current_login_policy",
            "source": "p/logic/Login.php::assertAccountUsable",
            "status": "pass",
            "detail": {
                "null_unlimited": true,
                "zero_date_rejected": true,
                "behavior_change_requires_user_approval": true
            }
        },
        {
            "name": "dish_list_pagination",
            "source": "model/Cater.php + BaseModel::inquiry",
            "status": "pass",
            "detail": {
                "rows": 10
            }
        },
        {
            "name": "food_composition_list",
            "source": "p/logic/Food.php::lists",
            "status": "pass",
            "detail": {
                "rows": 10
            }
        },
        {
            "name": "recipe_real_raw_join",
            "source": "model/Bill.php::bill_list",
            "status": "pass",
            "detail": {
                "rows": 43
            }
        },
        {
            "name": "recipe_calendar_group",
            "source": "model/Bill.php::timer_shaft",
            "status": "pass",
            "detail": {
                "dates": 35
            }
        },
        {
            "name": "recipe_category_aggregate",
            "source": "model/Bill.php::bill_number",
            "status": "pass",
            "detail": {
                "groups": 18
            }
        },
        {
            "name": "nutrition_export_real_select",
            "source": "model/Dishes.php::idInquiryAll",
            "status": "pass",
            "detail": {
                "rows": 5260
            }
        },
        {
            "name": "restaurant_pdo_case_normalizer",
            "source": "p/logic/Restaurant.php::normalizeRestaurantResponseRow",
            "status": "pass",
            "detail": {
                "legacy_keys_present": true
            }
        },
        {
            "name": "bill_zhipan_direct_model_case_contract",
            "source": "p/logic/Bill.php::zhipanApi (no HTTP invoked)",
            "status": "fail",
            "error_class": "FrontAcceptanceFailure",
            "error_code": "0",
            "message": "Direct model camelCase key absent; zhipanApi bypasses normalizer"
        },
        {
            "name": "restaurant_analysis_dishes_cook_method",
            "source": "model/Restaurant.php::dishes_cook_method",
            "status": "pass",
            "detail": {
                "groups": 22
            }
        },
        {
            "name": "recipe_update_rollback",
            "source": "model/BaseModel.php::modifyById + DM transaction",
            "status": "pass",
            "detail": {
                "updated_rows": 1,
                "rolled_back": true,
                "all_row_fields_unchanged": true
            }
        },
        {
            "name": "price_comparison_hcgj",
            "status": "skip",
            "reason": "Customer independent hcgj DB not supplied; no fabricated target"
        },
        {
            "name": "external_devices_printing_http",
            "status": "skip",
            "reason": "No external HTTP/queue consumers in isolated acceptance"
        },
        {
            "name": "browser_excel_render_and_upload",
            "status": "skip",
            "reason": "This runner validates SQL/model behavior, not rendered web UI or uploaded spreadsheet workflow"
        }
    ],
    "external_http_performed": false,
    "redis_used": false,
    "production_target_allowed": false,
    "schema": "FRONT23_SCHEMA01",
    "build": "--03134284488-20260212-314192-20200",
    "passed": 11,
    "failed": 4,
    "skipped": 3,
    "accepted": false,
    "finished": "2026-10-23T23:41:08+08:00"
}