{
    "ok": true,
    "stage": "status",
    "supplier": "Vincea + INDA",
    "version": "3.3.11",
    "current_version": "3.3.11",
    "build": "2026-08-14-night-heavy-new-photo-priority",
    "current_route": "/vincea-auto-3311",
    "writes_performed": false,
    "production_ready": false,
    "last_cycle_version": "3.3.9",
    "last_cycle_version_matches_current": false,
    "version_drift_blocker": "Permanent CRON or last executed cycle is still on 3.3.9; switch CRON to /vincea-auto-3311 and run current version.",
    "self_check": {
        "ok": true,
        "stage": "self-check",
        "supplier": "Vincea + INDA",
        "version": "3.3.11",
        "build": "2026-08-14-night-heavy-new-photo-priority",
        "writes_performed": false,
        "checks": {
            "php_7_3_compatible_runtime": true,
            "curl": true,
            "ziparchive": true,
            "xmlreader": true,
            "dom": true,
            "moguta_db": true,
            "models_product": true,
            "property_class": true,
            "property_create_string": true,
            "product_add": true,
            "product_add_id_revalidated_by_exact_article": true,
            "product_fast_update": true,
            "product_get": true,
            "product_storage": true,
            "product_storage_readback": true,
            "product_storage_total": true,
            "product_storage_recalc": true,
            "product_storage_fallback_replace": true,
            "numeric_storage_aggregate_positive_sources_only": true,
            "negative_storage_count_not_stock_without_explicit_source_rule": true,
            "negative_physical_storage_normalization": true,
            "native_storefront_count_verification": true,
            "category_characteristic_mapping_audit_read_only": true,
            "manual_characteristic_mapping_wizard_admin_only": true,
            "manual_characteristic_mapping_save_is_plan_only": true,
            "manual_characteristic_mapping_shows_linked_global_unlinked": true,
            "property_create_definition": true,
            "property_create_category_link": true,
            "approved_characteristic_map_embedded_complete": true,
            "approved_characteristic_map_zero_pending_runtime": true,
            "approved_characteristic_map_ignore_49_runtime": true,
            "approved_characteristic_create_deduplicated": true,
            "approved_characteristic_unit_transforms_explicit_only": true,
            "approved_characteristic_backfill_persistent_cursor": true,
            "approved_characteristic_backfill_failure_does_not_advance_cursor": true,
            "production_characteristic_audit_is_fast_delta_only": true,
            "pending_characteristic_second_pass_admin_only": true,
            "pending_characteristic_ignore_requires_explicit_save": true,
            "pending_characteristic_second_pass_is_plan_only": true,
            "final_characteristic_map_has_zero_pending": true,
            "final_characteristic_ignore_is_known_no_write": true,
            "final_characteristic_second_pass_targeted_repair_cursor": true,
            "approved_multisource_merge_cat176_property360": true,
            "approved_multisource_merge_appends_distinct_values": true,
            "approved_multisource_merge_deduplicates_exact_values": true,
            "completed_full_backfill_not_repeated_for_pending_only_map_finalize": true,
            "product_delete": true,
            "product_delete_images": true,
            "product_delete_image_folder": true,
            "images_construction": true,
            "image_db_fields": true,
            "ordinary_brand_id_118_seen": true,
            "ordinary_brand_operational_lock_118": true,
            "plugin_brand_separate": true,
            "other_brand_like_fields_ignored": true,
            "vincea_order_flag_property_515_exact": true,
            "vincea_order_flag_full_backfill_has_durable_completion_state": true,
            "vincea_order_flag_completed_pass_uses_bulk_drift_audit": true,
            "vincea_order_flag_drift_repairs_only_mismatches": true,
            "vincea_order_flag_failure_does_not_advance_cursor": true,
            "images_construction_pipe_contract": true,
            "existing_image_batch_per_cron_300": true,
            "heavy_work_timezone_vladivostok": true,
            "heavy_work_night_window_00_07": true,
            "new_product_official_photos_priority_before_legacy_catalog": true,
            "new_product_photo_failure_queues_priority_retry_without_deleting_card": true,
            "physical_retention_delete_night_only": true,
            "fast_update_direct_db_contract": true,
            "protected_cron_control_config": true,
            "no_query_string_secret": true
        },
        "order_flag_runtime": {
            "ok": true,
            "property_id": 515,
            "expected_name": "Под заказ[prop attr=Общая]",
            "expected_value": "Да",
            "actual": {
                "id": "515",
                "name": "Под заказ[prop attr=Общая]",
                "type": "string",
                "activity": "1",
                "all_category": "1",
                "plugin": ""
            }
        },
        "brand_runtime": {
            "operational_ordinary_ids": [
                118
            ],
            "ordinary_candidate_ids": [
                118,
                145,
                169,
                175,
                180,
                184,
                222,
                262,
                376,
                394,
                421,
                458,
                544,
                545,
                697
            ],
            "ignored_other_ordinary_ids": [
                145,
                169,
                175,
                180,
                184,
                222,
                262,
                376,
                394,
                421,
                458,
                544,
                545,
                697
            ],
            "plugin_ids": [
                6,
                581
            ],
            "policy": "Only ordinary Brand ID 118 participates in Vincea/INDA ownership and new-product Brand writes; other Brand-like fields are diagnostic only."
        },
        "disk": {
            "site_dir": "/var/www/u1437730/data/www/xn----7sbajmsollb4bo4b.xn--p1ai",
            "free_bytes": 116993110016,
            "total_bytes": 248505155584,
            "free_percent": 47.079999999999998,
            "heavy_start_free_bytes": 4294967296,
            "heavy_stop_free_bytes": 2147483648,
            "heavy_timezone": "Asia/Vladivostok",
            "heavy_window": "00:00-07:00 Asia/Vladivostok",
            "heavy_disk_allowed": true,
            "heavy_time_allowed": false,
            "heavy_allowed": false,
            "heavy_reason": "outside Vladivostok night window",
            "new_cards_min_free_bytes": 1073741824,
            "new_cards_allowed": true,
            "night": {
                "ok": true,
                "timezone": "Asia/Vladivostok",
                "local_time": "2026-08-15 12:17:42+10:00",
                "start_hour": 0,
                "end_hour": 7,
                "window": "00:00-07:00",
                "allowed": false
            }
        },
        "automatic_policy": {
            "all_checks_run_inside_cron": true,
            "light_stages": "DAYTIME SAFE MODE: snapshot/self-check + price + supplier-ledger Moscow materialization + physical stock normalization + native storefront count verification + activity/lifecycle tracking + fast final-map delta audit + schema status + order-flag bulk drift audit. Mass content writes, backfills, new-product creation/enrichment, image downloads and physical retention deletes are night-only.",
            "heavy_stages": "ONLY 00:00-07:00 Asia/Vladivostok: mass content/backfill/repair, mass new-product creation/enrichment, complete official photos, old-catalog photo backlog and physical retention delete. Shared image budget is 300 cards per cycle; new products/retry priority consume it first. Image downloads also require >=4 GiB free and stop before <2 GiB reserve.",
            "new_products": "night-only. After the administrator-approved schema is verified, a new Vincea card is safely created/enriched, then immediately receives the COMPLETE official photo set when night+disk gates are open. Photo failure never deletes the valid card: it enters a priority retry queue processed before the old catalog. No official photos => card remains without photos.",
            "order_flag": "Vincea-specific approved rule: Под заказ[prop attr=Общая] ID 515 is forced to Да for every safely-owned Vincea product. Historical full backfill is cursor-based and completes once; after completion each CRON performs a lightweight bulk drift audit and repairs only actual mismatches. New Vincea cards receive Да during creation. INDA remains unchanged.",
            "new_products_currently_need_no_manual_switch": true,
            "cron_command": "single curl command uses protected config outside web root; secret is sent in POST body, not URL or command text"
        }
    },
    "last_cycle": {
        "ok": false,
        "stage": "cron",
        "supplier": "Vincea + INDA",
        "version": "3.3.9",
        "build": "2026-08-13-order-flag-completion-drift-audit",
        "cycle_id": "20260814-223002-214741",
        "started_at": "2026-08-14T22:30:02+10:00",
        "writes_performed": false,
        "single_controller": true,
        "resume_context": {
            "cycle_id": "20260814-220002-203358",
            "version": "3.3.9",
            "build": "2026-08-13-order-flag-completion-drift-audit",
            "stage": "existing_price_stock",
            "status": "running",
            "updated_at": "2026-08-14T22:00:08+10:00"
        },
        "stages": {
            "self_check": {
                "ok": true,
                "stage": "self-check",
                "supplier": "Vincea + INDA",
                "version": "3.3.9",
                "build": "2026-08-13-order-flag-completion-drift-audit",
                "writes_performed": false,
                "checks": {
                    "php_7_3_compatible_runtime": true,
                    "curl": true,
                    "ziparchive": true,
                    "xmlreader": true,
                    "dom": true,
                    "moguta_db": true,
                    "models_product": true,
                    "property_class": true,
                    "property_create_string": true,
                    "product_add": true,
                    "product_add_id_revalidated_by_exact_article": true,
                    "product_fast_update": true,
                    "product_get": true,
                    "product_storage": true,
                    "product_storage_readback": true,
                    "product_storage_total": true,
                    "product_storage_recalc": true,
                    "product_storage_fallback_replace": true,
                    "numeric_storage_aggregate_positive_sources_only": true,
                    "negative_storage_count_not_stock_without_explicit_source_rule": true,
                    "negative_physical_storage_normalization": true,
                    "native_storefront_count_verification": true,
                    "category_characteristic_mapping_audit_read_only": true,
                    "manual_characteristic_mapping_wizard_admin_only": true,
                    "manual_characteristic_mapping_save_is_plan_only": true,
                    "manual_characteristic_mapping_shows_linked_global_unlinked": true,
                    "property_create_definition": true,
                    "property_create_category_link": true,
                    "approved_characteristic_map_embedded_complete": true,
                    "approved_characteristic_map_zero_pending_runtime": true,
                    "approved_characteristic_map_ignore_49_runtime": true,
                    "approved_characteristic_create_deduplicated": true,
                    "approved_characteristic_unit_transforms_explicit_only": true,
                    "approved_characteristic_backfill_persistent_cursor": true,
                    "approved_characteristic_backfill_failure_does_not_advance_cursor": true,
                    "production_characteristic_audit_is_fast_delta_only": true,
                    "pending_characteristic_second_pass_admin_only": true,
                    "pending_characteristic_ignore_requires_explicit_save": true,
                    "pending_characteristic_second_pass_is_plan_only": true,
                    "final_characteristic_map_has_zero_pending": true,
                    "final_characteristic_ignore_is_known_no_write": true,
                    "final_characteristic_second_pass_targeted_repair_cursor": true,
                    "approved_multisource_merge_cat176_property360": true,
                    "approved_multisource_merge_appends_distinct_values": true,
                    "approved_multisource_merge_deduplicates_exact_values": true,
                    "completed_full_backfill_not_repeated_for_pending_only_map_finalize": true,
                    "product_delete": true,
                    "product_delete_images": true,
                    "product_delete_image_folder": true,
                    "images_construction": true,
                    "image_db_fields": true,
                    "ordinary_brand_id_118_seen": true,
                    "ordinary_brand_operational_lock_118": true,
                    "plugin_brand_separate": true,
                    "other_brand_like_fields_ignored": true,
                    "vincea_order_flag_property_515_exact": true,
                    "vincea_order_flag_full_backfill_has_durable_completion_state": true,
                    "vincea_order_flag_completed_pass_uses_bulk_drift_audit": true,
                    "vincea_order_flag_drift_repairs_only_mismatches": true,
                    "vincea_order_flag_failure_does_not_advance_cursor": true,
                    "images_construction_pipe_contract": true,
                    "fast_update_direct_db_contract": true,
                    "protected_cron_control_config": true,
                    "no_query_string_secret": true
                },
                "order_flag_runtime": {
                    "ok": true,
                    "property_id": 515,
                    "expected_name": "Под заказ[prop attr=Общая]",
                    "expected_value": "Да",
                    "actual": {
                        "id": "515",
                        "name": "Под заказ[prop attr=Общая]",
                        "type": "string",
                        "activity": "1",
                        "all_category": "1",
                        "plugin": ""
                    }
                },
                "brand_runtime": {
                    "operational_ordinary_ids": [
                        118
                    ],
                    "ordinary_candidate_ids": [
                        118,
                        145,
                        169,
                        175,
                        180,
                        184,
                        222,
                        262,
                        376,
                        394,
                        421,
                        458,
                        544,
                        545,
                        697
                    ],
                    "ignored_other_ordinary_ids": [
                        145,
                        169,
                        175,
                        180,
                        184,
                        222,
                        262,
                        376,
                        394,
                        421,
                        458,
                        544,
                        545,
                        697
                    ],
                    "plugin_ids": [
                        6,
                        581
                    ],
                    "policy": "Only ordinary Brand ID 118 participates in Vincea/INDA ownership and new-product Brand writes; other Brand-like fields are diagnostic only."
                },
                "disk": {
                    "site_dir": "/var/www/u1437730/data/www/xn----7sbajmsollb4bo4b.xn--p1ai",
                    "free_bytes": 117512208384,
                    "total_bytes": 248505155584,
                    "free_percent": 47.289999999999999,
                    "heavy_start_free_bytes": 4294967296,
                    "heavy_stop_free_bytes": 2147483648,
                    "heavy_allowed": true,
                    "new_cards_min_free_bytes": 1073741824,
                    "new_cards_allowed": true
                },
                "automatic_policy": {
                    "all_checks_run_inside_cron": true,
                    "light_stages": "price + supplier-ledger Moscow materialization + physical negative/duplicate stock normalization + native storefront count verification + existing content + fast final-map delta audit + final approved-characteristic schema status + completed generic backfill state + cursor-based targeted repair only for newly actionable second-pass pairs",
                    "heavy_stages": "supplier image downloads auto-start only when free disk >= 4 GiB and stop before reserve falls below 2 GiB",
                    "new_products": "photo-free new product cards may be created automatically while image downloads are paused only after the administrator-approved characteristic schema is applied and verified; approved mapped/create rows fill only empty fields, pending rows are skipped, explicit transforms are enforced; exact official photos are deferred to a later cycle",
                    "order_flag": "Vincea-specific approved rule: Под заказ[prop attr=Общая] ID 515 is forced to Да for every safely-owned Vincea product. Historical full backfill is cursor-based and completes once; after completion each CRON performs a lightweight bulk drift audit and repairs only actual mismatches. New Vincea cards receive Да during creation. INDA remains unchanged.",
                    "new_products_currently_need_no_manual_switch": true,
                    "cron_command": "single curl command uses protected config outside web root; secret is sent in POST body, not URL or command text"
                }
            },
            "known_gallery_repair": {
                "needed": false,
                "changed": false,
                "reason": "current raw gallery is not the known damaged one-image state"
            },
            "snapshot_precheck": {
                "ok": false,
                "catalog_scope": [],
                "daily_stock": [],
                "error": "HTTP error 0 for https://vincea.ru/partneram/: Operation timed out after 45001 milliseconds with 0 bytes received"
            }
        },
        "error": "supplier precheck failed: HTTP error 0 for https://vincea.ru/partneram/: Operation timed out after 45001 milliseconds with 0 bytes received",
        "failed_stage": "snapshot_precheck",
        "finished_at": "2026-08-14T22:30:47+10:00",
        "elapsed_sec": 45.021999999999998,
        "disk_after": {
            "site_dir": "/var/www/u1437730/data/www/xn----7sbajmsollb4bo4b.xn--p1ai",
            "free_bytes": 117509558272,
            "total_bytes": 248505155584,
            "free_percent": 47.289999999999999,
            "heavy_start_free_bytes": 4294967296,
            "heavy_stop_free_bytes": 2147483648,
            "heavy_allowed": true,
            "new_cards_min_free_bytes": 1073741824,
            "new_cards_allowed": true
        }
    },
    "checkpoint": {
        "cycle_id": "20260815-083001-362797",
        "version": "3.3.9",
        "build": "2026-08-13-order-flag-completion-drift-audit",
        "stage": "existing_price_stock",
        "status": "running",
        "updated_at": "2026-08-15T08:30:07+10:00"
    },
    "cron_control": {
        "ok": true,
        "protected_config": "/var/www/u1437730/data/.vincea-curl.conf",
        "secret_in_url": false,
        "expected_endpoint": "https://xn----7sbajmsollb4bo4b.xn--p1ai/vincea-auto-3311",
        "write_modes": "protected POST body from curl config; X-Vincea-Key header accepted as fallback; browser manual run is admin-session + CSRF protected"
    },
    "approved_characteristic_schema_status": {
        "ok": true,
        "ready": true,
        "stage": "approved-characteristic-schema-status",
        "version": "3.3.11",
        "build": "2026-08-14-night-heavy-new-photo-priority",
        "writes_performed": false,
        "map_sha256": "2620d80909851d95507bb0e7cc6b8f425216bdc5639025d9665c334c6951226c",
        "checked_rows": 222,
        "verified_rows": 222,
        "ignored_rows": 49,
        "pending_rows": 0,
        "errors": [],
        "runtime_map_file": "/var/www/u1437730/data/www/xn----7sbajmsollb4bo4b.xn--p1ai/uploads/vincea-integration-state/characteristic-approved-runtime-map.json"
    },
    "characteristic_backfill_state": {
        "state_version": 2,
        "map_sha256": "2620d80909851d95507bb0e7cc6b8f425216bdc5639025d9665c334c6951226c",
        "after_key": "VWTB-4LX140VB-R",
        "cycle_completed": true,
        "migrated_from_version": "3.3.5",
        "migrated_processed": 300,
        "eligible_total_last": 625,
        "cumulative": {
            "processed": 625,
            "changed_products": 596,
            "values_added": 2241,
            "already_present": 1207,
            "existing_values_preserved": 59,
            "no_matching_property": 0,
            "ambiguous_property": 0,
            "unit_skipped": 0,
            "skipped_runtime_gate": 0,
            "errors": 0
        }
    },
    "final_characteristic_second_pass_repair_state": {
        "state_version": 1,
        "fingerprint": "fbf99deb423265489fbc30b1e98c73ee5f48b8fff0bd7ab0fc96d6d2b7bbce7d",
        "map_sha256": "2620d80909851d95507bb0e7cc6b8f425216bdc5639025d9665c334c6951226c",
        "after_key": "VTF-1DGM",
        "cycle_completed": true,
        "completed_at": "2026-08-13T15:30:36+10:00",
        "cumulative": {
            "processed": 116,
            "changed_products": 10,
            "values_added": 10,
            "already_present": 99,
            "existing_values_preserved": 0,
            "no_matching_property": 0,
            "ambiguous_property": 0,
            "unit_skipped": 0,
            "errors": 0
        }
    },
    "vincea_order_flag_state": {
        "state_version": 2,
        "rule_fingerprint": "0b986990d124e3f807a2f676e6f64e264e9de01387b2e911e136fc33cd4b2bc9",
        "target_fingerprint": "50ef5a94943a75755089d44631dbd0c1c4df6355615467ddb470c123dbeeae00",
        "cursor": 0,
        "cycle_completed": true,
        "started_at": "2026-08-13T15:47:21+10:00",
        "updated_at": "2026-08-13T20:06:01+10:00",
        "completed_at": "2026-08-13T15:47:21+10:00",
        "migrated_legacy_cursor": 1000,
        "migration_strategy": "bulk-drift-verify-instead-of-replaying-legacy-sweep",
        "last_drift_audit_at": "2026-08-13T20:06:01+10:00",
        "last_drift_mismatches": 0
    },
    "state_summary": {
        "map_rows": 3525,
        "last_valid_snapshot_count": 4258,
        "last_successful_snapshot_at": "2026-08-13T20:06:01+10:00",
        "last_cycle_id": "20260813-200226-976033",
        "last_cycle_version": "3.3.9"
    }
}