Skip to content

[Bug]: Dashboard logs capped at 200 entries with no pagination — conversation filter and statistics incomplete #726

Description

@jhste102lab

Client or integration

OpenCodex dashboard

Area

Dashboard

Summary

The in-memory request log ring buffer is hardcoded to MAX_LOG_SIZE = 200 (src/server/request-log.ts:129). Once 200 entries accumulate, the oldest entry is silently dropped. The Dashboard #logs tab fetches all logs with a single GET /api/logs call (no query parameters) and applies filters (conversation, surface) purely client-side. This means:

  1. The conversation log filter only searches among the last 200 entries — older conversations are invisible
  2. Statistics (usage, costs, tokens) derived from the dashboard only reflect the last 200 requests
  3. There is no server-side pagination or offset/limit mechanism on GET /api/logs

Reproduction

  1. Start ocx and send >200 requests through the proxy
  2. Open the dashboard #logs tab
  3. Observe that only the most recent 200 entries are visible
  4. Apply the conversation filter — it can only find conversations among those 200 entries
  5. Older request data is permanently lost from the dashboard view

Source references

  • MAX_LOG_SIZE = 200: src/server/request-log.ts:129
  • Ring buffer eviction: src/server/request-log.ts:222-224 (if (requestLog.length > MAX_LOG_SIZE) requestLog.shift())
  • Hydration cap from disk: src/server/request-log.ts:196-219 (reads max 200 from persisted usage log on startup)
  • tail parameter also capped at 200: src/server/request-log.ts:761
  • API endpoint has no pagination params: src/server/management/logs-usage-routes.ts:126-128 — returns all in-memory logs
  • Frontend fetches without query params, filters client-side: gui/dist/assets/index-cmds12BG.js

Expected behavior

  • Full request history should be accessible in the dashboard, either by increasing the in-memory buffer size significantly or adding server-side pagination
  • The conversation filter should be able to search across the full available history
  • GET /api/logs should support offset/limit (or cursor-based) pagination, and the frontend should lazy-load or paginate entries

Version

2.7.43

Operating system

Linux (WSL)

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions