151a4d91373a0c7b2335fcf22add3f30a02b9531
fetchLatestSha and queryFileContent were silently catching every error (including expired-token 401s) and returning null, so the freshness badge could stay on "offline" with no UI hint that re-auth was needed. Wrap both calls in runWithAuthRetry to recover from refreshable tokens transparently, and switch fetchLatestSha to a tagged result so the freshness hook can distinguish auth failure from network failure.
Description
Languages
TypeScript
52.6%
Vue
44.3%
CSS
1.8%
JavaScript
1%
HTML
0.2%
Other
0.1%