本文用于锁定 /dashboard/logs 的真实入口与关键调用链边界,避免后续需求实现与验收口径跑偏。
/dashboard/logssrc/app/[locale]/dashboard/logs/page.tsx
getSession()(未登录重定向到 /login)UsageLogsDataSection(src/app/[locale]/dashboard/logs/_components/usage-logs-sections.tsx)当前页面实际使用“虚拟列表”链路:
UsageLogsViewVirtualized(src/app/[locale]/dashboard/logs/_components/usage-logs-view-virtualized.tsx)
parseLogsUrlFilters()(src/app/[locale]/dashboard/logs/_utils/logs-query.ts)buildLogsUrlQuery()(src/app/[locale]/dashboard/logs/_utils/logs-query.ts)UsageLogsFiltersVirtualizedLogsTableUsageLogsStatsPanel仓库内仍存在“非虚拟表格”实现(目前不被路由引用,属于历史/备用路径):
UsageLogsView(src/app/[locale]/dashboard/logs/_components/usage-logs-view.tsx)UsageLogsTable(src/app/[locale]/dashboard/logs/_components/usage-logs-table.tsx)src/app/[locale]/dashboard/logs/_utils/logs-query.ts
sessionId:字符串(trim 后空值不落盘)startTime/endTime:毫秒时间戳src/app/[locale]/dashboard/logs/_utils/time-range.ts
endExclusive = endInclusive + 1s)created_at >= startTime 且 created_at < endTimesrc/actions/usage-logs.ts#getUsageLogsBatchsrc/repository/usage-logs.ts#findUsageLogsBatchsrc/actions/usage-logs.ts#getUsageLogsStatssrc/repository/usage-logs.ts#findUsageLogsStatssrc/actions/usage-logs.ts#exportUsageLogssrc/repository/usage-logs.ts#findUsageLogsWithDetailssrc/actions/usage-logs.ts#generateCsvsrc/actions/usage-logs.ts#getUsageLogSessionIdSuggestionssrc/repository/usage-logs.ts#findUsageLogSessionIdSuggestionsSESSION_ID_SUGGESTION_MIN_LEN(src/lib/constants/usage-logs.constants.ts)SESSION_ID_SUGGESTION_MAX_LEN(src/actions/usage-logs.ts 内对输入 trim 后截断)SESSION_ID_SUGGESTION_LIMITterm%),不再支持包含匹配(%term%)% / _ / \\ 会被统一转义,避免被当作 LIKE 通配符session_id LIKE '<escapedTerm>%' ESCAPE '\\'src/repository/_shared/like.ts#escapeLikeabc 可能命中 xxxabcxxx(包含匹配)abc...(前缀匹配)% / _ 可主动触发通配% / _ 按字面量处理(例如输入 %a 只匹配以 %a 开头的 session_id)idx_message_request_session_id(message_request.session_id,partial: deleted_at IS NULL)idx_message_request_session_id_prefix
varchar_pattern_opsdeleted_at IS NULL AND (blocked_by IS NULL OR blocked_by <> 'warmup')drizzle/0055_neat_stepford_cuckoos.sql前端(logs 页面内聚):
src/app/[locale]/dashboard/logs/_utils/logs-query.tssrc/app/[locale]/dashboard/logs/_utils/time-range.tssrc/app/[locale]/dashboard/logs/_components/usage-logs-filters.tsxsrc/app/[locale]/dashboard/logs/_components/virtualized-logs-table.tsxsrc/app/[locale]/dashboard/logs/_components/usage-logs-table.tsxsrc/app/[locale]/dashboard/logs/_components/usage-logs-stats-panel.tsx后端(Actions/Repo):
src/actions/usage-logs.ts
getUsageLogsBatch/getUsageLogsStats/exportUsageLogs/getUsageLogSessionIdSuggestionssrc/repository/usage-logs.ts
findUsageLogsBatch/findUsageLogsWithDetails/findUsageLogsStats/findUsageLogSessionIdSuggestionsi18n(用户可见文案):
messages/*/dashboard.json(dashboard.logs.filters.* / dashboard.logs.columns.*)在范围内(本次需求直接相关):
sessionId 精确筛选 + URL 回填 + UI 展示(列/复制/tooltip)endExclusive 语义对齐(< endTime)不在范围内(需另开 issue/评审确认后再做):