decolua and Cursor
a625ea9fd8
refactor(log): unify request lifecycle logging with session-colored tags
...
Collapse scattered per-request console lines (request/routing/auth/pending/
usage/stream-usage/stream) into 3 correlated lines: request, transform,
done. Add stable per-session color tag so concurrent request lines are
easy to follow, surface thinking intent, always-on full error logging
for debug, re-enable warn level, and uppercase keyword labels. Also fix
usage overview cards wrapping (5 cards -> grid-cols-5).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 18:01:20 +07:00
Elio Bonfim Júnior
dcf1927f22
feat(pxpipe): PXPIPE token saver — multimodal prompt compression ( #2465 )
...
Add pxpipe as an experimental fifth Token Saver: Claude-format request
bodies above a configurable size threshold are rendered as dense PNGs
via the pxpipe-proxy library API (transformAnthropicMessages) before
dispatch, cutting estimated input tokens by ~35-60% on token-dense
contexts. Integration follows the Headroom pattern: applied to the final
body in chatCore just before dispatch, fail-open on any error/timeout.
Managed npm install into DATA_DIR/pxpipe, dynamic loader with per-version
cache-bust, JSONL event log with rotation, /api/pxpipe/* endpoints, Token
Saver card (marked experimental) + /dashboard/pxpipe page, and per-request
Activated/Skipped annotation in Request Details. Disabled by default.
2026-07-10 16:10:42 +07:00
Qin Li and Cursor
960f8a0379
fix(usage): dedupe streaming request-details log entries
...
handleStreamingResponse and buildOnStreamComplete each generated their
own streamDetailId for what should be one logical record — the
placeholder row (0 tokens) and the final row (real usage) never shared
an id, so the DB's ON CONFLICT(id) upsert never merged them, leaving a
permanent 0-token stub for every streaming request.
Share the id from buildOnStreamComplete with handleStreamingResponse
so both writes hit the same row.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-03 15:14:49 +07:00
KunN-21 and Cursor
cb0135b695
fix: prevent non-SSE stream pipe crash and cross-IdP account overwrites ( #2244 )
...
- streamingHandler: when upstream returns non-SSE/JSON (e.g. Cloudflare
5xx HTML), read body, sanitize <title>, notify streamController and
return a clean JSON error instead of crashing the pipe.
- connectionsRepo: dedup OAuth connections on (email + username) so
cross-IdP accounts sharing an email no longer overwrite each other;
workspace providers keep workspace-id matching.
- kimchi: bump User-Agent to 0.1.50, add svg asset + browser-login
service, and 21 unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-03 11:11:07 +07:00
qianze and Cursor
c22f11de38
fix(stream): prevent non-JSON SSE lines and duplicate [DONE] from breaking clients
...
- Passthrough: skip non-JSON data lines instead of forwarding raw garbage
- Translate: stop emitting redundant [DONE] sentinel (message_stop terminates)
- Add streamDoneSent flag to prevent duplicate [DONE] across transform + flush
- Warn on unexpected upstream Content-Type for streaming responses
PR #2046 by @qianze0628
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-26 10:22:53 +07:00
Mink Nguyen and Cursor
0d21668917
Fix usage logging dedupe and reduce stats churn
...
- batch console log buffer events and support batched SSE log messages
- debounce usage stats update/pending events to reduce UI/runtime churn
- avoid awaiting request-success bookkeeping before returning provider responses
- deduplicate identical usage writes in usageHistory/daily aggregates
- reduce default logger verbosity from DEBUG to INFO (overridable via LOG_LEVEL)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-26 10:22:20 +07:00
decolua and Cursor
bb9e9aa91f
refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup
...
- Single-source registry: oauth clientId/tokenUrl, usage URLs, image/embed
configs, search defaultModel, codex fixedPort, google token url derive.
- Remove 29 unused OmniRoute providers (registry 100→71); media intact.
- De-adhoc: codex literals → registry format/oauth flags; reasoningInject,
image/embed openrouter headers + xai bodyFields config-driven.
- Add REGISTRY_TEMPLATE.js + expand PROVIDER_DEFAULTS/schema JSDoc.
- Baselines updated; PROVIDERS 62 + alias 90 byte-for-byte, golden snapshots.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-14 13:15:48 +07:00
decolua and Cursor
9105dd0e25
refactor(open-sse): #11 — dedupe client-facing SSE_HEADERS_CORS
...
Gom block SSE headers + CORS lặp ở streamingHandler + responsesHandler
vào sseConstants.SSE_HEADERS_CORS. Codex format-routing giữ nguyên
(logic-driven theo kim chỉ nam DATA/LOGIC docs 07).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 22:06:59 +07:00
decolua
137a25e9ac
fix(qoder): increase timeouts for reasoning models and improve stream handling
2026-06-08 09:17:33 +07:00
9caea88528
fix(codex): harden streaming timeouts + Responses terminal events
...
Raise stall/connect timeouts to 60s (configurable per-provider), accept
codex response.done, and always emit a terminal response.failed + [DONE]
for Responses passthrough when a stream closes, stalls, or aborts before
a terminal event — preventing codex clients from hanging.
Co-authored-by: jonathanli12 <jonathanli12@users.noreply.github.com >
Co-authored-by: rifuki <rifuki@users.noreply.github.com >
Co-authored-by: nguyenha935 <nguyenha935@users.noreply.github.com >
Co-authored-by: trananhtung <trananhtung@users.noreply.github.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 16:07:43 +07:00
decolua
adae2605bf
Feat : Auto restart after crash
2026-03-14 09:37:29 +07:00
decolua
5954b8f4eb
- Refactor chatCore.js to streamline imports and remove unused functions.
...
- Fix streaming /v1/responses
2026-02-27 11:15:12 +07:00