store: Fix: Scorebug tracker read-failure tolerance prevents false channel hiding
This commit is contained in:
parent
38ba5bd101
commit
01d6f4af0c
@ -0,0 +1,35 @@
|
||||
---
|
||||
id: 0960205f-85d1-447c-9921-57fec764e1d5
|
||||
type: fix
|
||||
title: "Fix: Scorebug tracker read-failure tolerance prevents false channel hiding"
|
||||
tags: [major-domo, scorebug, live-scorebug-tracker, resilience, google-sheets, discord, fix]
|
||||
importance: 0.7
|
||||
confidence: 0.8
|
||||
created: "2026-02-20T20:30:07.053777+00:00"
|
||||
updated: "2026-02-20T20:30:07.053777+00:00"
|
||||
---
|
||||
|
||||
# Scorebug Tracker: Read-Failure Tolerance
|
||||
|
||||
## Project
|
||||
major-domo / discord-app-v2
|
||||
|
||||
## File
|
||||
`tasks/live_scorebug_tracker.py` — `_update_scorebugs()` method
|
||||
|
||||
## Problem
|
||||
The method hid `#live-sba-scores` whenever `active_scorebugs` was empty after the read loop. It did not distinguish between:
|
||||
- All games confirmed FINAL (safe to hide)
|
||||
- All sheet reads failed due to transient errors (incorrect to hide)
|
||||
|
||||
A single Google Sheets timeout would cause the live scores channel to disappear mid-game.
|
||||
|
||||
## Fix
|
||||
Added `read_failures` and `confirmed_final` counters with three-branch logic:
|
||||
|
||||
1. **Active scorebugs present** → show channel (normal case)
|
||||
2. **Read failures with not all games confirmed final** → preserve last known state, log warning (resilience case)
|
||||
3. **All confirmed final** → safe to hide channel (expected end-of-game case)
|
||||
|
||||
## Key Takeaway
|
||||
Channel visibility decisions that depend on external I/O (Google Sheets) must account for transient read failures before taking destructive action (hiding channels). Always distinguish "no data" from "failed to fetch data."
|
||||
Loading…
Reference in New Issue
Block a user