null when healthy: either genuinely local (config agrees) or
gist-backed with an armed store. Non-null when this process is not
reliably syncing to the Gist.
Whether a later init/recovery attempt can heal this without user
action. Both manager-level causes are recoverable by re-running
ensureGistPersistence with a token (#1415/#1443); a PERMANENT halt
(e.g. token lacking the gist scope) surfaces as a thrown
ConfigurationError at the surface that attempted recovery — the
manager itself cannot observe it, so it never reports false here.
Optionalsince?: stringISO timestamp when the degradation was first observed, when known (a degraded bootstrap seeds the staleness marker; a configured-but-local manager has no marker to date it by).
'gist' when the manager is gist-backed (a GistStateStore is attached),
'local' otherwise — regardless of what the config asks for.
Snapshot of gist persistence health from the one source of truth (
StateManager.getGistHealth()), shaped per #1444.