v0.11.1: 权限体系重构 + AI管线优化 + 内容整理
This commit is contained in:
+275
@@ -0,0 +1,275 @@
|
||||
# 追光AI 变更日志
|
||||
|
||||
## v0.11.1 (2026-05-22) - AI发现管线质量优化
|
||||
|
||||
### 全链路测试
|
||||
- 跑通全部AI自动化管线:GitHub搜索 → DeepSeek评测 → 入库 → 内容生成
|
||||
- 2个脚本(automatic-review + daily-discover) + 4个API端点全部验证通过
|
||||
- 连测创建12条技能+评测记录,DeepSeek生成1篇日报+长文+视频脚本+社交卡片
|
||||
|
||||
### 质量过滤修复
|
||||
- **非AI项目过滤**: auto-review.mjs + daily-discover.mjs 新增 `isValidAIProject()` 函数
|
||||
- 关键词过滤: `book/guide/tutorial/awesome/interview/notes/handbook/cheatsheet/roadmap/curated-list` 等
|
||||
- 语言过滤: 纯Markdown/HTML文档Repo(Stars<5000)自动拒绝
|
||||
- 主题过滤: 有GitHub Topics的Repo必须包含AI相关Topic(ai/llm/rag/agent/gpt等)
|
||||
- 清理5条误入库非AI数据:AgentGuide、JavaGuide、pathway、StableDiffusionBook、Claude-Code-Everything
|
||||
|
||||
### JSON解析健壮性
|
||||
- 新增 `extractJSON()` 统一工具函数 → `src/lib/utils.ts`
|
||||
- 支持markdown代码块包裹(`\`\`\`json...\`\`\``)、花括号/方括号容错
|
||||
- 替换 deepseek.ts、auto-review.mjs、daily-discover.mjs、daily-reports/generate 的旧解析逻辑
|
||||
- 新增 `scripts/test-content-generation.mjs` 全管线测试脚本
|
||||
|
||||
### 新增脚本
|
||||
- `scripts/cleanup-non-ai.mjs` — 一键清理误入库非AI技能数据
|
||||
|
||||
---
|
||||
|
||||
## v0.11.0 (2026-05-22) - 权限体系重构
|
||||
|
||||
### 架构变更
|
||||
- **新增数据模型**: `Role`(角色), `Permission`(权限点), `RolePermission`(角色-权限关联) 三张表
|
||||
- **User 模型**: 新增 `roleId` 字段关联 `Role`,与原有 `role` 字符串字段并行(向后兼容)
|
||||
- 默认角色:**超级管理员**(Admin, 全部53权限)、**VIP成员**(Vip, 19个精选权限)
|
||||
|
||||
### 权限体系
|
||||
- **53个精细化权限点**,按页面分组管理:
|
||||
- 工具管理 14项 · 技能库 12项 · 评测管理 8项
|
||||
- AI发现 7项 · 内容管理 8项 · 系统管理 4项
|
||||
- 所有后台按钮/操作均已对应权限点,可逐个勾选控制
|
||||
|
||||
### 新增页面
|
||||
- **`/admin/roles` 角色权限管理**: 左侧角色列表 + 右侧按分组的权限勾选网格
|
||||
- 新建/删除自定义角色(系统角色受保护)
|
||||
- 分组全选/取消全选
|
||||
- 保存按钮实时同步到数据库
|
||||
|
||||
### 新增 API
|
||||
- `GET/POST /api/admin/roles` — 角色列表/创建
|
||||
- `PUT/DELETE /api/admin/roles/[id]` — 角色编辑/删除
|
||||
- `GET /api/admin/permissions` — 全部权限点列表
|
||||
- `GET /api/admin/user-permissions` — 用户权限查询(支持roleId/userId/当前用户)
|
||||
|
||||
### 鉴权升级
|
||||
- **middleware.ts**: 从硬编码 `role==="admin"` 改为认证检查 + 路由层委派
|
||||
- **admin-auth.ts**: `requireAdmin()` 兼容旧 `role` 字符串 + 新 `roleId` 关联角色双重逻辑
|
||||
- 新增 `requirePermission(key)` — 细粒度权限点校验
|
||||
- 新增 `getAllUserPermissions()` — 获取当前用户全部权限集合
|
||||
|
||||
### 前端工具
|
||||
- 新增 `usePermission()` hook — 提供 `can(key)`, `canAny(keys)`, `canAll(keys)` 方法
|
||||
- 侧边栏新增"角色权限"菜单入口
|
||||
|
||||
### 种子脚本
|
||||
- `scripts/seed-permissions.mjs` — 一键初始化全部权限点+角色
|
||||
|
||||
---
|
||||
|
||||
## v0.10.1 (2026-05-22) - 全面修复与优化
|
||||
|
||||
### 安全修复
|
||||
- **Admin API 鉴权增强**: 中间件matcher新增`/api/admin/:path*`路由保护,未登录或非管理员角色返回403
|
||||
- 所有关键admin路由已内置`requireAdmin()`双重校验(中间件+路由层防御深度)
|
||||
|
||||
### Bug 修复
|
||||
- **Category ID 动态化**: `skill-discoverer.ts`、`daily-discover.mjs`、`auto-review.mjs`三个文件的硬编码Category ID(120-127)替换为数据库查询+关键词匹配,消除分类错配风险
|
||||
- **reviews统计卡片**: 修复评测管理页面统计(已发布/草稿/平均评分)只显示当前页数据的问题,改为从全局groupBy统计获取
|
||||
- **内容生成日志完善**: `/api/admin/reviews/[id]/generate`成功和失败均写入`ReviewGenerationLog`
|
||||
|
||||
### 功能增强
|
||||
- **待审核技能编辑增强**: 编辑对话框新增"功能特性(JSON)"和"标签(逗号分隔)"输入框,支持直接编辑上传
|
||||
- **已发布技能编辑增强**: 编辑对话框新增"分类"下拉选择、"功能特性(JSON)"、"标签"字段,功能对齐待审核页面
|
||||
- **日报AI一键生成**: 新增`/api/admin/daily-reports/generate`端点,前端新增"一键AI生成"按钮,直接调用DeepSeek生成日报并自动填充表单,替代原有的"复制提示词→粘贴JSON"手动流程
|
||||
|
||||
### 内部改进
|
||||
- `ReviewGenerationLog`确认已在`skill-discoverer.ts`和两个脚本中正常使用,非僵尸表
|
||||
- 三个脚本文件统一使用数据库查询获取分类ID,消除代码不一致
|
||||
|
||||
---
|
||||
|
||||
## v0.10.0 (2026-05-20) - 五维评测系统
|
||||
|
||||
### 新增
|
||||
- **数据库扩展**: SkillReview模型(五维评测)、ReviewGenerationLog模型(评测日志)、ReviewStatus枚举(DRAFT/PUBLISHED/REJECTED/OUTDATED)
|
||||
- **Skill模型扩展**: 新增lastReviewedAt(最近评测时间)、githubStarsHistory(Star历史)字段,关联skillReview
|
||||
- **GitHub数据采集模块** (`src/lib/github.ts`): octokit封装,支持searchHotRepos搜索热门仓库、getRepoReadme获取README
|
||||
- **DeepSeek评测生成模块** (`src/lib/deepseek.ts`): OpenAI兼容接口,五维评测提示词模板,综合分自动校验
|
||||
- **自动化评测脚本** (`scripts/auto-review.mjs`): GitHub搜索→README获取→DeepSeek评测→入库全流程,每日限制8个
|
||||
- **评测API** (`/api/skills/[slug]/review`): 获取PUBLISHED状态的五维评测数据
|
||||
- **SkillReviewCard组件**: Chart.js雷达图+维度详情卡片,dynamic import(ssr:false),紫色主色调
|
||||
- **技能详情页集成**: 在标签卡片和评论之间展示五维评测雷达图
|
||||
- **发布评测脚本** (`scripts/publish-reviews.mjs`): 批量将DRAFT评测改为PUBLISHED
|
||||
- **测试脚本**: test-github.mjs(GitHub API)、test-deepseek.mjs(DeepSeek API)
|
||||
- **新依赖**: octokit, openai, chart.js, react-chartjs-2
|
||||
|
||||
### 修改
|
||||
- .env新增GITHUB_TOKEN、DEEPSEEK_API_KEY配置
|
||||
- 开发规则更新: 允许服务端脚本调用外部AI API,前端仍禁止
|
||||
- 迁移记录: 第10次迁移 add_skill_reviews
|
||||
|
||||
### 踩坑
|
||||
- Prisma 7.8需通过PrismaMariaDb适配器初始化,脚本中不能直接new PrismaClient()
|
||||
- Chart.js组件需dynamic import + ssr:false,不支持服务端渲染
|
||||
- 服务器环境SSL证书问题: 运行脚本需设置$env:NODE_TLS_REJECT_UNAUTHORIZED="0"
|
||||
- Chart.js font.weight只接受bold/normal/bolder/lighter,不接受数字字符串如"500"
|
||||
|
||||
---
|
||||
|
||||
## v0.9.0 (2026-05-09)
|
||||
|
||||
### 重大变更
|
||||
- **移除所有外部AI API调用**: discover-tools、discover-skills、discover-news三个API不再调用DeepSeek API,改为接收前端提交的JSON数据
|
||||
- **端口迁移**: 开发端口从3100-3110迁移至8301-8310,默认端口8301
|
||||
- **五大操作指令模式重构**: 从"一键调用API"模式改为"提示词+JSON粘贴导入"模式
|
||||
|
||||
### 新增
|
||||
- AI新闻发现页面 `/admin/discover-news`:3步流程(复制提示词→粘贴JSON→查看日报),6大分类+热度评分
|
||||
- AI新闻发现API `POST /api/admin/discover-news`:接收新闻JSON数组,自动生成今日AI日报
|
||||
- AI新闻发现API `GET /api/admin/discover-news`:获取今日AI日报
|
||||
- `fetchLogoWithMethod()` 函数:返回Logo URL + 成功方法名(如"HTML Link图标"、"OG/Twitter图片"等)
|
||||
- 检测AI工具页面增加Logo抓取功能:检测时同步抓取缺失Logo,记录成功方法名统计
|
||||
- 检测AI工具页面增加Logo抓取方法统计面板:按成功次数排序展示每种方法的效果
|
||||
- 检测AI工具页面增加Logo新抓取成功列表:展示Logo预览和使用的抓取方法名
|
||||
- 导入10天100条真实AI新闻(4月30日-5月9日)
|
||||
|
||||
### 修改
|
||||
- discover-tools API: 从调用DeepSeek API改为接收 `{tools: [...], categoryId}` JSON数组
|
||||
- discover-skills API: 从调用DeepSeek API改为接收 `{skills: [...], categoryId}` JSON数组
|
||||
- discover-tools页面: 从一键发现改为4步流程(选分类→复制提示词→粘贴JSON→抓取Logo)
|
||||
- discover-skills页面: 从一键发现改为3步流程(选分类→复制提示词→粘贴JSON)
|
||||
- discover-news页面: 从一键发现改为3步流程(复制提示词→粘贴JSON→查看日报)
|
||||
- check-tools API: 增加Logo抓取功能,返回logoFetched/logoMethod/logoUrl字段,GET请求获取HTML用于Logo抓取
|
||||
- check-tools页面: 默认选中待审核工具,4步流程卡片,增加Logo抓取方法统计和新抓取成功列表
|
||||
- update-skills页面: 去掉复制提示词,保留快速更新Star
|
||||
- logo-fetcher.ts: 新增 `fetchLogoWithMethod()` 导出,每种成功方法返回中文名称
|
||||
- package.json: 端口3100→8301
|
||||
- .env: NEXTAUTH_URL端口3100→8301
|
||||
- restart.ps1: 端口扫描范围3100-3110→8301-8310
|
||||
- project_rules.md: 端口规范8301-8310,新增强制要求;五大操作指令改为提示词+JSON粘贴模式;禁止硬编码API Key;禁止调用外部AI API
|
||||
|
||||
### 删除
|
||||
- 移除3个API文件中的DeepSeek API调用逻辑(硬编码API Key、callDeepSeek函数等)
|
||||
- 移除discover-tools页面的"一键发现"按钮和DeepSeek API调用
|
||||
- 移除discover-skills页面的"一键发现"按钮和DeepSeek API调用
|
||||
- 移除discover-news页面的DeepSeek API调用
|
||||
- 清除旧的虚构AI新闻数据
|
||||
|
||||
---
|
||||
|
||||
## v0.8.0 (2026-05-05)
|
||||
|
||||
### 新增
|
||||
- 用户系统:邮箱注册/登录、GitHub OAuth登录、用户中心页面
|
||||
- 收藏功能:工具/技能收藏、收藏列表页面、乐观更新按钮
|
||||
- 浏览历史:自动记录浏览过的工具/技能
|
||||
- 评论评价系统:ReviewSection组件,支持评分和文字评论
|
||||
- LoginModal组件:登录/注册弹窗,支持模式切换
|
||||
- FavoriteButton组件:收藏按钮,乐观更新
|
||||
- CategorySidebar组件:通用分类侧边栏
|
||||
- 用户API: `/api/user/favorites`, `/api/user/history`
|
||||
- 评论API: `/api/reviews`
|
||||
- 首页API: `/api/homepage`(含嵌套分类结构)
|
||||
|
||||
### 改进
|
||||
- **UI主题重构:暗色→浅色主题**
|
||||
- 全局CSS变量从暗色切换为浅色(background: 210 20% 98%, card: 0 0% 100%等)
|
||||
- 所有页面和组件适配浅色主题(7个前台页面+12个后台页面+5个组件)
|
||||
- 颜色规范:文字-600/-700、背景-50、边框-200/60
|
||||
- 卡片样式:bg-white/60/80 + shadow-sm,hover时bg-white + shadow-md
|
||||
- 输入框:bg-muted/50 focus:bg-white focus:ring-2 focus:ring-primary/10
|
||||
- 毛玻璃效果:bg-white/80 backdrop-blur-xl
|
||||
- 渐变文字:蓝→紫→粉渐变保持科技感
|
||||
- 移除noise纹理,新增dot-grid点阵背景
|
||||
- **层级分类导航重构**
|
||||
- 首页/技能页:左侧固定一级分类导航 + 右侧二级分类标签切换
|
||||
- 每个一级类目下有"全部"标签显示该分类下所有内容
|
||||
- 左侧导航sticky跟随页面滚动
|
||||
- **安全加固**
|
||||
- 新增admin-auth.ts中间件,requireAdmin函数
|
||||
- 28个后台API端点全部添加requireAdmin中间件验证
|
||||
- 移除硬编码API密钥,改用环境变量
|
||||
- Header组件:滚动时bg-white/80 backdrop-blur-2xl,搜索框bg-muted/50
|
||||
- Logo位置修复:Header容器宽度统一为max-w-[1440px]
|
||||
|
||||
### 修复
|
||||
- 修复webpack缓存损坏导致的页面加载失败(清除.next目录)
|
||||
- 修复左侧导航栏sticky定位不生效(flex容器添加self-start)
|
||||
- 修复Logo被左侧导航遮挡(统一容器宽度)
|
||||
|
||||
---
|
||||
|
||||
## v0.5.0 (2026-05-03)
|
||||
|
||||
### 新增
|
||||
- 待审核工具页面批量多选功能:全选/批量通过/批量拒绝
|
||||
- 待审核技能页面批量多选功能:全选/批量通过/批量拒绝
|
||||
- 待审核技能一键全部通过功能
|
||||
- 所有列表页面分页功能(每页20条)
|
||||
- 批量拒绝API: `/api/admin/pending/batch-reject`, `/api/admin/pending-skills/batch-reject`
|
||||
- 一键全部发布API: `/api/admin/pending-skills/publish-all`
|
||||
- AI技能自动探索API: `/api/admin/discover-skills/run`
|
||||
- 探索脚本存入系统配置,discover-skills页面展示脚本和调用说明
|
||||
- 一键自动探索按钮(服务端调用DeepSeek API)
|
||||
- Logo抓取策略改进:新增manifest.json解析、更多link/img匹配模式、图片URL验证
|
||||
- 工具库与脚本模块文档: `.trae/specs/modules/07-lib-and-scripts.md`
|
||||
|
||||
### 改进
|
||||
- Logo抓取引擎增强:6种策略按优先级,minFileSize降至50字节,timeout增至10秒
|
||||
- 待审核工具页面:新增Logo状态列、Logo筛选、抓取缺失Logo/重新抓取全部Logo按钮
|
||||
- 待审核技能页面:新增Star数展示、GitHub链接、分类标签
|
||||
- pending API和pending-skills API支持分页参数
|
||||
- 技术文档全面更新(7个模块文档+索引+开发规则+变更日志)
|
||||
|
||||
---
|
||||
|
||||
## v0.4.0 (2026-05-02)
|
||||
|
||||
### 新增
|
||||
- 系统配置页面:Logo抓取配置、发现提示词配置
|
||||
- 四个AI发现菜单:探索AI工具、检测AI工具、探索Skill技能、更新Skill技能
|
||||
- AI技能发现脚本 `scripts/discover-skills.mjs`
|
||||
- GitHub中文友好判断标准(4步标准)
|
||||
- 技能分类管理页面
|
||||
- DeepSeek V4 Pro API配置
|
||||
|
||||
### 改进
|
||||
- 配置驱动模式:提示词和Logo抓取策略存储在SystemConfig表
|
||||
- 去掉DeepSeek API配置功能,改为配置项驱动
|
||||
- 技能发现提示词优化
|
||||
|
||||
---
|
||||
|
||||
## v0.3.0 (2026-05-01)
|
||||
|
||||
### 新增
|
||||
- 技能库模块:Skill/PendingSkill数据模型、API、管理页面
|
||||
- API接口配置:ApiProvider数据模型和管理页面
|
||||
- 发现配置:DiscoveryConfig与分类管理集成
|
||||
- 公共Logo抓取工具 `src/lib/logo-fetcher.ts`
|
||||
- 服务重启脚本 `restart.ps1`
|
||||
|
||||
### 改进
|
||||
- 去除爬虫功能,改为AI发现模式
|
||||
- UI全面优化:暗色主题、毛玻璃效果、动画
|
||||
- 端口从3000改为3100
|
||||
|
||||
---
|
||||
|
||||
## v0.2.0 (2026-04-30)
|
||||
|
||||
### 新增
|
||||
- 后台管理页面:工具管理、分类管理、待审核工具
|
||||
- NextAuth认证系统
|
||||
- Prisma ORM + MySQL数据库
|
||||
- AI智能发现新工具功能(DeepSeek API)
|
||||
- 批量导入工具脚本
|
||||
|
||||
---
|
||||
|
||||
## v0.1.0 (2026-04-28)
|
||||
|
||||
### 新增
|
||||
- Next.js 14项目初始化
|
||||
- Tailwind CSS + shadcn/ui配置
|
||||
- 前台页面:首页、工具列表、工具详情、分类页
|
||||
- Header/Footer布局组件
|
||||
Reference in New Issue
Block a user