1021 Commits

Author SHA1 Message Date
kuaifan
32fd99b5d0 fix(dialog): 移动端搜索消息栏去掉圆角,背景与标题栏一致 2026-10-28 17:01:46 +00:00
kuaifan
a1e79204f8 fix(dialog): Safari 中加载失败的消息图片滚动时不再反复请求
- 失败图片按地址登记,消息回收重挂载时直接渲染占位图,不再请求
- 文本消息图片改为 inline-block,失败后保持原占位尺寸,避免高度塌陷触发列表反复测量
- 失败占位图点击可重试加载
2026-10-28 16:46:00 +00:00
kuaifan
093a1e9afb feat(project): 移动端 App 内项目列表与详情切换增加右侧滑入/滑出动画
列表与详情为同一路由页面,路由级动画不会触发,改在项目页内部用 transition 处理:
- 滑入期间保持列表与底部选项卡,结束后再隐藏,避免下层页面高度跳变
- 动画期间详情固定覆盖于列表及选项卡之上,按实际位置换算 top
- 返回时等滑出动画结束再清空当前项目数据
2026-10-28 13:22:25 +00:00
kuaifan
9d07f88e8c perf(task): 移动端打开任务详情时先播放打开动画再挂载内容,挂载前显示任务头部、标题与属性骨架占位 2026-10-28 13:03:01 +00:00
kuaifan
2556c53fbc feat(dialog): 消息操作菜单的复制项精简为「复制 / 选择复制」,新增全屏选择复制页
- 移除「复制原文 / 复制选择 / 复制全部」;「选择复制」打开复制页,可自由选字、底部按钮复制全部,Markdown 消息支持预览 / 原文切换
- 复制页标题与其他会话抽屉一致(居中标题),Markdown 预览沿用消息气泡的深色模式处理
- 移动端打开菜单后不再允许长按选字,移除 selectionchange 监听与 operateEnter
- 桌面端保留在消息中选字,直接用键盘复制
- 更新语言包与 ai-kb 移动端手势说明
2026-10-28 11:56:06 +00:00
kuaifan
58a0180caa feat(setting): 移动端设置页改版,顶部个人资料卡、图标与右箭头、右侧显示当前值、按语义分组,退出登录改为底部按钮
- 引入 ionicons 8 新版图标,新增全局 IonIcon 组件(按需引入 SVG 内联渲染,不走 CDN)
- 桌面端设置菜单保持不变
- 同步 ai-kb 设置入口与个人设置路径
2026-10-28 09:49:06 +00:00
kuaifan
1fb1062056 perf(dialog): 移动端会话窗口先播放打开动画再挂载内容,挂载前显示导航与消息骨架占位;关闭时先开始动画再清除会话ID,避免动画首帧卡顿与划入时空白 2026-10-28 09:29:58 +00:00
kuaifan
cdeef084da fix(file): 文件页触屏点击残留 hover、移动端不再悬停显示刷新按钮、窄屏搜索框与标题间距过近,列表模式表格高度改为跟随容器 2026-10-28 08:48:23 +00:00
kuaifan
9fce053b93 feat(mobile): App 竖屏从应用进入设置/日历/文件改为右侧划入、返回划出,并沉浸底部安全区
- 划入期间保留底部选项卡、划入页置顶覆盖,避免高度跳动与结束时闪帧
- 返回应用页时恢复其滚动位置
2026-10-28 08:48:19 +00:00
kuaifan
e68cb6f322 style(mobile): 统一项目与通讯录顶部团队按钮样式,加宽点击区域,项目选择团队后图标高亮 2026-10-22 09:02:03 +00:00
kuaifan
02ebbc1c96 feat(dashboard): 移动端仪表盘启用沉浸状态栏,滚动内容可穿过状态栏 2026-10-22 08:57:00 +00:00
kuaifan
571417f689 style(dashboard): 移动端截止时间右对齐,空值留空并隐藏整组为空的栏 2026-10-22 08:46:35 +00:00
kuaifan
3edff276f3 style(dashboard): 移动端头部标题与右侧图标同行,副标题独占一行 2026-10-22 03:05:27 +00:00
kuaifan
bf1c9b7751 feat(app): 新版 App 检查更新提示与设置页手动检查
- $A.eeuiAppCheckUpdate 在 Expo 壳中弹出「发现新版本」,iOS 跳 App Store、Android 浏览器下载 apk
- 设置「版本」右侧新增「检查更新」
- 更新 Expo 壳子模块、语言包(含 DooPush 遗漏的两条后端文案)与 ai-kb
2026-10-19 13:15:20 +00:00
kuaifan
ca1a1b5415 feat(contacts): 通讯录支持按部门显示,成员按需加载
- 新增 contacts/departments 接口,返回部门树及成员数
- 通讯录搜索框右侧新增字母/部门视图切换,部门视图可折叠,展开时才加载成员
- users/search 的 keys.departments 改为参数绑定(修复 SQL 注入),0 表示未加入任何部门
- 同步翻译与 ai-kb
2026-10-10 04:47:34 +00:00
kuaifan
be0f05af4d feat(system): 管理员支持在线更新服务端(系统更新)
- 新增 api/system/update/check|start|status,发起更新需二次输入登录密码,经 appstore 拉起独立 updater 容器执行 ./cmd update
- cmd update 新增 --check(输出 JSON 检查结果)与 --non-interactive(在线更新模式:强制备份数据库、存在本地修改时中止、写入 docker/logs/update/state.json 进度)
- 设置菜单与头像下拉(仅管理员)新增「系统更新」入口,进度页展示步骤、实时日志与结果
- 在线更新默认开启,运维可通过 .env ONLINE_UPDATE=false 关闭;appstore 注入 HOST_DOCKER_SOCK
- 修复 Ihttp 状态行解析在多词原因短语(如 404 Not Found)时失败的问题
- 同步 ai-kb:系统更新操作指引、不支持在线更新 FAQ、菜单入口
2026-10-01 04:12:55 +00:00
kuaifan
9c4cdff572 style(manage): 去除菜单项键盘聚焦时的轮廓与阴影 2026-10-01 01:36:25 +00:00
kuaifan
2ace89fce8 feat(project): 列表模式分组选择下拉显示各分组任务数
- 分组下拉每项右侧显示任务数,与分组标题旁数量一致,未勾选显示的分组同样计算
- 数量仅在下拉打开时计算,避免已逾期分组随每秒时间刷新持续重算
- 同步 ai-kb 列表视图说明
2026-10-01 01:31:51 +00:00
kuaifan
d4c7cdba6f feat(project): 项目页筛选下拉支持多选组合
- 顶部筛选由 Cascader 单选改为分组复选下拉:状态(含未计划)/ 标签 / 负责人,同组为「或」、跨组为「且」
- 勾选时下拉不关闭;顶部显示已选数量与「清空」,每组可单独清除,按钮上的 × 一键清空
- 按钮显示:未筛选「全部 (n)」、单选显示该项(状态带颜色)、多选按组汇总如「状态·2 / 负责人·1 (n)」
- 弹层宽度随内容自适应(180–320px),内容区内部滚动;负责人超过 10 人时显示搜索框
- 抽出 utils/projectFlowFilter 统一看板、列表、甘特图的过滤逻辑,修复甘特图未按标签和未计划过滤
- 勾选「已完成」类状态仍自动开启显示已完成,切换项目重置筛选
- 同步 ai-kb 视图筛选相关说明
2026-10-01 01:21:30 +00:00
kuaifan
c06d61a11f feat(dashboard): 合并仪表盘视图切换为「列表|四象限|部门总览」
- 右上角两组切换合并为一个,部门视角选中后该项显示部门范围与成员数,再次点击选择团队范围
- 全选多个部门时显示「部门总览」,切换范围加载中成员数以 loading 占位
- 切换器宽度随内容平滑过渡,尊重减少动态效果设置;部门项与成员数补充悬停提示
- 移动端收起为图标按钮:部门负责人点击弹出列表/四象限/部门总览下拉,底部可选择团队范围并显示成员人数;普通用户点击在列表与四象限间切换
- 移动端部门视角图标带成员数角标(超过 99 显示 99+),头部右侧只占图标宽度
- 清理不再使用的文案与样式,同步 ai-kb 仪表盘相关说明
2026-10-01 00:46:31 +00:00
kuaifan
5801d66371 fix: 调整会员选择器间距样式 2026-09-13 00:56:37 +00:00
kuaifan
2ecd59e03b fix: 调整会员选择器搜索栏间距与部门视图样式 2026-09-10 13:31:39 +00:00
kuaifan
b697e73c6b fix: 优化会员选择器已选成员取消交互 2026-09-10 12:23:05 +00:00
kuaifan
f0b376797c feat: 项目设置改为抽屉展示 2026-09-10 12:05:03 +00:00
kuaifan
4249584a08 feat(dashboard): 应用新版仪表盘设计并适配深色主题 2026-09-10 08:55:02 +00:00
kuaifan
80d4b16921 fix(task): 修复任务详情头部最小高度 2026-09-09 03:33:50 +00:00
kuaifan
519e8dbd54 feat(task): 支持任务流转与部门指派 2026-09-09 02:36:52 +00:00
kuaifan
ffbb45708d feat(project): 支持表格分组配置与悬停筛选菜单
新增到期、排期、逾期与未排期分组,按项目缓存显示选择并至少保留一项。

统一分组复选下拉菜单,接入 Cascader 桌面悬停展开,增加勾选后的滚动定位校正。

升级 view-design-hi 至 4.7.0-81,同步多语言、知识库和回归测试。
2026-09-07 12:08:52 +00:00
kuaifan
2a7d635729 feat(messenger): add local file shortcut to chat cards 2026-08-20 04:30:24 +00:00
kuaifan
7af3c5a032 fix: 优化注册提示和登录切换动画 2026-08-19 23:41:38 +00:00
kuaifan
f49d6d604f fix: improve system setting editors 2026-08-13 11:08:06 +00:00
kuaifan
139a7a168b feat: reorganize system settings tabs 2026-08-13 09:16:58 +00:00
kuaifan
9408777d00 fix(file): adjust file item label styling for better alignment 2026-08-11 01:58:32 +00:00
kuaifan
6deec313f7 feat(file): add collaboration file browser 2026-08-04 21:27:43 +00:00
kuaifan
867a305c7a fix(badge): 调整徽章点的位置和缩放效果 2026-07-27 01:23:08 +00:00
kuaifan
b914a99b62 fix(dashboard): 更新仪表盘警告信息样式,使用粘性定位 2026-07-21 19:38:40 +08:00
kuaifan
e4e1cd9b82 fix(dashboard): 优化移动端个人视角布局 2026-07-20 14:08:12 +00:00
kuaifan
71ca6ba249 feat(dashboard): 完善负责人视角界面与范围切换 2026-07-18 23:43:10 +00:00
kuaifan
4b92ecb422 feat(dashboard): 完善个人视角空状态 2026-07-18 04:47:12 +00:00
kuaifan
6666605f7d feat: 完善管理后台团队仪表盘 2026-07-18 01:13:43 +00:00
kuaifan
f7bc724e13 feat(dialog): 撤回文本消息后本地显示"重新编辑"占位
- 撤回自己的文本/MD 消息后,原位置显示仅本人可见的"你撤回了一条消息 重新编辑"占位(仿微信)
- 占位纯本地存储(IndexedDB 持久化,Electron 多窗口 syncDispatch 同步),5 分钟过期自动清除
- 点"重新编辑"回填原内容到输入框(富文本还原 @提及/表情,先退出引用/编辑模式),占位随即移除
- 占位沿用原消息 id 排序定位,仅在已加载消息范围内合并显示,不干扰翻页与已读上报
- 同步更新 ai-kb recall 文档与前端语言文件
2026-07-16 11:20:37 +00:00
kuaifan
746337c2f6 feat(search): 语义搜索迁移至 Manticore Auto Embeddings,向量走 ai 插件免费模型
- embedding 统一改走 ai 插件 /embeddings(免费向量模型,1024 维),删除第三方 key 分支
- 5 张向量表启用引擎 Auto Embeddings(MODEL_NAME/FROM/API_URL),写入/更新时引擎自动生成向量
- 表定义使用派生密钥 sha256(APP_KEY:embeddings),避免主密钥进入引擎元数据
- 写入改为 REPLACE(单行原子)与多行批量 REPLACE(整语句一次向量化调用,失败回退逐行)
- 结构指纹 vector:schema 标记:版本/模型/端点/APP_KEY 变化时自动清空重建并重置同步指针
- 退役 PHP 向量管道:删除 generate-vectors 命令、双指针、withVector 分支与批量向量生成方法
- 根治缺陷:全文重同步不再抹掉向量;内容编辑后向量由引擎自动重算,不再过期
2026-07-15 10:45:20 +00:00
kuaifan
13ba1d3bd7 feat(file): 我的文件纳入已共享文件,修复板块切换缓存丢失
- 「我的文件」改为展示我拥有的全部(含已共享出去的),与「共享文件」在“我共享的”上刻意重叠
- 缓存改为 stale-while-revalidate:按板块懒加载,切回该板块/目录先读缓存再拉接口静态刷新
- getFiles 清理过期行按 scope 限定范围,避免刷新一个板块误删另一板块(同为 pid=0)的缓存
- 微调 file-tabs 来源筛选字号与面包屑上边距
- 同步 ai-kb 文件入口说明(last_verified v1.8.69)
2026-07-14 12:16:22 +00:00
kuaifan
7b25f243ab feat(file): 文件页拆分「我的/共享」两个板块并合并工具栏为单行
- 顶部 Tab 切换:我的文件(私有 share=0)/ 共享文件(双向,含我共享出去的 + 别人共享给我的),共享板块支持「全部/我共享的/共享给我的」二次筛选
- 后端 File::getFileList 增加 scope 参数,按板块拆分根目录查询;FileController::lists 透传并校验
- 前端用 board/sharedSrc 取代原「仅显示我的」复选框,board 持久化到 IDB
- Tab、子筛选、视图切换合并到同一行(flex 自动换行,视图切换靠最右)
- 根目录不再重复显示板块标题,仅进入子文件夹时显示面包屑(板块名为可点击回根入口)
- 同步更新 ai-kb 文件入口说明
2026-07-14 03:49:59 +00:00
kuaifan
889aca311a feat(license): 在线授权数据缓存秒开 + 请求 loading
- 进页面读 localStorage 缓存即时渲染在线授权数据(key 按站点 host 隔离),
  后台并发 license/refresh + system/license 刷新,右上角显示「刷新中」转圈,
  数据回来静默替换并更新缓存;非在线状态自动清除缓存
- 首次无缓存显示骨架占位 + 加载中
- 发送验证码改回 setting/email 内联样式(iView search + enter-button +
  spinner 全局 loading),去除独立按钮
2026-06-23 07:10:25 +00:00
kuaifan
87e05ef9c9 style(setting): 统一设置页底部按钮间距
各设置页底部按钮去除内联 margin-left:8px,改由 .setting-footer
统一 column-gap:12px。
2026-06-23 01:21:20 +00:00
kuaifan
97bd58312e refactor(approve): 移除主仓库内置审批功能,收敛到插件/微应用
删除 ApproveController、ApproveProcInstHistory/ApproveProcMsg 模型、approve
前端页面与导出组件,移除 approve 路由与 flow_url 配置;审批消息模板改为对接
插件侧能力。版本号 1.7.90 → 1.7.91。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:35:49 +00:00
kuaifan
39b9a72b16 refactor(ai-assistant): 用内联深链替代 driver.js 页面引导
「带我去」分步引导(driver.js + 四级元素定位 + show_guide)定位不稳、
二级菜单不可达、点高亮按钮触发跳转即被杀,体验差。改为 AI 回复正文里把
可定位的页面/面板渲染成可点深链 chip,点击直达那一屏。

- 新增深链目录:_meta/page-links.yaml(语义,供 AI 选择)+ deep-links.js
  (可执行映射,21 个无需运行时 id 的导航目的地),两端 id 一致性由
  tests/deep-links-parity.mjs 校验
- markdown.js 加 processDeepLinks:[文字](dootask://link/<id>) 合法 id →
  chip,非法 id → 纯文字(绝不渲染死链);复用现有 dootask:// 点击拦截链路
- DialogMarkdown 加 link 分支调 openDeepLink;system.vue 支持 query.tab
  初始化,系统设置二级 Tab 可深链直达
- 彻底移除 driver.js 引导:删 guide-renderer.js/guide.css、show_guide
  前端通道、aiGuideStarted 监听、driver.js 依赖
- 同步 ai-kb:改写 guide/start-guide 两 chunk、tool-binding 去 show_guide
- 插件侧 prompt 改动规格见 docs/ai-deeplink-plugin-spec.md(独立仓库实施)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 23:55:09 +00:00
kuaifan
4de6c69972 feat(ai-assistant): RAG 反馈闭环 + driver.js 页面操作引导
方向7 反馈闭环:
- 新增 ai_assistant_search_logs / ai_assistant_feedbacks 两表 + 模型
- AssistantController 加 log__search / feedback__save 端点,auth 透传 session_id→context_key
- 前端 AI 回复下方 👍/👎(可改票、随会话持久化回显),extractSourceIds 解析引用
- ai-kb:feedback chunk + README 运营 SQL 口径(低分 top query / 👎 source)

方向4 页面操作引导:
- 渲染层用 driver.js(高亮可点击挖洞 + 稳定定位),编排层自研
  (脚本 schema / 四级元素定位 / 跨页 pre_action 导航 / 找不到降级文字)
- leave-semantics:跳转动作在点「下一步」后才执行
- markdown.js 渲染 ```ai-guide 围栏为「带我去」按钮;DialogMarkdown 点击启动
- 近义词归一化(创建/新建/新增/添加互通)提升 target 命中
- ai-kb:guide/start-guide chunk + tool-binding 加 show_guide

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:07:08 +00:00
kuaifan
f6067d1bd5 feat(ai-assistant): AI 浮窗/浮按钮移动端适配与流式不中断 2026-06-10 04:05:09 +00:00