Commit Graph

27 Commits

Author SHA1 Message Date
yuzhiran-dev 6f3fe50ee0 docs & cleanup: update stack info, remove dead code, fix backend bugs
- Fix AGENTS.md and 技术架构设计.md to reflect actual stack (Prisma+MySQL, static export, PM2)
- Remove 4 unused frontend components (page-transition, page-layout, image-upload, section-card)
- Fix card.tsx hardcoded colors → CSS variables
- Remove provider name from model selector, remove sensenova-u1-fast from models
- Fix analytics.controller.ts raw SQL table names (runtime bug)
- Add JWT auth guard to tools POST endpoint
- Fix AI gateway test: update env vars and model names
- Fix admin test: mock role structure for Prisma relation
2026-05-29 10:26:50 +08:00
yuzhiran-dev 417fb266d4 feat: AI沙箱流式对话+引导学习+静态服务优化
- 后端: AI沙箱流式对话(SSE), reasoning_content 回退支持
- 前端: 沙箱页流式渲染, 引导学习面板, 默认场景/Starter兜底
- 优化: 前端改用静态文件服务器(node server.js)替代next dev, CSS永不丢失
- 修复: 通用模型默认改为可用模型, predev不再删.next缓存
2026-05-27 18:26:30 +08:00
yuzhiran-dev 0b66d752ce feat: 系统配置页动态渲染 + AI 配置完善
- 配置页重写:从 API 动态加载配置项,不再依赖硬编码字段列表
- AI 配置扩展:新增 provider API Key/URL、配额、Token 等 11 项配置
- 站点配置扩展:联系电话、公司名称
- 支持新增自定义配置项(+ 新增配置按钮)
- 配置项显示已有 DB 数据 + 预定义字段的合并列表
2026-05-25 13:54:20 +08:00
yuzhiran-dev 25ebcdc622 fix: 沙盒页英文换行 + Logo 多语言
- 沙盒页标题/副标题添加 truncate 防止英文换行
- Logo 使用 t.brand.name/suffix 实现中英切换(宇之然/Yuzhiran)
- 新增 brand 翻译键(zh: 宇之然, en: Yuzhiran)
2026-05-25 11:07:40 +08:00
yuzhiran-dev e64a874499 fix: 导航 i18n 补全 + 模型/提示词页 useT()
- Header 导航 skills/models/articles 改为 t.nav.*(英文正常显示)
- 模型百科页全部文字使用 useT()(表格标题、标签等)
- 提示词库页标题使用 useT()
- models 翻译键补全 contextWindow/maxOutput
2026-05-25 09:22:25 +08:00
yuzhiran-dev 03b500b778 feat: 剩余页面 useT() + 页脚 SystemConfig 动态渲染
- 学习分析/学习路径/设置/收藏/提示词工坊 页面 useT()
- 页脚联系邮箱/ICP备案号从 GET /public/config 动态获取
- 翻译键补齐: discover.viewCount/likeCount/postStats
2026-05-22 18:09:15 +08:00
yuzhiran-dev 477226ac15 feat: 剩余页面 useT() 改造 + 首页课程动态加载
- 搜索/发现/工具/My 页面全部使用 useT(),支持中英切换
- 搜索页 Badge variant 修正
- 首页热门专题改为从 API 动态获取(无数据时用静态兜底)
- 新增 discover 翻译键 viewCount/likeCount/postStats
- 首页/仪表盘/社区 等 JSX 优化
2026-05-22 17:08:17 +08:00
yuzhiran-dev 1b4c19daa6 feat: i18n 翻译覆盖 + DB 动态数据 + 模型选择器 API 2026-05-22 16:55:18 +08:00
yuzhiran-dev 23edb74bce feat: 支付闭环 + 运营助手 Tool Calling + 管理后台完善
- 支付系统:微信支付 mock 自动完成、NATIVE 扫码支付、JSAPI 集成
- 运营助手:Tool Calling 架构,19 个可执行工具,AI 驱动操作
- 角色管理:表格布局 + Dialog 表单 + 权限勾选
- 配置统一:config.ts 单一数据源
- API 审计:补齐 status toggle / comments 端点
- 暗黑模式硬件编码颜色全部替换为 CSS 变量
2026-05-20 18:29:00 +08:00
yuzhiran-dev 728edc59ef feat: admin back-office system + AI assistant with action commands
- Admin analytics (recharts charts, overview stats, trend analysis, time range selector)
- Admin permissions (AdminRole/AdminUser models, role CRUD, permission catalog)
- Admin system config (site/AI/member category tabs, per-key save)
- Admin operations (Banner CRUD, push notification send/delete)
- Admin user management (table, search, create/edit, ban/delete)
- Admin layout (custom top bar with branding + sidebar, admin AI assistant)
- Admin login (adminToken localStorage, adminInfo display)
- Admin AI assistant (purple '运营助手', context-aware prompts, action commands)
- Public AI assistant Phase B (action commands: navigate, setModel, startChat, openSkill, setParameter)
- Assistant context mapping + action executor
- Skills API fix: tags parsing fallback (JSON.parse → split)
- Sandbox crash fix: curScene fallback system prompt
- JWT token expiration: access 2h→7d, refresh 7d→30d, admin 8h→7d
- i18n: assistant-related translations (zh/en)
- PM2 ecosystem config for process management
- AI assistant login prompt fix: admin uses getAdminToken(), public uses apiFetch with token refresh
2026-05-20 10:38:58 +08:00
yuzhiran-dev dd9240e5cf fix: 未登录沙盒改为注册提示替代 mock 回复 2026-05-18 17:19:09 +08:00
yuzhiran-dev 150ae3dcfd feat: 技能库改为数据库存储 (Prisma Skill 模型 + seed)
- Prisma 新增 Skill 模型 (id/name/description/icon/category/difficulty/systemPrompt/starters/tasks/tags/prerequisiteIds)
- SkillsService 从 DB 读取替代硬编码常量
- seed.ts 新增 seedSkills() 写入 8 个技能
- SkillsController 保持不变,API 返回 JSON 解析后的 starters/tasks
2026-05-18 16:23:52 +08:00
yuzhiran-dev 79d7535c1c feat: P4 多模态 — 图片上传 + 沙盒 vision 支持
后端:
- ChatMessage 接口支持 text | image_url 多部分内容
- sandbox chat 接受 images[] 参数
- 自动将图片转为 image_url 格式发送到 AI
- 上传模块支持 jpg/png/gif/webp/svg

前端:
- 沙盒输入区 + 图片上传按钮
- 图片缩略图预览 + 删除
- 上传后随消息发送到 API
- uploads/ 目录持久化存储
2026-05-18 14:15:56 +08:00
yuzhiran-dev 0ed017b212 feat: P3c LLM集成层增强 (模型目录 + 用量统计 + getModelInfo) 2026-05-18 12:10:17 +08:00
yuzhiran-dev ed003d0ef0 feat: P3b 会话重命名 (PATCH + 双击编辑) 2026-05-18 12:08:32 +08:00
yuzhiran-dev 4de042abcd feat: P3a 代码语法高亮 (highlight.js + CodeBlock组件) 2026-05-18 12:06:30 +08:00
yuzhiran-dev 21078ae287 feat: Mobile 全站 CSS 变量对齐
- 批量替换 18 个页面硬编码颜色 → CSS 变量
- sandbox page 完整迁移(参考页)
- App.vue + variables.css 统一 Token 定义
- 剩余仅保留语义色(红色价格、绿色完成、阴影、渐变)
- 剩余 16 页按相同模式可逐步迁移
2026-05-18 11:52:57 +08:00
yuzhiran-dev 1a8b3fbaab fix: PC 端全站移动端响应式修复
Critical:
- header.tsx: 手机菜单按钮 flex-row→flex-col, 修复 w-full 溢出
- compare/page.tsx: 参数面板 grid-cols-3→grid-cols-1 sm:grid-cols-3

High:
- sandbox/page.tsx: header 区 flex-wrap + 模型选择器 w-48→w-40 sm:w-48
- member/page.tsx: 功能对比行 grid 布局替代 flex, 防溢出
- workshop/page.tsx: 编辑区 flex-col sm:flex-row + 按钮组 flex-wrap

Medium:
- analytics/page.tsx: domain name truncate
- skills/[id]: CTA 按钮 w-full sm:w-auto
2026-05-18 11:47:50 +08:00
yuzhiran-dev 8665032da4 feat: P2 Mobile CSS 变量对齐
- 新建 mobile/src/styles/variables.css — Design Token 变量定义
- App.vue — 使用 var(--muted) / var(--foreground) 替代硬编码
- sandbox/index.vue — 完整迁移参考页(品牌色/边框/文字/背景)
- docs/design-tokens.md — 更新 Mobile 迁移对照表
2026-05-18 11:18:02 +08:00
yuzhiran-dev fb092cb5d9 feat: P1 学习技能包 — 可组合技能模块系统
后端:
- SkillsModule (service + controller),8 个预置技能
- GET /skills (支持 category/difficulty/search 过滤)
- GET /skills/:id /categories /difficulties

前端:
- /skills 技能市场 — 分类/难度/搜索过滤
- /skills/[id] 技能详情 — system prompt、练习任务、starter
- header 导航新增「技能」入口
- sandbox page 改为从 API 加载技能(替代硬编码 SCENES)
- 支持 ?skill=xxx 直接加载指定技能
- useSearchParams Suspense 包装

全栈: 70 pages / 92 tests 全部通过
2026-05-18 11:15:00 +08:00
yuzhiran-dev cba785e6bd feat: P0f 会话分享链接 + 全栈验证
- 后端: POST /sessions/:id/share 生成 HMAC 签名分享令牌
- 后端: GET /sandbox/shared/:token 公开查看分享会话
- 前端: sandbox/page.tsx 新增「复制分享链接」按钮
- 前端: /sandbox/share?token=xxx 分享查看页面
- 全栈: 后端 build + 前端 61 页 + 92 tests 全部通过
2026-05-18 10:43:25 +08:00
yuzhiran-dev f2a6bb93f9 feat: P0e 模型选择器升级 — 卡片式下拉
- ModelSelector 组件:标签/提供商/描述/选中状态
- 替换 sandbox page + workshop page 原生 select
- 模型数据增加 provider/desc 字段
2026-05-18 10:39:32 +08:00
yuzhiran-dev 0fdad71c57 feat: P0d 会员定价页重构 — 用量可视化 + 方案对比
- 三栏定价卡片(免费/月卡/年卡),参考 opencode Go 页面风格
- 日配额用量进度条
- 功能对比表(沙盒/模型/提示词/课程/广告)
- 当前方案标记 + 最受欢迎标记
- useT 全量翻译
- 补充中/英 30+ 定价相关翻译 key
2026-05-18 10:37:58 +08:00
yuzhiran-dev a4c7d71931 feat: P0c 沙盒页面 useT 翻译迁移
- sandbox/page.tsx 全量迁移:所有用户可见文本使用 useT()
- 场景命名翻译:sceneName() 函数映射翻译 key
- formatTime 使用 i18n 时间文本(刚刚/分钟前/小时前)
- 高级参数面板抽象为 map 渲染(消除重复 markup)
- 补充中/英 justNow/minutesAgo/hoursAgo 翻译
2026-05-18 10:36:22 +08:00
yuzhiran-dev 41374f2642 feat: P0b Design Token + 共享组件库
- docs/design-tokens.md — 完整 Token 规范(色彩/间距/圆角/排版/组件模式)
- 新增 PageLayout 组件(封装 26+ 页面的重复容器模式)
- 新增 Card / StatCard 组件
- 补充 Mobile (Vue) 迁移清单和 CSS 变量映射
2026-05-18 10:18:32 +08:00
yuzhiran-dev 9efa2d0425 feat: P0a i18n 基础设施 + UI 语言切换
- 创建 i18n 模块 (provider + useT hook + useLang hook)
- 中/英翻译文件 (zh.ts / en.ts),覆盖沙盒/学习/会员/对比等核心页面
- LanguageProvider 包装 layout,支持 localStorage 持久化
- Header 添加语言切换按钮 (中<>EN)
- AGENTS.md 新增国际化约定
- opencode 源码克隆到 /tmp/opencode-source/ 供参考
2026-05-18 10:12:37 +08:00
yuzhiran-dev 11bb86854c feat: Phase 1-3 全部完成 — 沙盒增强、学情分析、学习路径 2026-05-18 09:48:51 +08:00