Commit Graph

125 Commits

Author SHA1 Message Date
爱笑的毛毛虫
e798908598 fix(canvas): 智能体面板 - 修复交互失效与布局异常 (#152)
- 为 motion.aside 补充 pointer-events-auto,恢复面板内输入框、按钮等交互
- section 启用 flex 垂直布局并修正 paddingRight 条件,避免面板跑到下方
- PANEL_SLOT_TOP_OFFSET 从 288 调整为 80,移除活动任务面板不必要的预留空间

Closes #151

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-05 23:12:57 +08:00
ddCat
6ae5692849 fix(media): 音频任务 - 支持异步 Provider 协议与结果校验 (#146)
Closes #146
2026-08-05 19:38:04 +08:00
ddCat
cd85a45936 fix(api): Token 账单 - 按真实用量结算预授权差额 (#145)
Closes #145
2026-08-05 17:06:07 +08:00
ddCat
4721c1e97f fix(api): 文本回放 - 增加增量配额与生命周期清理 (#144)
Closes #144
2026-08-05 16:54:47 +08:00
ddCat
38c4f63e2e fix(canvas): 导演台人物 - 缩小 Dock 并统一基础人偶初始化 2026-08-05 16:34:50 +08:00
ddCat
40a1a86563 feat(canvas): 导演台 - 增加彩色骨骼演员、姿势预设与单一构图回写 2026-08-05 16:22:11 +08:00
ddCat
16c31a8ca1 fix(canvas): 添加节点菜单 - 统一命令入口并修复文字溢出与分区拥挤 2026-08-05 14:23:57 +08:00
ddCat
54ffdebbd9 fix(canvas): 画布工具栏 - 修复设置面板布局与命令标签遮挡 2026-08-05 13:51:52 +08:00
ddCat
c8158b159e fix(canvas): 模型选择 - 画布拖拽前关闭悬浮菜单
Fixes #138
2026-08-05 10:33:44 +08:00
ahyang
78bf6a2c47 fix(media): 创作页任务回填与素材入库幂等 (#139)
* feat(media): 创作页 - 回填任务结果并同步素材库

* fix(media): 创作任务 - 回填与素材入库幂等
2026-08-05 09:15:49 +08:00
ahyang
8c31af51d5 fix(canvas): 创作任务 - 页面切换保留后台执行并支持及时停止 (#136) 2026-08-05 09:15:26 +08:00
ddCat
b42b8e58cf refactor(admin): 模型配置 - 能力与请求协议改为品牌卡片单选 2026-08-04 22:13:47 +08:00
ddCat
8f0f80e31d feat(media): 本地存储 - 支持自定义访问地址与短时签名链接 2026-08-04 22:13:38 +08:00
爱笑的毛毛虫
bfdc1d76f5 fix(ui): 浅色模式交互反馈 — 发送按钮hover可见性+侧栏分界线+cursor:pointer (#121) (#134)
三处浅色模式视觉可用性问题修复:

1. 创作工作室发送按钮 hover 白底白字(严重 bug)
   - 根因:globals.css L4944 .creation-chat-submit:hover 全局设 background:#fff,
     而浅色模式 L4947 html:not(.dark) 覆盖了正常态为 #202328 + color:#fff,
     hover 未被浅色覆盖 → 白底白字,按钮完全消失
   - 修复:新增 html:not(.dark) .creation-chat-submit:hover 覆盖为 #2d3139

2. antd primary 按钮 hover 过微(画布助手等全局)
   - 根因:app-theme.ts Button 组件覆盖只在暗色模式有,浅色模式 colorPrimary #171717
     hover 经 antd 算法加暗到 #000000,#171717→#000000 几乎不可见
   - 修复:浅色模式新增 colorPrimaryHover #404040 / colorPrimaryActive #525252
     (提亮而非加暗,让交互反馈可感知)

3. 侧栏与工作区边界模糊
   - 根因:--workspace-border 浅色值 rgba(15,23,42,0.1) 仅 10% 不透明度
   - 修复:提到 0.14,增强分界可见性

4. cursor:pointer 缺失
   - 根因:Tailwind v4 preflight 不自动给 <button> 加 cursor:pointer,
     .creation-chat-submit / .creation-studio-submit 仅 disabled 有 cursor:not-allowed
   - 修复:两按钮基础样式补充 cursor:pointer

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 21:53:56 +08:00
ddCat
6e62d04fcd fix(admin): 存储服务 - 恢复服务器本地与阿里云 OSS 显式选择 2026-08-04 21:43:37 +08:00
爱笑的毛毛虫
8c92c77741 fix(canvas): 暗色主题 shadow token 覆盖 — 黑影不可见改白色微影(审计 D4/P2-D2) (#133)
:root 的 --shadow-xs~2xl 用 rgba(0,0,0,0.04~0.16),.dark 块无覆盖,
暗色下黑影在深色背景上不可见,节点/dock/面板/对话框丢失抬升感。

在 .dark 块新增 --shadow-* 覆盖,改用白色微影(0.04~0.1)制造抬升:
- shadow-xs 0.04 → shadow-2xl 0.1,与亮色档位递进一致但更低不透明度
  (白影在深色上比黑影更显眼)
- 组件 token(--node-shadow/--dock-shadow/--panel-shadow/--modal-shadow)
  均引用 var(--shadow-*),覆盖自动级联,无需逐组件改

--cn-spatial-shadow(内联 boxShadow 用,0.4)已有暗色变体保留不动;
--shadow-glow-*(蓝色辉光)双主题通用不改。

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 21:28:25 +08:00
ddCat
314eee1d62 refactor(canvas): 浮层布局 - 合并 PR #132 的 inset token 体系
# Conflicts:
#	web/src/components/canvas/canvas-active-task-panel.tsx
#	web/src/components/canvas/canvas-asset-tray.tsx
2026-08-04 21:26:53 +08:00
ddCat
a03eb9ed0a refactor(platform): 用户工作区 - 收紧素材卡片与分页布局并统一设置页表面 2026-08-04 21:25:00 +08:00
爱笑的毛毛虫
e84fbb8a76 refactor(canvas): 硬编码字号/圆角清理 → 语义 token(审计 D1/P1-3) (#131)
清理画布组件散落的硬编码字号与圆角,统一走 token 体系:

字号:
- 新增 --fs-nano(7px) 覆盖原 text-[6px]/text-[7px] 子微型标注
  (角标计数、节点预览、% 后缀)
- text-[19px] → --fs-heading-lg(18px)

圆角(就近映射,±1~2px):
- rounded-[3px] → --r-xs | rounded-[5px] → --r-sm
- rounded-[6px] → --r-sm | rounded-[7px] → --r-md
- rounded-[18px] → --r-2xl

涉及 11 个组件文件。rounded-[1px](minimap 视口指示框,刻意尖角)保留。
颜色项(bg-white/border-stone)经核实均带 dark: 变体,属标准 Tailwind
双主题模式非误用,不在本轮处理。

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 21:20:53 +08:00
sikongyue
bd73d0a3b7 refactor(canvas): 浮层 inset token 体系重建 + 全量应用(审计 D2/P0-2)
#116 曾引入 --canvas-inset-* token,上游合并后丢失。本轮重新建立画布
安全区 token 并全量替换硬编码定位,所有替换值等价(零视觉变化)。

新增 token(globals.css 6b 段,紧随 Elevation):
- --canvas-inset-x/y: 16px        浮层水平/垂直安全区
- --canvas-topbar-h: 64px         顶部栏高度
- --canvas-topbar-offset: 72px    顶栏下方浮层顶部偏移
- --canvas-dock-popover-offset: 50px  dock 弹出面板底部偏移

替换:
- dock 根 inset-x-4/bottom-4 → --canvas-inset-x/y
- dock 弹出面板 bottom-[50px] ×4(appearance/add-node/zoom/asset-tray)→ --canvas-dock-popover-offset
- 顶栏 h-16/px-4 → --canvas-topbar-h/--canvas-inset-x
- 活动任务面板 top-[72px] → --canvas-topbar-offset

活动任务面板 right-3(12px) 刻意保留:与 16px 安全区不同且改它会级联到
--canvas-panel-width 公式(PR #130 领地),不宜混入。
2026-08-04 21:18:51 +08:00
爱笑的毛毛虫
dcddc59d28 refactor(canvas): 浮层宽度 token 提取 — sidebar/panel-width 去硬编码 #126 (#130)
补齐审计第 5 项「配套 token 提取」遗留:

- 新增 --canvas-sidebar-width(232px) 与 --canvas-panel-width(min(332px,calc(100vw-24px)))
  两个布局 token,归入 globals.css Canvas 布局段
- canvas-project-sidebar 侧栏 w-[232px] → w-[var(--canvas-sidebar-width)]
- canvas-active-task-panel 浮动面板 w-[min(332px,calc(100vw-24px))] →
  w-[var(--canvas-panel-width)],消除审计 P0-8.1 重复硬编码公式

助手面板已改用动态 width prop(320–760px 可调),不消费该静态 token。

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 21:00:18 +08:00
爱笑的毛毛虫
d6a42d53a1 refactor(canvas): 浮层体系重构 — z-index 14档+专注模式+工具栏click触发 #126 #127 #128 (#129)
按视觉层重设计 z-index(12→14 档),新增节点层/激活节点层/节点工具栏层等
语义 token,并下沉节点内部 stacking context(--node-z-content/overlay/handle)
与 dock 子面板(--dock-z-popover),消除硬编码 z 值。

新增专注模式(避让分屏可切换):use-focus-mode 管理 localStorage 偏好与小屏
(<1024px)强制避让;助手面板从 flex 改为 absolute + 垂直分槽(顶部 288px
让位活动任务面板),画布区按面板宽度动态 padding;顶栏新增 PanelRight
切换按钮并带强制态反馈。

节点工具栏由 hover+select 触发放为 click-only(选中即显),组件由
canvas-node-hover-toolbar 重命名为 canvas-node-toolbar;移除 project 与
render-model 中冗余的 toolbarNodeId 状态。

活动任务面板 z-index 由 --z-modal-overlay(110) 降至 --z-panel-floating(80),
归位浮动面板层;AGENTS.md Elevation 同步至 14 档。

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 20:46:25 +08:00
爱笑的毛毛虫
850375158c fix(settings): 提示词偏好 - StrictMode 双请求竞态与加载失败错误态缺失 (#125)
- 引入 useRef 请求计数器,消除 React 18 StrictMode 双请求引起的状态竞态
- 新增 loadError 状态,加载失败时展示带重试按钮的错误态
- 避免网络错误时误导性地显示「暂无可配置的提示词模板」

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-04 19:57:11 +08:00
ddCat
24644c237f fix(canvas): 提示词编辑 - 修复可选元数据导致的生产构建失败 2026-08-04 16:36:14 +08:00
ddCat
f439d600ba feat(*): 功能开放与页面布局 - 新增运维开关并优化后台及创作界面空间利用 2026-08-04 16:24:18 +08:00
JackFlynn
8f7c492b70 feat(platform): 开发环境 - 新增 Docker 热更新并完善私网上游指引 (#122)
* feat(platform): 开发环境 - 新增 Docker 热更新开发配置

* docs(platform): 开发环境 - 记录 Fork 分支同步流程

* fix(platform): 开发环境 - 避让端口冲突并持久化构建缓存

* fix(platform): 模型渠道 - 改进私网上游配置指引

* docs(platform): 开发环境 - 本机升级流程仅保留在本地手册

* feat(security): 自定义渠道 - 允许白名单主机使用 HTTP 中转

---------

Co-authored-by: sqy941013 <sqy941013@users.noreply.github.com>
2026-08-04 16:22:27 +08:00
ddCat
d4018123e1 feat(*): 分镜创作体系 - 重构画风、提示词模板与视频生成链路 2026-08-04 15:03:41 +08:00
爱笑的毛毛虫
98382ba976 feat(canvas): 工具栏统一化 — 注册表驱动+上下文感知+自定义排序+危险隔离 #95 (#105)
将三个硬编码工具栏(主工具栏/多选工具栏/节点悬停工具栏)统一改造为注册表驱动体系:

- 新增 tool-registry 核心基础设施(ToolDefinition/ToolContext/ToolbarHandlers 类型、
  注册表解析器 resolveToolbarEntries/resolveToolbarTools、偏好持久化 readToolbarPrefs/persistToolbarPrefs)
- 提取四个工具定义文件(main/selection/node-hover/add-node-menu),通过 applicable 谓词实现上下文感知
- FloatingDock 新增 expands 字段(aria-expanded 语义修正)和 danger-group 分组渲染(危险操作视觉隔离)
- 主工具栏新增工具栏设置面板(ToolbarSettingsModal),支持拖拽排序+显隐控制(motion/react Reorder,零新增依赖)
- 偏好持久化到 scopedLocalStorage,按工具栏独立存储

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 23:22:44 +08:00
ahyang
68e5b0f662 feat(admin): 用户管理 - 支持管理员添加用户 (#104)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key

* docs(canvas): 绘图工具 - 添加 License Key 页面截图

* feat(admin): 用户管理 - 支持管理员添加用户
2026-08-03 22:40:10 +08:00
sikongyue
5e2ddd9888 feat(canvas): 动效系统与响应式适配 - token落地+断点体系+无障碍 #99
基于 Wayfinder #99 决议,完成动效/响应式/无障碍三大维度落地:

1. 动效 token 迁移(CSS 动画)
   - 33 处 easing 替换为 var(--motion-ease-out/in-out/linear)
   - 7 处有限动画 duration 替换为 var(--motion-dur-*-calc)
     (含 motion-scale 降级,自动联动 prefers-reduced-motion)
   - canvas-node batch 动画内联值替换为 token

2. aceternityMotion 对齐 + motion/react 硬编码替换
   - 添加 JS↔CSS token 映射文档注释
   - 3 处 motion/react 硬编码 duration 替换为 aceternityMotion.* 引用

3. infinite 装饰动画 reduced-motion 降级
   - L1 (prefers-reduced-motion): 缩短至 0.01ms + 单次播放
   - L2 (.no-motion): animation: none 完全禁用
   - 覆盖 9 个 infinite 动画类(连线流光/边框流光/极光标题等)

4. 响应式断点体系
   - @theme 新增 3 断点 token: --breakpoint-tablet(768)/desktop(1024)/wide(1440)
   - 修复 canvas-toolbar 外观面板缺 max-w 导致移动端溢出

5. 无障碍
   - 画布页新增 skip-to-content 链接(键盘用户跳过侧栏直达画布)
   - 任务进度面板 aria-live="polite"(屏幕阅读器播报任务数变化)

Closes #99
2026-08-03 22:38:31 +08:00
ddCat
ef311c7470 fix(canvas): 节点卡片 - 去掉左侧类型色带 2026-08-03 22:28:25 +08:00
爱笑的毛毛虫
39844d7c8d feat(canvas): 面板层级管理 — 五层Elevation体系+渐进式三区+z-index全量迁移 #98 (#102)
* feat(canvas): 面板层级管理优化 - 五层Elevation+渐进式三区+进度增强 #98 #94

基于 Wayfinder 地图 #98 决议执行面板层级管理优化:

1. 五层 Elevation 体系(决策1)
   - 画布组件 z-index 硬编码值全部迁移到 token
   - L0 画布层 → L1 工具层 → L2 面板层 → L3 对话框层 → L4 通知层
   - 涉及 14 个 .tsx 文件,0 处 z-[N] 硬编码残留

2. prompt 面板渐进式三区(决策2)
   - B区参数区改为手风琴折叠模式(默认折叠)
   - 新增 SlidersHorizontal + ChevronDown 图标切换
   - 点击展开 video 工具参数,收起后释放视觉空间
   - A区核心区(prompt+生成)始终展开

3. 任务进度条增强(决策3)
   - 进度条高度 1px→1.5px,视觉更醒目
   - 新增 shimmer 扫描动画(running 态,1.4s/cycle)
   - 新增百分比数字显示(tabular-nums 等宽数字)
   - 新增 indeterminate 模式(无百分比时循环扫描)
   - 尊重 prefers-reduced-motion(reducedMotion 时禁用动画)

4. CSS 动画
   - 新增 @keyframes canvas-task-progress-shimmer
   - .canvas-task-progress-shimmer 类

Closes #98

* refactor(canvas): z-index 全量迁移到五层Elevation token #98 #94

补全 #98 五层 Elevation 体系的剩余硬编码 z-index 清理:
- 三个设置弹层(图/音/视频)zIndex:1200 → var(--z-popover)
- model-setup-guide z-[900] → var(--z-toast)
- 项目侧栏 z-30 → var(--z-panel),章节预览 z-50 → var(--z-panel-floating)
- shared 页头/缩放控件/访客提示 z-[80]/z-[70] → var(--z-panel-floating),右键菜单 z-[90] → var(--z-modal)
- project 缩放控件容器 z-50 → var(--z-panel),绘图加载遮罩 z-[500] → var(--z-toast)
- 反馈面板 z-[90] → var(--z-panel-floating)

共 16 处全局浮层 z-index 迁移到 token,消除层级冲突隐患。

---------

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 22:16:25 +08:00
ddCat
6eb77b93a0 fix(canvas): 创作页文本流 - 修复流式回复重复拼接 2026-08-03 21:56:31 +08:00
爱笑的毛毛虫
d22526506d feat(canvas): 设计token系统 - 建立三层架构骨架 (#101)
* feat(canvas): 设计token系统 - 建立三层架构骨架 #94 #96

建立 Primitive→Semantic→Component 三层设计 token 体系,覆盖 9 个维度:
色彩/间距/字号/圆角/阴影/Elevation/动效/描边/不透明度。

- Primitive 层:纯值无语义,含 neutral 色板+节点类型色板+状态色、
  4px 栅格间距、10档字号、10档圆角、阴影+glow、12档 z-index、
  动效(duration+easing+delay+motion-scale)、描边、不透明度
- Semantic 层:引用 Primitive,随主题切换,含通用语义色、
  Canvas 语义(--cn-*)、Aceternity spatial 语义、节点类型语义、状态语义
- Component 层:引用 Semantic,含 Dock/Node/Modal/Panel/Prompt面板/
  进度条/缩放控制专属 token
- @theme inline 映射:节点类型色、状态色、Canvas 语义色、字号映射到 Tailwind utility
- prefers-reduced-motion 三级降级(L0正常/L1简化/L2禁用)
- AGENTS.md 新增 Design Token 使用规范,禁止新增裸 px 值
- 附带修复 canvas-drawing-excalidraw-editor.tsx TS7006 类型注解
- 附带修复 canvas-drawing-editor-modal.tsx TS2339 engine 字段缺失

Wayfinder 决策来源:#95 #96 #97 #98 #99

* fix(canvas): 设计token系统 - 修复CSS变量循环引用和命名兼容性 #94 #96

修复两个问题:

1. CSS变量循环引用:Primitive层 --color-node-*/--color-status-* 与
   @theme inline 中的 --color-node-*/--color-status-* 同名,经 Semantic
   层中转后形成循环(A→B→A)。改用 --palette- 前缀隔离 Primitive 色板,
   打断循环链路。

2. 变量名小数点兼容性:--space-0.5/1.5/2.5/3.5 中的小数点被部分 CSS
   linter 误判为类选择器。改为 --space-half/-1-half/-2-half/-3-half,
   保持语义清晰的同时提升工具链兼容性。

* refactor(canvas): 画布核心组件 - 迁移硬编码值到设计token #94

批次1:5个画布核心组件的裸 text-[Npx]/rounded-[Npx]/z-[N] 替换为
对应设计token,统一视觉语言:

- canvas-node.tsx:text-[10/11/9/17px]→fs-tiny/label/micro/heading-lg,
  rounded-[18px]→node-radius
- canvas-node-hover-toolbar.tsx:text-[11/17/10/9px]→fs-*,
  rounded-[14/9px]→dock-radius/dock-item-radius,z-[70]→z-panel-floating
- canvas-toolbar.tsx:text-[9/10/11px]→fs-*,
  rounded-[17/16/11/10px]→panel-radius/dock-item-radius-*,
  z-[30/40]→z-toolbar/z-toolbar-floating
- canvas-assistant-panel.tsx:text-[8/9/10/11px]→fs-*
- canvas-script-node.tsx:text-[9/10/11px]→fs-*

视觉零回归(token值与原硬编码值一致),代码可维护性提升。

* refactor(canvas): 画布辅助组件 - 迁移硬编码值到设计token #94

批次2:6个画布辅助组件的裸 text-[Npx]/rounded-[Npx]/z-[N] 替换为
对应设计token:

- canvas-style-picker-modal.tsx:text-[10/11px]→fs-tiny/label
- canvas-file-drop-overlay.tsx:z-[110]→z-modal-overlay,
  rounded-[28/20px]→r-5xl/r-3xl
- canvas-character-reference-node.tsx:text-[10px]→fs-tiny
- canvas-drawing-editor-modal.tsx:text-[11px]→fs-label
- canvas-video-prompt-tools.tsx:z-[1500]→z-toast,
  rounded-[12/10px]→r-lg/dock-item-radius
- asset-picker-modal.tsx:text-[10px]→fs-tiny

视觉零回归(token值与原硬编码值一致)。

* refactor(*): 全项目硬编码值 - 批量迁移到设计token #94

批次3:全项目 .tsx 文件中 372 处裸 text-[Npx]/rounded-[Npx] 批量
替换为对应设计token,剩余 25 处无直接 token 对应的低频值保留。

替换覆盖(按频率):
- text-[10px]→fs-tiny (132处)
- text-[11px]→fs-label (100处)
- text-[9px]→fs-micro (45处)
- text-[12px]→fs-caption, text-[13/14px]→fs-body, text-[15px]→fs-body-lg
- text-[18px]→fs-heading-lg, text-[22px]→fs-title, text-[8px]→fs-micro
- rounded-[9/10px]→dock-item-radius, rounded-[12px]→r-lg
- rounded-[14px]→dock-radius, rounded-[16px]→r-2xl
- rounded-[17px]→panel-radius, rounded-[8px]→r-md

涉及 components/ 和 pages/ 下所有 .tsx 文件。
视觉零回归(token值与原硬编码值一致)。

* feat(canvas): 节点视觉层次规范 - 色带+状态徽章+四态递进 #97 #94

基于 Wayfinder 地图 #97 决议执行节点视觉重设计:

1. 节点类型色带(决策1)
   - 新增 nodeTypeColorVar() 函数,10种节点类型对应色带色
   - 节点左侧3px色条,引用 --cn-type-* token
   - 远距离最强信号,用户扫视画布即可识别节点类型

2. 节点状态徽章(决策2)
   - 新增 NodeStatusBadge 组件,loading/success/error 三态
   - 左上角圆角徽章,backdrop-blur 玻璃质感
   - success 态 2s 后自动淡出(canvas-status-success-fade 动画)

3. 四态递进视觉权重(决策3)
   - idle:无额外阴影
   - hover:轻微抬升阴影(16px 48px)
   - selected:2px 边框环(accent.primary 40% 透明度)
   - selected-primary:4px 软色环 + resize handle
   - active:6px 外发光环 + inner glow(最强强调)
   - 120-150ms ease-out 过渡

4. 阴影迁移
   - boxShadow 从硬编码改为分层语义化表达
   - 边框色 hover 态使用 color-mix 动态加深

Closes #97

---------

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 21:38:38 +08:00
ahyang
57d63aadfc feat(canvas): 绘图工具支持自定义 tldraw License Key (#100)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key

* docs(canvas): 绘图工具 - 添加 License Key 页面截图
2026-08-03 21:38:04 +08:00
爱笑的毛毛虫
a447c81899 fix(canvas): 人物质感变体自动触发生成,修复缩略图不变 #91 (#92)
- use-canvas-media-tools.ts: createPortraitTextureNode 改为 generatePortraitTextureNode,
  节点创建后立即触发后端生成任务(与情绪/多视角/局部编辑保持一致):
  使用 nodeReferenceImage 获取源图引用,buildPortraitTexturePrompt 构建提示词,
  runBackendCanvasGenerationTask 执行生成,完成后更新缩略图
- project.tsx: 同步重命名 createPortraitTextureNode → generatePortraitTextureNode
- canvas-drawing-excalidraw-editor.tsx: getDimensions 参数补充 number 类型注解
- canvas-drawing-editor-modal.tsx: Pick 类型补充 engine 字段

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 20:11:13 +08:00
爱笑的毛毛虫
46091c8c67 fix(canvas): 移动端侧边栏适配 — 抽屉式隐藏 + 汉堡菜单 + 全页面 scrim #89 (#90)
- app-top-nav.tsx: 移动端侧边栏默认 w-0(完全隐藏),展开时通过 is-mobile-expanded
  变为 absolute 浮层;scrim 移除 spatialWorkbench 条件,全页面通用;
  stage 区域添加 lg:hidden 汉堡菜单按钮切换侧边栏显隐
- globals.css: 移动端 @media 规则通用化,is-mobile-expanded 浮层行为从
  .is-spatial 限定改为 .app-workspace-shell 通用,scrim left 从 202px 改为 0

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 19:52:32 +08:00
ddCat
68753fa439 fix(*): 客户端标识 - 兼容 HTTP 内网访问并修复创造页卡死
Fixes #86
2026-08-03 15:06:09 +08:00
ddCat
6058602bf2 feat(canvas): 绘图工具 - 集成 Excalidraw 并支持后台切换默认引擎 2026-08-03 14:58:49 +08:00
ddCat
8ec10669f1 fix(canvas): 创作工作台 - 恢复异步媒体任务并完善输入与预览交互 2026-08-03 10:05:15 +08:00
爱笑的毛毛虫
3fb5545c11 fix(canvas): 分镜脚本节点文字溢出与视频模型下拉异常 #84 (#85)
* fix(canvas): 分镜脚本节点文字溢出与视频模型下拉异常 #84

- CompactInput 补齐 overflow-y-auto/whitespace-pre-wrap/break-words,长文本不再横向溢出撑开列宽
- filterModelsByCapability 增加 modelCosts[].protocol 协议层回退,未显式配置 capability 时通过协议识别能力
- isVideoModelName 扩展 pika/runway/gen-3/hunyuan-video 等主流视频模型名关键字
- ModelPicker.options 保留当前选中 value,避免过滤后 options 为空触发跳转设置页

* fix(canvas): 模型过滤协议反向排除 + 分镜脚本节点模型选择提示 #84

- filterModelsByCapability 协议层提升至最高优先级,协议明确属于其他能力时直接排除,
  防止 video/image/audio 协议的模型被误标为 text 后混入文本下拉
- isVideoModelName 补充 cogvideo/mochi/latte/stable-video/svd/animatediff/ltx-video/minimax-video/abab-video 等关键字
- isImageModelName 补充 nano-banana/ideogram/recraft/playground/leonardo 等关键字
- 分镜脚本节点 ModelPicker 包裹 Tooltip,提示"脚本生成仅支持文本模型"

* fix(canvas): 节点标题截断修复 — flex min-width 约束 + 宽度边界 + hover tooltip

- NodeExternalHeader: 容器增加 max-w-full 双重约束,窄节点时不越界,宽节点时上限 240px
- NodeExternalHeader: 标题 span 增加 min-w-0,解决 flex min-width:auto 导致 truncate 失效
- 所有节点标题(绘图/技能/角色参考/音频/分镜脚本)增加 title 属性,hover 显示完整标题
- AudioNodeContent: 标题 span 增加 min-w-0,修复 flex 子项截断

* fix(canvas): 节点顶部标题真正截断 — JS 计算 maxWidth + overflow-hidden + flex-1

- NodeExternalHeader 容器: 移除 Tailwind 级联冲突的 max-w-[240px]/max-w-full,
  改用 JS 计算 Math.min(240, node.width) 作为 inline style maxWidth,
  从根本上解决两个 max-width 声明的优先级不确定问题
- 容器增加 overflow-hidden 作为第二道防线
- 内部 text/input/button 元素改用 flex-1 + min-w-0 替代固定 max-w-[Npx],
  让 flex 子项自动填充可用空间,文本在剩余空间内截断

* fix(canvas): 节点标题缩放溢出 — 考虑 canvas zoom scale

- maxHeaderWidth 改为 Math.min(240, node.width * scale),
  因为 header 的视觉宽度 = maxHeaderWidth(inverseScale 与 canvas scale 抵消),
  而节点的视觉宽度 = node.width * scale,两者必须比较同一维度
- 修复 zoom 缩小时(scale < 1)header 视觉宽度超过节点视觉宽度的溢出问题

---------

Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-03 08:40:04 +08:00
ddCat
8c2c68e6d0 fix(canvas): 创作引用 - 收敛引用范围并修复参考图任务提交 2026-08-02 23:20:38 +08:00
ddCat
bb65da4aa8 fix(canvas): 模型选择 - 恢复创建版耗时标签条件避免生产构建失败 2026-08-02 22:42:19 +08:00
ddCat
8c573352d5 feat(*): 创作体验 - 支持资源技能引用并统一生成反馈与画布列表展示 2026-08-02 22:29:44 +08:00
ddCat
d07f7c1deb fix(canvas): 生成任务 - 恢复模型请求配置解析依赖 2026-08-02 17:13:43 +08:00
ddCat
247af966b7 fix(canvas): 创作区 - 接通媒体任务计费并恢复消息滚动跟随 2026-08-02 17:08:44 +08:00
ddCat
88a7f900dd fix(platform): 统一创作页 - 修复媒体结果可选字段导致发布构建失败 2026-08-02 16:32:27 +08:00
ddCat
401600d165 feat(*): 技能库与认证体验 - 重构共享技能库并优化登录页面与默认创作入口 2026-08-02 16:27:22 +08:00
爱笑的毛毛虫
d6e5c3748b feat(platform): 工作台侧边栏 - 新增滚动渐变遮罩与隐身滚动条,提升可滚动提示 (#80)
Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-02 16:17:54 +08:00
ddCat
64f32d3607 feat(platform): 多模态创作 - 新增统一创作页、历史会话与视频参数控制 2026-08-02 14:52:49 +08:00