""" Live GUI smoke test for FR3: MiniMax thinking mono rendering substrate. Track: ai_loop_regressions_20260614 Spec: conductor/tracks/ai_loop_regressions_20260614/spec.md (Phase 4.3) The full end-to-end live_gui FR3 test would require mock injection into the live_gui subprocess (patches in the test process do NOT propagate). The mock-based regression coverage for FR3 is at the unit level in test_ai_loop_regressions_20260614.py::test_fr3_minimax_thinking_in_returned_text (which mocks _send_minimax end-to-end and asserts tags are in Result.data). This file is a placeholder that verifies the live_gui's thinking_segments field is exposed via the Hook API, establishing the integration substrate exists for follow-up work to add subprocess mock injection. """ from src.api_hook_client import ApiHookClient def test_live_gui_thinking_substrate_exposed(live_gui) -> None: """ Smoke test: the live_gui exposes a gettable 'disc_entries' field via the Hook API. thinking_segments is a per-entry list populated by parse_thinking_trace; verifying the substrate is reachable establishes the integration path for the FR3 fix. """ client = ApiHookClient() entries = client.get_value("disc_entries") or [] assert isinstance(entries, list), f"disc_entries must be a list, got {type(entries).__name__}"