Commit Graph
112 Commits
Author SHA1 Message Date
mzaxd c599e4e05f doc: opencode config 2026-02-01 16:59:01 +08:00
mzaxd 76eefdc151 refactor: Next.js 15兼容性改进和数据库模型标准化 2026-02-01 16:53:09 +08:00
mzaxd a33be23281 Merge branch 'feature/ai-timeline' 2026-02-01 15:40:51 +08:00
mzaxd 47a278ca1b feat: add Timeline i18n support and deterministic EventCard rotation
- Add complete Chinese/English translations for timeline page
- Use event ID-based rotation instead of Math.random() for SSR consistency
- Enhance tape decoration styling with blur and transparency
- Fix locale-aware date formatting
2026-02-01 15:40:01 +08:00
mzaxd 53e1faab89 docs: 生成层次化 AGENTS.md 文档系统 2026-02-01 14:57:43 +08:00
mzaxd e6ff7470a1 test: add verification report and screenshots for fixed timeline 2026-01-27 22:01:44 +08:00
mzaxd 7d78bb2d52 fix: add animations, timeline path, and fix layout to match design 2026-01-27 21:58:08 +08:00
mzaxd e1d14fcd0b feat: add historical events seed script (2017-2023) 2026-01-27 21:50:33 +08:00
mzaxd 0a5146117b docs: add n8n workflow designs for AI timeline 2026-01-27 21:49:18 +08:00
mzaxd 8cfcebc515 test: complete E2E testing with chrome-devtools-mcp 2026-01-27 21:48:20 +08:00
mzaxd 0f0dc4b987 feat: add Timeline link to navigation with i18n support 2026-01-27 21:42:06 +08:00
mzaxd a54396fb74 refactor: extract EventCard and TimelineSection components 2026-01-27 21:41:15 +08:00
mzaxd 1e99c9a4e6 feat: add timeline page with year-based layout 2026-01-27 21:40:14 +08:00
mzaxd 11a876ebbe fix: handle null query params in API + add testing guide 2026-01-27 21:39:17 +08:00
mzaxd f81f51e508 test: add API route tests 2026-01-27 21:37:34 +08:00
mzaxd 11436aee6f feat: add AI events API endpoints 2026-01-27 21:36:17 +08:00
mzaxd 9aeb649225 feat: add AI event data fetching functions 2026-01-27 21:35:54 +08:00
mzaxd a6d97e58e2 test: add AIEvent validation tests 2026-01-27 21:34:35 +08:00
mzaxd 65b84e641d feat: add AIEvent validation schemas 2026-01-27 21:33:29 +08:00
mzaxd 76c45c7132 feat: add AIEvent model to database schema 2026-01-27 21:32:57 +08:00
mzaxd e1f250d397 feat: 添加关键词词云页面国际化支持 2026-01-27 20:39:38 +08:00
mzaxd 9164086d6e feat: 在导航中添加 AI 词云入口 2026-01-27 20:36:38 +08:00
mzaxd 4855422b85 fix: 修复 ESLint 错误(转义引号) 2026-01-27 20:32:54 +08:00
mzaxd 0aa983085e fix: 修复 TypeScript 类型错误 2026-01-27 20:31:57 +08:00
mzaxd abab035b17 docs: 更新 CLAUDE.md 添加关键词词云系统说明 2026-01-27 20:29:51 +08:00
mzaxd 269c4a9573 feat: 添加关键词词云健康检查端点 2026-01-27 20:28:23 +08:00
mzaxd 522d1a2698 test: 添加关键词词云 API 测试脚本 2026-01-27 20:27:56 +08:00
mzaxd d9bbdfb06f chore: 添加 n8n 环境变量配置和文档 2026-01-27 20:26:35 +08:00
mzaxd 1b75ac0b0d feat: 添加关键词词云种子数据脚本 2026-01-27 20:21:43 +08:00
mzaxd c02ccdd86e feat: 添加 n8n 关键词词云工作流配置 2026-01-27 20:20:05 +08:00
mzaxd ddea832261 feat: 添加关键词词云页面 2026-01-27 20:19:26 +08:00
mzaxd 4ce8f9f756 feat: 添加关键词词云客户端数据获取 Hook 2026-01-27 20:19:10 +08:00
mzaxd e60c6faeb2 feat: 添加 KeywordCloud 主容器组件 2026-01-27 20:18:26 +08:00
mzaxd b33886f3ee feat: 添加 ProgressIndicator 组件 2026-01-27 20:17:58 +08:00
mzaxd 46bd1dbe30 feat: 添加 QuarterNavigator 组件 2026-01-27 20:17:44 +08:00
mzaxd a7846ecb61 feat: 添加 CloudWord 组件 2026-01-27 20:15:35 +08:00
mzaxd 22fbd42158 feat: 添加获取视觉规则 API 2026-01-27 20:14:58 +08:00
mzaxd 8faa798401 feat: 添加批量写入关键词 API 2026-01-27 20:14:43 +08:00
mzaxd 460c865249 feat: 添加获取关键词 API 2026-01-27 19:35:25 +08:00
mzaxd 1c248a18fa feat: 添加获取季度列表 API 2026-01-27 19:34:58 +08:00
mzaxd 7c9f7ad018 feat: 添加关键词词云数据访问层函数 2026-01-27 19:34:33 +08:00
mzaxd 76a1646cb7 feat: 添加关键词词云系统 Zod 验证 Schema 2026-01-27 19:30:57 +08:00
mzaxd 3d6c0b4a41 feat: 添加关键词词云系统数据库模型 2026-01-27 19:30:09 +08:00
mzaxdandClaude 2dd4214998 feat: 添加搜索清空按钮并移除 AI 搜索提示
- 在搜索输入框有内容时显示清空按钮(X 图标)
- 点击清空按钮可清除输入内容并重置搜索状态
- 移除 AI 模式下的提示文字以简化界面
- 清理相关的 aiHint/traditionalHint props 及传递链

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 19:18:02 +08:00
mzaxdandClaude 07457f09b1 refactor: 统一 AI 搜索与传统搜索布局,并简化 n8n 响应格式处理
- API 只支持 n8n 返回的 {results: [{id, similarity}]} 格式
- AI 搜索结果改用网格布局,与传统搜索保持一致
- 用右上角相似度徽章替代左侧彩色条和黄色高亮框
- 移除顶部的匹配度说明,徽章颜色直观显示匹配质量

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 19:09:16 +08:00
mzaxdandClaude 6c13fc54d6 fix: 修复 AI 搜索跳转后 async/await 客户端组件错误
将 ProjectCard 和 SubmitProjectCard 从 async 组件重构为普通组件,
通过 props 接收翻译文本,解决在客户端组件中使用 async 组件导致的错误。

- 移除 ProjectCard 和 SubmitProjectCard 的 async 关键字
- 添加 translations prop 接收翻译文本
- 更新所有调用点传递翻译文本

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 17:22:21 +08:00
mzaxdandClaude b03085292a fix: 修复 AI 搜索结果类型定义
修复 AISearchResultItem 类型,移除对 status 字段的排除,确保类型与实际数据结构匹配

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 16:53:28 +08:00
mzaxdandClaude 660cd5168c feat: 重构 AI 搜索架构并优化用户体验
- 重构 AI 搜索数据流:n8n 只返回项目 ID,Next.js 后端负责组装完整数据
- 首页添加 AI 搜索功能,支持跳转到项目列表页后自动触发搜索
- 新增 HomeSearchBar 组件处理首页搜索逻辑
- 修复英文模式下搜索按钮重叠问题,使用 flex 布局确保间距
- 完善国际化支持,添加切换模式提示和加载状态的翻译
- 优化搜索体验:切换 AI/传统搜索模式时保留输入框内容

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 16:40:44 +08:00
mzaxdandClaude 11009320f1 fix: 修复 AI 搜索 API 请求方法不匹配问题
将 n8n webhook 调用从 POST 改为 GET 请求,参数通过 URL query string 传递,与 n8n webhook 配置保持一致。

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 15:37:26 +08:00
mzaxdandClaude 3aec209ff9 refactor: 将 n8n 工作流外部化并简化数据库 schema
- 移除 n8n-workflows 目录下的工作流配置文件
- 从 Project 模型移除 embedding 和 embeddingUpdatedAt 字段
- 添加 N8N_AI_SEARCH_WEBHOOK 环境变量配置

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-27 15:17:58 +08:00