Play-route indexer offline degraded-mode banner (#354) #522
No reviewers
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega!522
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-354-play-indexer-offline-banner"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Play route
/now mounts the sharedIndexerStatusBarat the top ofArenaSimplePage, matching the AUDIT footer degraded-mode pattern. During indexer outages, users seeINDEXER · offline · retryinginstead of stale cached podium/timer data with no connectivity signal. The global footer remains hidden on play routes perRootLayout; the banner clears on recovery without blocking read-only play.Related: #354 (parent gap #342 P2 #14, bundles #96).
Acceptance checklist
cd frontend && npm test -- ArenaSimplePage.test.tsx— offline path assertsINDEXER · offline · retryinginarena-simple-indexer-statusIndexerStatusBarcomponent asAgentFooterCard; shareduseIndexerConnectivityhookArenaSimplePage.test.tsxcovers offline pathdescribe("ArenaSimplePage indexer offline banner (GitLab #354)")— mount + offline copy testsnpm testPASScd frontend && npm run typecheck && npm run lint && npm testVerification checklist (third parties)
cd frontend && npm run typecheck && npm run lint && npm test— all PASS.bash scripts/start-qa-local-full-stack.sh --no-swarm --no-frontend(or existing Anvil + indexer on:3100).cd frontend && npm run devwithfrontend/.env.localpointing at indexer.http://127.0.0.1:5173/— confirmdata-testid="arena-simple-indexer-status"shows live/connecting pill when indexer is up.INDEXER · offline · retrying; podiums may show stale cache but must not be labeled live.Blockers
None.
Security review — MR !522
Commit reviewed:
648936c026058da115a87150bde7b561a8d6a923Scope: Play-route indexer offline degraded-mode banner (#354) —
ArenaSimplePage.tsxmounts sharedIndexerStatusBar; CSS margin; tests; docs/invariants.Method
IndexerStatusBar,useIndexerConnectivity,IndexerConnectivityProvider,indexerConnectivity.ts,indexerApi.ts(fetchIndexerStatus),RootLayoutfooter gating.AgentFooterCard); play route previously hid the global footer without an inline substitute.Findings
FINDINGS: 0 (no medium, high, or critical)
IndexerStatusBarrenders status copy via React text nodes (<span>{line}</span>); nodangerouslySetInnerHTML. Dynamicschema_version/ block fields come from the configured indexerGET /v1/statusand were already shown on footer routes — unchanged trust model.indexerBaseUrl()remains build-timeVITE_INDEXER_URL(+ devnet default).Outcome
Security review: no medium+ findings on this diff.
No inline threads (nothing to block on).
mentioned in commit
6f41cbf80a