Commit Graph
5968 Commits
Author SHA1 Message Date
CaIon 9fc9c8f1e3 chore: avoid duplicate shadcn skill exposure 2026-06-23 13:53:52 +08:00
CaIon f8cfbfa4df refactor(log): remove legacy log deletion endpoint and associated types 2026-06-22 19:40:04 +08:00
CaIon f84b7d591f refactor(log): simplify ClickHouse log deletion and add unit tests
Replace the per-batch ClickHouse mutation loop with a single
ALTER TABLE ... DELETE, since ClickHouse DELETE is a heavy mutation
that rewrites data parts and per-batch mutations are pathologically
slow. Add deterministic unit tests covering ClickHouse DSN handling,
main-database rejection, TTL DDL generation, log ordering, request_id
backfill, and display id assignment.
2026-06-22 19:32:32 +08:00
CaIon a162163b48 feat: add persistent system task log cleanup progress 2026-06-22 19:16:53 +08:00
Calcium-Ion 6dc4030fdf feat: support ClickHouse log database (#5663)
* feat: support ClickHouse log database

* feat(log): optimize log deletion process for ClickHouse
2026-06-22 18:41:26 +08:00
feitianbubu 354d0fedba feat: default node name to hostname when NODE_NAME unset (#5659)
Fall back to the OS hostname when NODE_NAME is not configured, so node
identity in audit/usage logs is populated automatically. In container and
Kubernetes deployments the hostname equals the container ID or Pod name,
which stays unique under autoscaling without any manual per-instance config.
2026-06-22 18:08:00 +08:00
Herb Brewer efd6c445ac feat: add passive channel monitoring mode (#5592)
* feat: add passive channel monitoring mode

* fix: clarify passive monitor mode copy
2026-06-22 18:07:44 +08:00
CaIon e5694748c7 chore(web): use tsgo for type checking 2026-06-22 13:38:43 +08:00
CaIon 44e0e68689 feat: add channel test env toggle 2026-06-22 12:45:45 +08:00
Seefs 0b7ae4ea79 fix: StepFun -> Stepfun (#5636) 2026-06-21 12:20:14 +08:00
Delicious233 1f1da5536b fix(usage-logs): show provider icons for CN models (align with classic frontend) (#5631)
resolveModelProvider in model-badge.tsx only covered mainstream providers
(OpenAI/Claude/Gemini/Grok/DeepSeek/Qwen/Doubao/Moonshot/Mistral/Meta/Cohere).
Models from Zhipu (glm-), MiniMax, Xiaomi MiMo, Baidu (ernie), iFlyTek
(spark), Tencent (hunyuan), Baichuan, InternLM, StepFun, and Yi rendered
as grey dots instead of their brand icons in the usage logs table.

Add keyword mappings for these providers, aligning coverage with the
classic frontend's getModelCategories. Icons resolved via @lobehub/icons.
2026-06-21 12:07:31 +08:00
CaIon 5e86644649 feat(dashboard): add sensitive data toggle to flow chart
Add an eye toggle in the flow section header that masks sensitive node
labels (users, tokens, nodes, groups, channels) in the Sankey while keeping
model names visible. Masking only rewrites display text; nodes stay distinct
via their key so graph structure, links, and highlighting are unaffected.
2026-06-20 22:09:04 +08:00
CaIon 8ad83bf62f feat(dashboard): interactive sankey highlighting and persistent filters
- Highlight full paths through a clicked node or link in the flow Sankey,
  dimming unrelated nodes/links instead of removing them
- Disable VChart built-in emphasis to avoid crash, use custom highlight sets
- Initialize models filter dialog from currently applied filters so manual
  time ranges are not overridden by preferences; auto-pick granularity by range
- Lift user charts time range/granularity/limit to dashboard as controlled state
2026-06-20 22:09:03 +08:00
CaIon 061948011c feat: limit dashboard flow nodes 2026-06-20 22:09:03 +08:00
skynono d58029c637 fix(model-pricing): 修复可视化模型定价列表项无法删除 (#5628)
删除时已从草稿中移除模型,但列表为 saved∪draft 并集且优先取 saved,
导致行不消失(isDraftDeleted 计算后未被使用),表现为无法删除。改为过滤
掉已暂存删除的行;并在删除当前正在编辑的行时关闭编辑器,避免从残留面板
保存又把模型写回。
2026-06-20 22:08:29 +08:00
skynono 0c6c1b373a fix(wallet): 修复计费历史弹窗分页与列表重叠 (#5627)
base-ui 的 ScrollArea 仅靠 max-height 无法约束高度:其 Viewport 用
height:100%,当 Root 只有 max-height 而无确定高度时会回退为 auto,
内容撑满并溢出到 Root 之外,盖住下方分页。改用原生 max-h + overflow-y-auto
的 div,列表正确内部滚动,分页作为同级元素干净地排在下方。
2026-06-20 21:35:47 +08:00
skynono 7409174456 fix(log): 修复新前端日志按登录类型(type=7)筛选失效 (#5620)
路由 search 校验枚举 logTypeValues 漏了 '7'(登录),
选「登录」时 type=['7'] 校验失败被 .catch([]) 兜底成空数组,
最终请求丢掉 type 参数。补上 '7' 与 LOG_TYPE_ENUM.LOGIN 对齐。
2026-06-20 20:46:19 +08:00
QuaternijkonandCaIon a68041f7d6 feat(dashboard): add traffic flow sankey chart (#5465)
* feat(dashboard): add traffic flow sankey chart

Add dashboard flow APIs and a Sankey-based flow view with user, optional API key, model, and channel layers.\n\nReuse the dashboard VChart palette, add precise link/node tooltips and interactions, and cover filtering, layer ordering, color stability, and error states with tests.

* feat: build flow chart from quota data

---------

Co-authored-by: CaIon <i@caion.me>
2026-06-20 18:57:47 +08:00
CaIon f9e508bdae perf(channels): optimize card view layout and reduce re-renders
- Show 3-column card grid from xl breakpoint instead of 2xl
- Cap inline priority/weight width to avoid huge values stretching cards
- Collapse right-column grid to content-sized columns, removing wasted space
- Memoize channel columns, context value, upstream-update result, and ChannelCard
  to avoid rebuilding/re-rendering all cards on unrelated state changes
2026-06-20 16:06:06 +08:00
CaIon cb841850b7 fix: update channel icon 2026-06-20 14:06:53 +08:00
CaIon 91ab664c53 feat: add routing reliability management 2026-06-20 13:55:50 +08:00
skynono dfcb74b52d fix: stop repeated allow_wallet_overflow column migration on restart (#5616) 2026-06-20 12:41:20 +08:00
skynono fae39cd90d fix: stop repeated allow_balance_pay column migration on restart (#5361) 2026-06-20 12:41:02 +08:00
CaIon 2c2d92116f refactor: simplify model list 2026-06-20 12:16:42 +08:00
CaIon 0229dc2057 refactor: refine toolbar controls and model drawer 2026-06-19 20:17:45 +08:00
CaIon 9100e15e4e feat: add channel sensitive info toggle 2026-06-19 20:09:18 +08:00
CaIon 4206d7fd58 feat(data-table): enhance mobile card view handling and improve layout logic 2026-06-19 19:58:20 +08:00
CaIon 50b8f2a272 refactor: update styling and improve code readability across multiple components 2026-06-19 19:29:00 +08:00
CaIon a0de4b560e refactor(channels): restructure channel card into left/right columns
Group #id/name and balance on the left and priority/weight plus
response/last-tested on the right. Simplify field labels by dropping
the CJK-unfriendly uppercase/letter-spacing, left-align the right
column, and shorten the "Last Tested" zh label.
2026-06-19 18:30:13 +08:00
CaIon 0467d54014 chore: update frontend branding copy 2026-06-19 18:14:40 +08:00
CaIon 29c3dcb927 feat(table): support card layout 2026-06-19 17:43:13 +08:00
CaIon 68585568d6 feat(data-table): add reusable card/table view toggle
Add an opt-in card view to the shared data-table stack (DataTablePage),
toggled via a segmented control in the toolbar with per-table localStorage
persistence. Cards render generically from column meta by default, with an
optional renderCard slot. Defaults to table-only so existing pages are
unchanged.

Wire it into the channels page with a bespoke ChannelCard that reuses every
column's cell renderer, preserving all table information and interactions
(selection, inline priority/weight, balance refresh, status, actions, tag
expand).
2026-06-19 17:43:11 +08:00
Seefs 3fcd741c6e refactor: codex usage ui (#5595)
* refactor: codex usage ui

* feat: show Codex reset credit details

* feat: add Codex usage reset flow
2026-06-19 16:07:32 +08:00
CaIon 6bd69f3edf feat(ui): enhance endpoint selection and date picker 2026-06-19 15:10:50 +08:00
QuentinHsu 5b4839fa37 chore(web): add default frontend oxc tooling (#5585)
- add oxlint and oxfmt configuration for web/default quality checks

- replace ESLint and Prettier scripts with protected-header Oxc formatting

- update frontend workspace dependencies for oxlint and oxfmt
2026-06-19 14:58:53 +08:00
CaIon 0c806db996 refactor(theme): update color classes 2026-06-19 14:53:44 +08:00
CaIon 490395b2f8 feat(performance): enhanced metrics display 2026-06-19 14:27:16 +08:00
CaIon 6ad5dbb641 fix(main): prevent refetching on window focus to optimize performance 2026-06-19 12:45:20 +08:00
CaIon f7dae5cbe6 fix(drawing): update timestamp formatting to include milliseconds 2026-06-18 21:38:55 +08:00
CaIon f4575fe664 feat(format): add locales support to number formatting 2026-06-18 21:30:05 +08:00
CaIon cfc9bbcdbf feat(logs): improve layout 2026-06-18 21:29:55 +08:00
CaIon 55b00fcf09 feat(advanced-custom): remove fallback option and enhance path matching for advanced custom routes 2026-06-18 20:29:24 +08:00
Seefs 3f2c0aeda7 feat: advanced custom channel (#5590) 2026-06-18 18:00:27 +08:00
CaIon 21d4d18dfc feat(rankings): remove 'all' period option from rankings and related components 2026-06-18 17:56:45 +08:00
CaIon 50784c10ee feat(api): change subscription product options and catalog endpoints to use GET method 2026-06-18 17:15:05 +08:00
CaIon b8f5ba4a31 feat(overview): update setup guide expansion logic 2026-06-18 16:59:12 +08:00
CaIon fd557064d3 feat(subscription): add descriptions for plan purchase amounts in multiple languages 2026-06-18 16:53:57 +08:00
CaIon f6c260437c feat(subscription): add support for wallet overflow and downgrade group functionality in subscription plans 2026-06-18 16:44:12 +08:00
CaIon 4e8b5e9b13 feat(data-table): add column visibility storage functionality for API keys, channels, and usage logs 2026-06-18 16:03:06 +08:00
CaIon 1aa77e6698 fix(ui): enforce HTTPS for backend-provided image URLs and improve URL validation 2026-06-18 14:56:44 +08:00