Summary
When the engine configuration load faults permanently, AsyncLazy caches the fault, so every cache-miss getPressed poll re-primes and logs the same error again. A stale marker used to suppress repeats intermittently. Once #944 removes the stale marker, every poll that reaches StartPrimeIfNeeded logs.
Environment
- OS/version: Windows 11 (Outlook VSTO add-in)
- Python version: n/a (C#, .NET Framework 4.8)
- Command/flags used: n/a
- Data source or fixture:
TaskMaster/Ribbon/EngineToggleStateCoordinator.cs, and the configuration AsyncLazy with ResetConfigAsyncLazy
Steps to Reproduce
- Cause the engine configuration load to fault persistently.
- Let the ribbon repeatedly invalidate or poll the engine toggle
getPressed.
- Observe the log file (
TaskMaster\bin\Debug\logs\debug_<date>.log).
Expected Behavior
A permanent configuration fault is logged once, or at a bounded rate, and recovery is either explicit or backed off.
Actual Behavior
After #944, one error is logged per cache-miss poll, without bound.
Logs / Screenshots
Impact / Severity
Source
From: docs/features/potential/2026-09-30-engine-toggle-permanent-config-fault-logs-every-poll.md
Summary
When the engine configuration load faults permanently,
AsyncLazycaches the fault, so every cache-missgetPressedpoll re-primes and logs the same error again. A stale marker used to suppress repeats intermittently. Once #944 removes the stale marker, every poll that reachesStartPrimeIfNeededlogs.Environment
TaskMaster/Ribbon/EngineToggleStateCoordinator.cs, and the configurationAsyncLazywithResetConfigAsyncLazySteps to Reproduce
getPressed.TaskMaster\bin\Debug\logs\debug_<date>.log).Expected Behavior
A permanent configuration fault is logged once, or at a bounded rate, and recovery is either explicit or backed off.
Actual Behavior
After #944, one error is logged per cache-miss poll, without bound.
Logs / Screenshots
Impact / Severity
Source
From: docs/features/potential/2026-09-30-engine-toggle-permanent-config-fault-logs-every-poll.md