KLKLine FrontendDashboard · Preview · Embed shell

F044

Historical pagination / load-more readiness

Validates backward/forward bars request mapping, duplicate timestamp merge policy, KLineCharts native load-more boundary, and SVG fallback manual load-older without introducing token-in-URL or retry-loop behavior.

This audit is deterministic and token-free. Live backend pagination is still validated through the chart runtime and bars client with runtime token in headers only.

Native KLineCharts

Ready

pan/scroll backward getBars path.

SVG fallback

Ready

manual Load older button.

Merge result

5

duplicates: 1

Failures

0

fail-closed if nonzero.

Request preview

{
  "symbol": "FX:EURUSD",
  "interval": "1h",
  "type": "backward",
  "timestamp": 1767225600000,
  "limit": 220
}

Oldest: 2025-12-31T22:00:00.000Z · Newest: 2026-01-01T02:00:00.000Z

PASS

Backend load type mapping

Historical pagination maps KLineCharts load direction to the backend bars `type` contract.

  • type=backward
  • limit=220
PASS

Boundary timestamp mapping

Backward/forward pagination sends only a numeric boundary timestamp; it does not send runtime token in query string.

  • timestamp=1767225600000
PASS

Duplicate merge policy

Duplicate timestamps are replaced by the latest normalized candle before reaching runtime state.

  • duplicatesReplaced=1
  • afterCount=5
PASS

Out-of-order guard

Normalized pages are sorted ascending and invalid order is handled before chart state merge.

  • oldest=1767218400000
  • newest=1767232800000
PASS

No retry loop contract

Pagination is user/adapter-driven; a failed page load updates status and does not schedule an infinite retry loop.

PASS

Runtime adapter boundary

KLineCharts native getBars backward/forward path remains inside chart-runtime adapter and data-loader abstractions.

PASS

SVG fallback manual load-more

SVG fallback exposes a controlled manual load-older action that calls the same data-loader with a backward boundary.