📋 All Versions English | 简体中文
Release Date: 2026-03-10 (47 commits since main)
1.10.2 is an observability-focused release centered on Request Trace. It introduces inbound and outbound HTTP request tracing, a new admin request trace workspace, and configurable sampling, filtering, redaction, and retention policies, together with export, compare, bulk delete, and scheduled cleanup support. It also includes a small set of admin dashboard, message UX, and Anthropic compatibility improvements.
- 🔍 Two-way capture: adds
InboundRequestTraceMiddlewareandOutboundRequestTraceHandlerto trace both inbound user requests and outbound service-to-service HTTP calls. - 🧭 Trace metadata: records
TraceId, user, source, HTTP method, full URL, status code, error type, and key timestamps for request start, request body completion, response header completion, and response body completion. - 📦 Body and raw payload capture: stores request/response headers, text bodies, raw binary payloads, and body length statistics for troubleshooting encoding, compression, and gateway passthrough issues.
- 🔗 Broader backend coverage: request tracing is wired into multiple outbound HTTP call paths, making it easier to correlate upstream requests with downstream dependency behavior.
- 🧑💼 Dedicated admin page: adds
/admin/request-traceto the admin navigation for centralized trace inspection. - 🔎 Advanced filtering: supports filtering by time range, URL, TraceId, username, and direction, with query state preserved in the URL for refresh and sharing.
- 🧱 24 selectable columns: allows per-scenario column selection and persists visible columns in URL query parameters.
- 👀 Details and downloads: each trace supports full request/response header and body inspection,
.dumpexport, and raw request/response binary downloads, with explicit guidance when the response body is binary-only. - 🆚 Two-trace compare: supports side-by-side comparison for two selected traces, with an option to hide identical fields.
- 📤 Export and cleanup: supports Excel export for the current filter set (up to 10000 rows) and bulk deletion by current filters.
- ⚙️ Independent inbound/outbound config: inbound and outbound tracing can be enabled and tuned separately for sample rate, minimum duration, header/body capture, and retention days.
- 🎯 Include/exclude filters: supports include and exclude rules by source, URL patterns, HTTP methods, and status codes, with quick presets for common gateway scenarios.
- 🕶️ Redaction improvements: adds configurable URL parameter redaction and improves default redaction ordering to reduce the risk of sensitive values being stored.
- ♻️ Hot refresh: trace configuration is stored in the database config table and refreshed by a background service without requiring a restart.
- 🗄️ Two-table storage model: adds
RequestTraceandRequestTracePayload, separating metadata from large payload content and keeping them consistent through cascading delete. - 📇 Indexes and scheduled cleanup: adds indexes on
StartedAt,UserId,TraceId, andScheduledDeleteAt; scheduled cleanup runs every 30 minutes to remove expired traces. - 🚦 Queue protection: adds
RequestTraceQueue:Capacityand uses a bounded in-memory queue withDropWritebehavior to protect the main request path under pressure. - 🧵 Async persistence: tracing persistence is queue-based and asynchronous, reducing synchronous I/O pressure while keeping multi-stage timing and exception capture intact.
- 🧪 Edge-case test coverage: adds unit tests for
CaptureStreams,ObservedHttpContent,RequestTraceHelper,RequestTracePersistService, andRequestTraceQueue. - 🛡️ Stability fixes: fixes missing 401 inbound traces, empty-pattern matching, details dialog overflow, redundant payload deletion, and binary/JSON presentation issues.
- 🧰 Config capacity: expands
Config.ValuetoNVARCHAR(MAX)so larger JSON trace configs can be stored safely.
- 📊 Dashboard summary cards: admin summary cards now compute chat count and active users based on the currently selected time range.
- ✂️ User message collapse: long user messages can now collapse inside the message bubble with an approximately 5.5-line preview.
- 🧠 Thinking display refinement: removes the fixed max-height cap from
ThinkingMessageexpansion so long reasoning content behaves more naturally.
- 🔧 Anthropic compatibility fixes: fixes lost tool results during Anthropic message conversion (#122) and improves thinking signature compatibility for the DeepSeek Anthropic protocol path.
- 🔤 Readable MCP JSON: preserves readable Unicode when fetching MCP tool input schemas instead of over-escaping JSON.
- ⬆️ Frontend dependency update: upgrades the frontend to
Next.js 16.1.6and aligns related browser compatibility dependencies.
- Fixes Request Trace default redaction ordering and field ordering issues.
- Fixes request/response capture timing so traces can start earlier and body capture becomes more complete.
- Fixes scrolling and overflow behavior in the Request Trace details dialog for long headers and long bodies.
- Simplifies the include/exclude rule organization in the trace config dialog to reduce configuration friction.
- Run DB migration:
src/scripts/db-migration/1.10/1.10.2.sql- Adds the
RequestTracemain table and theRequestTracePayloadpayload table - Adds indexes for
StartedAt,UserId,TraceId, andScheduledDeleteAt - Expands
Config.ValuetoNVARCHAR(MAX)to support larger JSON configuration payloads
- Adds the
- New config keys:
RequestTraceQueue:Capacity: controls the in-memory request trace queue capacity, default1000RequestTraceCleanup:Enabled: controls scheduled auto-cleanup, defaulttrue
- Upgrading does not automatically enable Request Trace for all traffic; the actual capture scope still depends on the inbound/outbound tracing rules, sample rate, and retention policy configured by the admin.
- If you plan to enable request tracing in a high-concurrency environment, set sample rate, URL filters, and retention days first to avoid unnecessary database write and storage pressure.