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:
- The conversation log filter only searches among the last 200 entries — older conversations are invisible
- Statistics (usage, costs, tokens) derived from the dashboard only reflect the last 200 requests
- There is no server-side pagination or offset/limit mechanism on
GET /api/logs
Reproduction
- Start
ocx and send >200 requests through the proxy
- Open the dashboard
#logs tab
- Observe that only the most recent 200 entries are visible
- Apply the conversation filter — it can only find conversations among those 200 entries
- 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
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#logstab fetches all logs with a singleGET /api/logscall (no query parameters) and applies filters (conversation, surface) purely client-side. This means:GET /api/logsReproduction
ocxand send >200 requests through the proxy#logstabSource references
MAX_LOG_SIZE = 200:src/server/request-log.ts:129src/server/request-log.ts:222-224(if (requestLog.length > MAX_LOG_SIZE) requestLog.shift())src/server/request-log.ts:196-219(reads max 200 from persisted usage log on startup)tailparameter also capped at 200:src/server/request-log.ts:761src/server/management/logs-usage-routes.ts:126-128— returns all in-memory logsgui/dist/assets/index-cmds12BG.jsExpected behavior
GET /api/logsshould supportoffset/limit(or cursor-based) pagination, and the frontend should lazy-load or paginate entriesVersion
2.7.43
Operating system
Linux (WSL)
Checks