|
|
90fdb44b20
|
feat: 素材处理管线——自动处理、审核流程、6状态机
|
2026-06-07 22:50:05 +08:00 |
|
|
|
a389888eb4
|
feat: 聊天室对话渲染增强 - 思考内容Markdown渲染 + 工具调用参数卡片化
|
2026-06-07 18:27:41 +08:00 |
|
|
|
074ea0bb1a
|
feat: 设置页新增模型卡片,支持为7种能力配置默认模型
|
2026-06-07 09:51:04 +08:00 |
|
|
|
6c4d9affae
|
fix(settings): Radio.Group 按钮模式,help 说明,移除多余底边距
|
2026-06-06 23:28:59 +08:00 |
|
|
|
c0384f9a07
|
fix(settings): Radio.Group 添加 optionType="button" 启用按钮渲染
|
2026-06-06 23:12:57 +08:00 |
|
|
|
dd2835bb94
|
feat(settings): 设置页改造为 Form + Radio.Group + Switch,紧凑模式开关
|
2026-06-06 22:55:33 +08:00 |
|
|
|
09845e0515
|
feat(shell): ConsoleShell 传递 compact 给 buildThemeConfig
|
2026-06-06 22:48:38 +08:00 |
|
|
|
e0466f9b99
|
feat(hooks): useThemePreference 扩展 compact 状态与同步
|
2026-06-06 22:46:56 +08:00 |
|
|
|
eccc3f62d2
|
refactor(theme): buildThemeConfig 改为对象参数,algorithm 支持紧凑模式组合
|
2026-06-06 22:42:18 +08:00 |
|
|
|
91ae52320b
|
feat(settings): 扩展 SettingsData 加 compact 字段,后端解析与校验
|
2026-06-06 22:37:22 +08:00 |
|
|
|
121c6f764f
|
chore: 迁移 lint/format 工具链 ESLint+Prettier → oxlint+oxfmt
|
2026-06-06 00:57:55 +08:00 |
|
|
|
3f88e33bd1
|
feat: 全局设置系统 — settings 表、CRUD 路由、主题偏好持久化
|
2026-06-05 23:10:32 +08:00 |
|
|
|
e2eba6dc1f
|
style: 调整 sidebar 边框 — sider 添加右边框,移除菜单冗余右边框
|
2026-06-05 18:27:20 +08:00 |
|
|
|
72a71818e7
|
fix: 修复 list-params 空字符串关键字处理和 useConfirmAction 测试类型错误
|
2026-06-05 17:31:53 +08:00 |
|
|
|
98712cf047
|
fix: 消除 code-block-body 背景色与 shiki 主题背景色视觉割裂
|
2026-06-05 16:44:13 +08:00 |
|
|
|
85abc2a515
|
feat: antd 主题改造 — 启用 cssVar、纯黑白 colorPrimary、统一 sidebar/滚动条/按钮样式
|
2026-06-05 16:01:54 +08:00 |
|
|
|
db40d04dc5
|
refactor(db): 统一数据库 schema — 软删除、命名规范、约束标准化
- 全表新增 deleted_at 列,统一软删除替代硬删除+archived_at
- models.model_id 重命名为 external_id,消除语义混淆
- conversations.model_id 改为可空(模型为建议而非绑定)
- messages 新增 updated_at,移除 CASCADE 改为 DAO 层级联
- 移除 DB 层 UNIQUE 约束,改为应用层检查(配合软删除)
- 新增 helpers.ts(baseColumns + 构造层防御)、ESLint 规则、契约测试
- 迁移 0004 补全 CHECK 约束(providers.type/materials.status/messages.role)
- DAO 层全面重写:级联软删除、应用层唯一、provider 删除保护
- 路由/前端/测试全量适配 externalId 重命名及类型变更
|
2026-06-05 01:02:23 +08:00 |
|
|
|
6f547560d1
|
refactor: 统一管理页面布局 — FilterToolbar + usePageSearchParams + parseListParams
|
2026-06-04 17:25:36 +08:00 |
|
|
|
61b479e2be
|
feat: 拆分模型/供应商为独立路由页面,侧边栏支持 SubMenu 分组
|
2026-06-04 11:11:32 +08:00 |
|
|
|
f67cfa84ef
|
feat: 用自定义侧边栏替换聊天室 Conversations 组件,提取公共 SidebarGroup 和 date-group
|
2026-06-04 00:46:57 +08:00 |
|
|
|
dc7d9e83b8
|
feat: 收集箱侧边栏UI美化 — 自定义滚动条、隐藏空分组、优化列表项间距
|
2026-06-03 22:31:49 +08:00 |
|
|
|
525278870f
|
style: 收集箱侧边栏对齐聊天室布局模式,按钮筛选栏区域独立padding,列表贴边
|
2026-06-03 21:46:44 +08:00 |
|
|
|
eb93de52d8
|
fix: 修正 markdown-to-jsx 导入方式 + 新增 formatDateLabel 日期工具函数
- TextPart: default import → named import
- MaterialCard: 使用 formatDateLabel 显示今天/昨天/日期
- 清理旧测试文件,新增 ResourceTable 测试
|
2026-06-03 21:08:00 +08:00 |
|
|
|
ad10134c20
|
chore: merge dev-chat into master
# Conflicts:
# src/web/styles.css
|
2026-06-03 17:56:02 +08:00 |
|
|
|
a896091d27
|
feat: 增强 Markdown 代码块高亮和表格样式
|
2026-06-03 17:23:43 +08:00 |
|
|
|
1a7fd58553
|
feat(inbox): 侧边栏状态筛选与日期分组 — Segmented 图标筛选 + Skeleton 加载态 + 五级日期分组可折叠 + 卡片显示关联日期
|
2026-06-03 17:22:14 +08:00 |
|
|
|
abe30ead6a
|
refactor(inbox): 侧边栏素材列表改为轻量 Flex 布局 — Card→Flex, 新增状态 Tag, hover 切换删除按钮, 左侧竖线选中态
|
2026-06-03 16:21:56 +08:00 |
|
|
|
714da2d633
|
feat: 聊天侧边栏新对话按钮统一为 antd Button 样式
|
2026-06-03 15:17:05 +08:00 |
|
|
|
21b557c255
|
feat(inbox): 素材持久化 CRUD — 数据库表 + API + 前端接入
- 新增 materials 表(id/projectId/description/associatedDate/status/createdAt/updatedAt)
- 新增 4 个后端 API 路由(list/create/get/delete)+ 13 个测试
- 新增 use-materials hooks(TanStack Query)
- 收集箱页面重构为三层架构(InboxPage + MaterialSidebar + MaterialDetailPanel)
- MaterialCard: Popconfirm 删除确认 + 粗粒度时间格式
- MaterialContent: 展示状态标签 + createdAt
- 更新开发文档 backend.md / frontend.md
|
2026-06-03 14:53:23 +08:00 |
|
|
|
02a202290f
|
refactor: 替换 Markdown 渲染组件为 markdown-to-jsx
|
2026-06-03 13:13:04 +08:00 |
|
|
|
5b09a16bc3
|
refactor(web): React 最佳实践优化 — memo/callback + 目录边界 + 路由增强
- useLogger: useMemo + JSON.stringify 替代 useState 派生
- useIsDark: effectiveTheme 替代 token 色值比较
- useCurrentProject: layouts/ 提升到 shared/hooks/
- ConsoleShell: locale useMemo 缓存
- ConsoleOutlet: 添加 Suspense 边界
- routes: 添加 layout 级 errorElement
- Table 组件: operationColumn useMemo + useCallback
- ChatPanel: footer 合并为 useCallback, props 传入模型数据
- ChatPage: textModels/conversations useMemo 缓存
|
2026-06-03 11:32:28 +08:00 |
|
|
|
2cdbe474ce
|
feat(workbench): 新增收集箱页面 — 素材列表/详情分栏布局 + 新增/选中/删除 mock 交互
|
2026-06-03 08:36:38 +08:00 |
|
|
|
b1dec691e9
|
refactor(web): 前端目录重构 — consoles/pages → layouts/features + shared
- consoles/admin/ → layouts/admin-layout/
- consoles/workbench/ → layouts/workbench-layout/ + features/chat/
- pages/ → features/ (dashboard, models, projects, not-found)
- components/ → shared/components/
- hooks/ → shared/hooks/
- utils/ → shared/utils/
- 更新所有 import 路径 (src/web/ + tests/web/)
- 更新开发文档 (README.md, frontend.md, architecture.md)
|
2026-06-02 23:17:28 +08:00 |
|
|
|
1f05f259d0
|
fix(chat): 修复暗黑模式下 Markdown 和滚动条样式 — 响应式 useIsDark hook + 动态主题切换
|
2026-06-02 22:44:46 +08:00 |
|
|
|
ed97b30d51
|
feat(chat): 聊天滚动条美化 + Markdown 增强 — OverlayScrollbars/CodeHighlighter/代码复制/表格样式
|
2026-06-02 21:19:50 +08:00 |
|
|
|
26ecaadb26
|
feat(chat): 引入 @ant-design/x 组件 — Sender/Conversations/XMarkdown 替代手动拼装
- ConfigProvider → XProvider(ConsoleShell + test-utils)
- ChatSidebar → Conversations(menu dropdown + MoreOutlined trigger)
- ChatInputArea → Sender(footer 左右排版 + 模型 Select + 自动清空)
- Streamdown → XMarkdown(streaming hasNextChunk 映射 AI SDK 状态)
- CSS 清理 ~94 行废弃样式,新增统一布局规则
- 删除 streamdown 依赖
|
2026-06-02 18:31:31 +08:00 |
|
|
|
9c9afbd108
|
feat(chat): 优化聊天面板交互体验 — 推理折叠/智能滚动/工具中文名/代码块按钮
|
2026-06-02 08:43:26 +08:00 |
|
|
|
628b592577
|
fix: 修复 ChatPanel 无限重渲染 — useLogger 新增 bindings 参数保证引用稳定
|
2026-06-02 00:50:59 +08:00 |
|
|
|
ab7b7fb189
|
fix: 质量修复 — ESLint 规则 TS6 兼容 + catch 注解 + 空函数体注释化 + 后端架构对齐 + 前端红线修复
- enforce-catch-type: 增加 TSUnknownKeyword 判断,消除28个 TS6 假阳性
- no-empty-function: 统一为注释方案,移除测试/生产分支和 eslint-disable 引导
- logger.ts: 空函数体改为注释说明,删除无用 eslint-disable 指令
- 补充15处 catch 子句 : unknown 类型注解
- 清理7个测试文件失效 eslint-disable 指令
- chat/send.ts: 提取 getModelWithProvider DAO,消除直接 Drizzle 操作
- projects/update.ts: 修复死代码+条件逻辑 bug
- providers/update.ts: 补充至少一个字段校验
- 前端: inline style → CSS className, ProviderFormModal whitespace 校验
- 开发文档: 更新 Zod 使用说明(AI SDK 框架级约束)
|
2026-06-01 23:11:42 +08:00 |
|
|
|
844562303c
|
feat: 全栈 Logger 依赖注入 — DB/Route/AI 层传参 + 前端 Logger + 测试更新 + 归档 add-frontend-logger
|
2026-06-01 20:32:19 +08:00 |
|
|
|
4c72754739
|
feat: 前端统一 Logger 模块 — 接口、双流 Sink、ESLint 规则、测试
|
2026-06-01 14:26:17 +08:00 |
|
|
|
897fad95eb
|
refactor: 标题生成重构、UI样式优化、测试增强
- 将标题生成逻辑提取为独立函数,提前到Agent调用前非阻塞执行
- 修复模型/供应商不存在时的HTTP状态码 500→400
- ChatPanel: 分离模型选择useEffect、CSS类替代内联样式、按钮样式统一
- use-conversations: fetchConversations/fetchMessages改用handleResponse去重
- 聊天面板滚动优化(scroll-behavior: smooth, overflow-anchor: auto)
- 测试: mock支持onFinish回调,新增首次消息标题生成测试
- 移除未使用的SendMessageRequest接口
|
2026-06-01 10:49:38 +08:00 |
|
|
|
f34028368d
|
fix: 欢迎页发送消息后侧边栏即时刷新会话列表
在 handleSend 中 createConversation 成功后立即调用 invalidateQueries,
同时传入 displayModelId 保持与侧边栏新建会话行为一致。
|
2026-06-01 08:34:50 +08:00 |
|
|
|
8463274c4b
|
feat: 聊天页优化 — 欢迎页、标题自动生成、消息操作
|
2026-06-01 07:37:23 +08:00 |
|
|
|
f2e3d84fb1
|
feat: 聊天室模型选择器 + 会话更新 API + 消息部件重构
- 新增 PATCH /api/projects/:id/conversations/:cid 端点,支持更新 modelId 和 title
- 聊天面板新增模型选择下拉框,切换模型自动持久化
- 新建会话时传入默认文本模型 modelId
- 将 ToolCallCard 拆分为 ReasoningPart / TextPart / ToolPart 独立部件
- ToolPart 增加流式状态图标、折叠面板自动展开、错误详情展示
- ReasoningPart 增加思考中/思考完成状态指示
- 补充 PATCH 端点测试:更新成功、跨项目 403、不存在 404、无效 modelId 400
|
2026-05-31 21:56:50 +08:00 |
|
|
|
3e1f3b554d
|
fix: 优化聊天室消息卡片与页面滚动布局
- 统一用户和AI消息卡片外观,移除头像和背景色区分
- AI消息名称为蓝色l阿福l,用户消息名称为默认色l用户l
- 修正全局布局高度链,实现内容区域滚动而非页面滚动
- 消息列表内部滚动,输入框固定在页面底部
- 侧边栏会话列表添加min-height:0确保滚动正常
|
2026-05-31 19:01:53 +08:00 |
|
|
|
6eeb4ced7b
|
refactor: 聊天室 Agent 重构 — ToolLoopAgent + 论坛式布局
后端:
- 删除 agent-stream.ts,新建 alfred-agent.ts (ToolLoopAgent 工厂)
- 新建 get-current-time.ts 工具 (zod schema)
- 重构 send.ts: createAgentUIStreamResponse + onFinish 可靠持久化
前端:
- 删除 MessageBubble.tsx,新建 ToolCallCard.tsx (四态)
- 重构 ChatPanel.tsx: 论坛式 Card 布局 + PartRenderer 分派
- 移除 @ant-design/x 依赖,改用 antd 组件 + streamdown
依赖:
+ zod + streamdown
- @ant-design/x - @ant-design/x-markdown
测试: 306 pass, typecheck/lint 0 errors
|
2026-05-31 17:25:29 +08:00 |
|
|
|
f83f434863
|
feat: 工作台聊天室功能
|
2026-05-31 02:37:23 +08:00 |
|
|
|
83cf9eab94
|
fix: 项目表格列优化 — 描述列可见、标题简化、操作列自适应宽度
|
2026-05-29 23:32:12 +08:00 |
|
|
|
10b3928bee
|
refactor: 代码审查修复 — 错误边界、DRY抽取、测试修复、合规性改进
- P1: server.ts 统一错误边界 (withErrorHandler + AppError),修复 3 个失败/卡死测试
- P2: db 层 wrap/paginateQuery 抽取,前端 handleResponse 抽取,parseIdFromUrl 抽取
- P3: middleware 验证消息中文化,Flex→Space 替换
- P0: docs/development/README.md 新增已知设计决策章节
- P3-11 setup 拆分已尝试回退(@testing-library/react preload 依赖无法拆分)
- P3-13 config 层测试从本次变更移除
|
2026-05-29 22:27:56 +08:00 |
|