Status
config.SUGGEST_STATIC_FALLBACK ships False. When flipped on, seoserper/suggest.py:_static_fallback returns an empty list — the real design (surface past OK rows from SQLite when upstream is down) is intentionally deferred.
Trigger criteria for implementing
Implement when ONE of these fires in real use:
- Cache-miss rate on
suggest_cache > 30% on a rolling 7-day window
- Network outage or upstream Google Suggest block that lasts > 1 hour
- Operator repeatedly hits
⚠️ degraded banner on a single session
Until then, the stub exists so the if config.SUGGEST_STATIC_FALLBACK branch is real code (not NotImplementedError) and static-path tests have something to call.
References
- Plan:
docs/plans/2026-04-20-007-feat-suggest-library-plan.md Unit 4
- Grep:
TODO(static-fallback) in seoserper/suggest.py
Status
config.SUGGEST_STATIC_FALLBACKshipsFalse. When flipped on,seoserper/suggest.py:_static_fallbackreturns an empty list — the real design (surface past OK rows from SQLite when upstream is down) is intentionally deferred.Trigger criteria for implementing
Implement when ONE of these fires in real use:
suggest_cache> 30% on a rolling 7-day window⚠️ degradedbanner on a single sessionUntil then, the stub exists so the
if config.SUGGEST_STATIC_FALLBACKbranch is real code (notNotImplementedError) and static-path tests have something to call.References
docs/plans/2026-04-20-007-feat-suggest-library-plan.mdUnit 4TODO(static-fallback)inseoserper/suggest.py