33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
# Channel BI freshness after August publication
|
|
|
|
## Question
|
|
|
|
The operator reported that the monthly report had updated but Channel BI still showed `8.1`.
|
|
|
|
## Read-only evidence
|
|
|
|
- `reporting.monthly_runs` has active August V02 with `as_of_date=2026-08-02`, 268 rows and 6 channels. August V01
|
|
at `2026-08-01` is superseded.
|
|
- A fresh `PostgresAnalyticsRepository.read_dashboard("2026-08")` repeatable-read query returns
|
|
`max_arrival_date=2026-08-02`, `min_arrival_date=2026-08-01`, `updated_at=2026-08-03T14:21:29+08:00` and 268
|
|
retained rows. The source projection and database publication are therefore current.
|
|
- `arr_web/static/app.js` calls `loadAnalytics()` during initial boot, on the first BI tab entry only when
|
|
`state.analytics` is empty, and when the month selector changes. The existing four-second timer belongs to the
|
|
monthly-history list and does not refresh BI analytics.
|
|
|
|
## Conclusion
|
|
|
|
This is a frontend freshness bug, not an operator mistake and not a current monthly-worker/database publication
|
|
failure. A BI page opened before V02 was published can keep rendering the cached 8.1 payload until the page reloads or
|
|
the month selector changes. No code, runtime, report or business data was changed during diagnosis.
|
|
|
|
## Repair implemented
|
|
|
|
`arr_web/static/app.js` and `arr_web/static/h5.js` now check the selected month's lightweight `updated_at` metadata
|
|
every five seconds while visible. They reload the full analytics payload only when the selected month changes or its
|
|
`updated_at` changes, pause while hidden, check immediately when visible again and preserve the last good snapshot on
|
|
transient background failures. The desktop monthly-history timer remains four seconds and is independent from BI.
|
|
|
|
Focused verification passes: BI visual/static contract 5/5, Web contract 19/19, both JavaScript syntax checks and
|
|
`git diff --check`. No API, report or business data behavior changed.
|