1efcd4fdbc
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 13. The Phase 3 _render_main_interface_result helper runs every frame. Returning Result(data=True) allocates a fresh dataclass with empty errors list every call. At 60 FPS, this is 60 allocations/sec just for the success path. Fix: introduce module-level _OK_TRUE and _OK_FALSE singletons (immutable, no errors list allocation). Hot-path helpers return _OK_TRUE on success; only the error path allocates a new Result. This is a micro-optimization that preserves the Result[T] contract (the helper still returns a Result instance). The convention is satisfied; the allocation overhead is removed. Note: test_gui2_performance.py::test_performance_benchmarking measures ~28.4 FPS vs 30 FPS threshold. The frame time is 0.22ms, which suggests the bottleneck is vsync/throttling, not Python overhead. The optimization is a defensive measure, not a fix for this specific test (which appears to be flaky near the threshold).