Skip to content

[pull] master from BingZi-233:master - #7

Open
pull[bot] wants to merge 225 commits into
fishxcode:masterfrom
BingZi-233:master
Open

[pull] master from BingZi-233:master#7
pull[bot] wants to merge 225 commits into
fishxcode:masterfrom
BingZi-233:master

Conversation

@pull

@pull pull Bot commented Mar 4, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

BingZi-233 and others added 30 commits November 11, 2025 21:13
- 集成 shadcn/ui 组件库及相关依赖(@lobehub/icons, lucide-react, class-variance-authority 等)
- 实现核心业务逻辑模块:
  • checks.ts: API 健康检查逻辑
  • poller.ts: 自动轮询器,支持自定义刷新间隔
  • status.ts: 状态管理
  • history-store.ts: 历史记录持久化
  • polling-config.ts: 轮询配置管理
- 完善 README 文档,添加功能说明、环境变量配置指南和快速开始步骤
- 更新全局样式,支持明暗主题切换
- 配置数据持久化,将运行时历史数据(data/check-history.json)排除版本控制
- 更新页面元数据和语言设置为中文
- 更新 .gitignore: 排除日志文件和 IDEA 配置,同时保留 .env.example
- 添加 .env.example 提供环境变量配置模板
- 添加 data 目录用于存储运行时数据
- 将检查历史记录从本地 JSON 文件迁移到 Supabase 数据库
- 添加 Supabase 客户端配置和相关依赖(@supabase/supabase-js, @supabase/ssr)
- 更新 history-store.ts 实现数据库读写操作和自动清理过期数据
- 配置 MCP 服务器以支持 Supabase 集成
- 添加 Supabase 环境变量示例配置
- 修复类型断言问题(lib/checks.ts)
- 移除不再需要的本地数据目录
主要改动:
- 集成 @vercel/speed-insights 用于性能监控
- 将 OpenAI、Anthropic、Gemini 的健康检查改为流式响应
- 实现各 AI 服务商的流式响应解析器
- 优化响应时间统计和错误处理

这些改动提升了健康检查的准确性和性能监控能力
- 将所有提供商的 max_tokens 减少到 1
- 简化消息内容以减少请求体积
- OpenAI: 移除不必要的 system 消息
- Gemini: 添加 generationConfig 限制输出 token
之前的实现会删除所有超过 1 小时的数据,导致历史记录丢失。
现在改为每个提供商独立保留最新 60 条记录,确保数据不会被过度清理。
## 数据库改造
- 创建 check_configs 表存储配置,使用 UUID 作为主键
- 重构 check_history 表,添加外键关联,移除冗余字段
- 创建 v_latest_check_results 和 v_check_stats 视图
- 添加索引、约束和自动更新触发器

## 代码重构
- lib/checks.ts: 新增 loadProviderConfigsFromDB() 从数据库加载配置
- lib/history-store.ts: 修改为仅写入必要字段,使用 JOIN 查询
- lib/dashboard-data.ts: 更新为异步加载配置
- lib/poller.ts: 移除环境变量引用

## 文档更新
- 移除 .env 中所有 CHECK_<ID>_* 配置
- 更新 .env.example 添加数据库配置说明
- 更新 README.md 添加完整的数据库配置管理文档

## 优势
- 使用 UUID 作为主键,更加规范和安全
- 支持动态启用/禁用配置,无需重启应用
- 数据结构更清晰,便于后续扩展 Web 管理界面
- 配置与历史记录分离,符合规范化设计
将整体代码按职责重新组织为清晰的分层结构:

- lib/types/: 统一类型定义,包含 provider、check、database、dashboard 类型
- lib/providers/: Provider 检查逻辑,每个 provider 独立文件
- lib/database/: 数据库操作,配置加载和历史记录管理
- lib/utils/: 工具函数,URL 处理、错误处理、className 合并等
- lib/core/: 核心模块,全局状态、轮询器、数据聚合、状态元数据

主要改进:
- 单一职责:每个模块专注单一功能,文件不超过 200 行
- 类型安全:统一的类型导出和明确的类型定义
- 易于扩展:新增 provider 只需添加一个文件
- 清晰边界:providers 负责检查,database 负责存储,core 负责协调

新增 CLAUDE.md 项目文档,记录架构设计和开发约定
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
- 提升页面最大宽度从 1152px 到 1600px
- 当卡片数量大于 4 时,超宽屏(xl)自动切换为三列布局
- 改善多配置场景下的空间利用率
- 新增官方状态轮询器,独立于 Provider 检查,定期获取 AI 服务商官方状态
- 实现 OpenAI 官方状态 API 集成,支持获取服务健康度和受影响组件信息
- 在 Dashboard 中展示官方状态,包含正常/降级/故障/未知四种状态
- 新增官方状态类型定义和配置管理(支持环境变量配置检查间隔)
- 提供状态缓存机制,避免频繁请求官方 API
- 预留 Gemini 和 Anthropic 官方状态检查接口

核心文件:
- lib/official-status/: 官方状态检查器实现
- lib/core/official-status-poller.ts: 独立轮询器和缓存管理
- lib/types/official-status.ts: 官方状态类型定义
- lib/core/status.ts: 新增官方状态元数据
- 新增 lib/official-status/anthropic.ts 实现 Claude 官方状态 API 集成
- 调用 https://status.claude.com/api/v2/status.json 获取服务状态
- 支持解析 indicator 字段(none/minor/major/critical)映射到健康状态
- 更新官方状态检查器入口,启用 Anthropic 状态检查
- 完整支持超时、错误处理和状态描述解析

状态映射规则:
- none → operational (所有系统正常)
- minor → degraded (轻微问题/性能降级)
- major/critical → down (重大故障/服务中断)
- 更换 API 端点从 /status.json 到 /summary.json
- 新增组件级状态解析,支持识别受影响的具体服务
- 优化状态判断逻辑,同时考虑整体 indicator 和组件状态
- 增强状态消息,显示受影响组件列表(如"API 平台, claude.ai 受影响")
- 支持更细粒度的组件状态识别:
  * operational: 正常运行
  * degraded_performance: 性能降级
  * partial_outage: 部分中断
  * major_outage: 重大故障
- 与 OpenAI 检查器保持一致的组件解析模式
- 在 README 中添加 docs/ 目录文档索引,便于快速导航
- 为 dashboard-view、provider-icon、status-timeline 等组件添加详细 JSDoc 注释
- 增强 dashboard-data 模块的职责说明与参数文档
- 移除 config-loader 中的调试日志,减少控制台输出
- 新增 docs/ARCHITECTURE.md: 系统架构与模块边界说明
- 新增 docs/OPERATIONS.md: 运维部署与排障手册
- 新增 docs/EXTENDING_PROVIDERS.md: Provider 扩展开发指南
- 新增 supabase/schema.sql: 数据库表结构定义
…-4.1.1

chore(deps): bump js-yaml from 4.1.0 to 4.1.1
Install ai-sdk, migrate-ai-sdk-v6-to-v7, migrate-radix-to-base,
next-cache-components-adoption, next-cache-components-optimizer,
next-dev-loop and next-partial-prefetching-adoption into .agents/skills,
with matching .claude/skills symlinks. Refresh the shadcn skill (new
registry.md and rules/chat.md) and record all hashes in skills-lock.json.
- ai 5.0.205→7.0.41,@ai-sdk/* 全部升级到最新
- createGoogleGenerativeAI → createGoogle
- 手动 AbortController 超时改为 streamText 内置 timeout 选项
- providerOptions.openai.reasoningEffort 改为顶层 reasoning 参数
- logMessage 改为提取 API 返回错误信息的单行紧凑格式
- 新增 engines.node >= 22(AI SDK v7 要求)
- next.config.ts 顶层启用 cacheComponents
- 移除 6 个路由的 dynamic/revalidate 导出(默认即动态,行为不变)
- /group/[groupName] 的 await params 推入 Suspense 子组件,路由变为 Partial Prerender
- eslint-config-next 同步升级
全站字体实际只使用 JetBrains Mono,Geist/Geist_Mono 加载后从未被引用,
移除后减少 2 个字体文件下载;--font-sans 回退到 --font-mono
- history: append 后自动 prune 节流为 12 小时一次
- dashboard/group: 独立查询并行化(Promise.all)
- v1/status: 增加内存缓存 + ETag/304
- availability: config_id 过滤下推,缓存合并写入
- admin client: 模块级单例,避免重复构建
json-file 默认无轮转,长期运行日志无限增长;
local driver + 10m×3 有界存储,docker logs 行为不变
无参 GET 路由在 Cache Components 下会被构建期预渲染,
Docker/CI 构建环境无 Supabase 凭据导致 createAdminClient 抛错;
handler 内 await connection() 声明运行时动态
维护/错误态改读 STATUS_META;dark 令牌与通知横幅对齐新色板;去掉 font-heading 死引用。
在 Claude 项目设置中开启 superpowers@claude-plugins-official。
- 卡片主标题改为 model id,副行显示显示名
- unwrap AI_RetryError,hover/入库展示 [403] Forbidden 等核心文案
窄屏下时间戳被折行、刷新按钮拉高,排序/周期切换组撑出容器。

- 顶部行拆分为 Logo 行与状态行,GitHub/主题切换窄屏右对齐
- 元信息 whitespace-nowrap + truncate,刷新按钮 shrink-0
- 筛选栏 ml-auto 降级为 sm:ml-auto,两组切换按钮窄屏均分宽度
- 骨架屏同步新断点,避免首屏跳动
- 首页 header 的 Activity 方块图标改为 /favicon.png(next/image,priority)
- 标题右侧新增「Linux.do」外链胶囊按钮,窄屏 ml-auto 右对齐
- 骨架屏同步新增按钮占位
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants