{ "schema_version": 1, "tested_at": "2026-07-31T12:00:00+08:00", "result": "passed_with_documented_evidence_gap", "environments": { "original": "temporary_original_runtime", "migrated": "temporary_app_runtime", "account": "administrator", "database": "isolated_copies" }, "viewports": [ { "width": 1920, "height": 1080, "theme": "light", "views": [ "sentiment", "screener", "heaven_trend", "heaven_fortune", "heaven_heart_intro", "heaven_heart_breath" ], "equal": true }, { "width": 1920, "height": 1080, "theme": "dark", "views": [ "sentiment" ], "equal": true }, { "width": 390, "height": 844, "theme": "light", "views": [ "sentiment", "heaven_trend" ], "equal": true } ], "invalid_captures": [ { "view": "auction", "file": "frontend-migrated-auction-light-1920x1080.INVALID-login-session.png", "reason": "The migrated capture shows an expired login session and is not visual-equivalence evidence.", "replacement_claim": "No replacement screenshot claim; final visual acceptance remains manual." } ], "heaven_animation_contract": { "trend_star_nodes": 90, "fortune_star_nodes": 100, "heart_star_nodes": 110, "bagua_nodes_per_view": 2, "trend_and_fortune_animations": [ "wt-tw", "wt-spin" ], "heart_breath_animations": [ "heart-incense-burn", "heart-incense-glow" ], "fortune_industry_groups": 5, "fortune_industries_collapsed_by_default": true, "equal": true }, "mobile_contract": { "primary_navigation_items": 5, "horizontal_overflow": false, "vertical_page_scroll": true, "heaven_trend_geometry": { "active": { "height": 723, "width": 374, "x": 8, "y": 50 }, "header": { "width": 390, "height": 50 }, "bottom_navigation": { "width": 390, "height": 58 } }, "equal": true }, "console": { "new_errors": 0, "new_warnings": 0 }, "screenshot_policy": "Dynamic animation frames, focus outlines, and live status text may change pixel hashes. Acceptance compares visible geometry, computed styles, DOM state, animation names, interaction results, and overflow behavior.", "known_test_environment_constraint": "Original and migrated services on the same hostname share cookies across ports. Each service must be logged in separately immediately before comparison.", "all_equal": true, "manual_acceptance_required": true }