d3b71a7304
Migrate the ini-file-read try/except in App._diag_layout_state (L591) to the canonical Result[T] pattern: - Extract _diag_layout_state_ini_text_result(app, ini_path) -> Result[str] helper into new Phase 8 Property Setter / State Result Helpers region. - The legacy _diag_layout_state method calls the helper and drains errors to app._startup_timeline_errors (the Phase 2 drain plane for startup callbacks). - The original fallback behavior (early return on read failure, stderr write for visibility) is preserved. Tests: - test_phase_8_l591_diag_layout_state_ini_text_result_success - test_phase_8_l591_diag_layout_state_ini_text_result_failure Audit: INTERNAL_BROAD_CATCH count in src/gui_2.py dropped from 2 to 1 (remaining: L896 _capture_workspace_profile, formerly L897 in inventory).