Commit Graph

83 Commits

Author SHA1 Message Date
ddCat
61af2a652a feat(canvas): 导演台 - 增加彩色骨骼演员、姿势预设与单一构图回写 2026-08-05 16:22:11 +08:00
ddCat
cd326609fa fix(canvas): 添加节点菜单 - 统一命令入口并修复文字溢出与分区拥挤 2026-08-05 14:23:57 +08:00
ddCat
b91298dbdb fix(canvas): 画布工具栏 - 修复设置面板布局与命令标签遮挡 2026-08-05 13:51:52 +08:00
ahyang
1fe3ce367f fix(media): 创作页任务回填与素材入库幂等 (#139)
* feat(media): 创作页 - 回填任务结果并同步素材库

* fix(media): 创作任务 - 回填与素材入库幂等
2026-08-05 09:15:49 +08:00
ahyang
99806e8e51 fix(canvas): 创作任务 - 页面切换保留后台执行并支持及时停止 (#136) 2026-08-05 09:15:26 +08:00
ddCat
c8defa8084 refactor(admin): 模型配置 - 能力与请求协议改为品牌卡片单选 2026-08-04 22:13:47 +08:00
ddCat
8e0deaff48 feat(media): 本地存储 - 支持自定义访问地址与短时签名链接 2026-08-04 22:13:38 +08:00
ddCat
fd100c3626 fix(admin): 存储服务 - 恢复服务器本地与阿里云 OSS 显式选择 2026-08-04 21:43:37 +08:00
ddCat
931531edbc 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
0b522903f2 refactor(platform): 用户工作区 - 收紧素材卡片与分页布局并统一设置页表面 2026-08-04 21:25:00 +08:00
sikongyue
6840678db3 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
爱笑的毛毛虫
1024190476 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
爱笑的毛毛虫
66a70dced4 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
881a0efd1e fix(canvas): 提示词编辑 - 修复可选元数据导致的生产构建失败 2026-08-04 16:36:14 +08:00
ddCat
1217f76b3b feat(*): 功能开放与页面布局 - 新增运维开关并优化后台及创作界面空间利用 2026-08-04 16:24:18 +08:00
JackFlynn
5e93fa7704 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
50d8c2854a feat(*): 分镜创作体系 - 重构画风、提示词模板与视频生成链路 2026-08-04 15:03:41 +08:00
爱笑的毛毛虫
0c4c258a52 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
acaa4bb69f feat(admin): 用户管理 - 支持管理员添加用户 (#104)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key

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

* feat(admin): 用户管理 - 支持管理员添加用户
2026-08-03 22:40:10 +08:00
sikongyue
d2741f39f3 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
爱笑的毛毛虫
dd820616a4 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
469cdc82a3 fix(canvas): 创作页文本流 - 修复流式回复重复拼接 2026-08-03 21:56:31 +08:00
爱笑的毛毛虫
b4d2b34fae 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
d83ec033bb feat(canvas): 绘图工具支持自定义 tldraw License Key (#100)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key

* docs(canvas): 绘图工具 - 添加 License Key 页面截图
2026-08-03 21:38:04 +08:00
爱笑的毛毛虫
9b3ec218e2 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
ddCat
d3b044e009 fix(*): 客户端标识 - 兼容 HTTP 内网访问并修复创造页卡死
Fixes #86
2026-08-03 15:06:09 +08:00
ddCat
72420895b2 feat(canvas): 绘图工具 - 集成 Excalidraw 并支持后台切换默认引擎 2026-08-03 14:58:49 +08:00
ddCat
03b2de7540 fix(canvas): 创作工作台 - 恢复异步媒体任务并完善输入与预览交互 2026-08-03 10:05:15 +08:00
ddCat
c1561df720 fix(canvas): 创作引用 - 收敛引用范围并修复参考图任务提交 2026-08-02 23:20:38 +08:00
ddCat
0253072232 feat(*): 创作体验 - 支持资源技能引用并统一生成反馈与画布列表展示 2026-08-02 22:29:44 +08:00
ddCat
e34986c71f fix(canvas): 创作区 - 接通媒体任务计费并恢复消息滚动跟随 2026-08-02 17:08:44 +08:00
ddCat
53b21e5a73 fix(platform): 统一创作页 - 修复媒体结果可选字段导致发布构建失败 2026-08-02 16:32:27 +08:00
ddCat
adbbe96ce4 feat(*): 技能库与认证体验 - 重构共享技能库并优化登录页面与默认创作入口 2026-08-02 16:27:22 +08:00
ddCat
d222664564 feat(platform): 多模态创作 - 新增统一创作页、历史会话与视频参数控制 2026-08-02 14:52:49 +08:00
爱笑的毛毛虫
f1847f40a1 feat(canvas): 框选 - 新增工具栏「框选」工具,空白处拖动框选后自动回到移动与选择 (#78)
Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-02 14:40:20 +08:00
ahyang
9cbf95dcde feat(platform): 渠道设置 - 增加渠道配置折叠操作 (#77) 2026-08-02 14:40:08 +08:00
爱笑的毛毛虫
a4d2e90852 fix(canvas): 视频重新生成 - 继承上游连线保持并行节点关系而非子节点 (#75)
Co-authored-by: sikongyue <3155157671@qq.com>
2026-08-02 14:39:58 +08:00
爱笑的毛毛虫
7edc461f0a Fix/修复注册页左侧标语断句问题 (#66)
* fix(canvas): 修复技能库分类选项卡选中态样式 - 与空间工作台强调色保持一致

* fix(platform): 注册页标语 - 优化断句避免词语被截断

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: zhaoyue <zhaoyue@rongshantech.com>
Co-authored-by: sikongyue <3155157671@qq.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-08-01 18:32:41 +08:00
爱笑的毛毛虫
8c76316477 fix(canvas): 修复技能库分类选项卡选中态样式 - 与空间工作台强调色保持一致 (#65)
Co-authored-by: zhaoyue <zhaoyue@rongshantech.com>
2026-08-01 15:58:32 +08:00
Danborad
a3b35290de fix(canvas): 节点复制 - 修复内部粘贴和批量状态残留 (#60)
Co-authored-by: Danborad <Danborad@users.noreply.github.com>
2026-08-01 15:38:15 +08:00
ddCat
995f1dbf99 fix(canvas): 图片批次主图 - 原子同步媒体元数据并标记当前主图 2026-08-01 10:35:48 +08:00
ddCat
3676a48ceb fix(media): 视频任务 - 统一轮询超时并支持失败任务人工恢复 2026-07-31 23:24:03 +08:00
ddCat
55b37df04c fix(canvas): 图片生成尺寸 - 显式比例不再被参考图节点尺寸覆盖 2026-07-31 21:18:43 +08:00
ddCat
81868922c6 feat(canvas): 视频节点 - 接入 Vidstack 播放器并收敛任务查询范围 2026-07-31 20:19:12 +08:00
ddCat
14da5e8a19 feat(*): 画布创作 - 支持文本多模态生成并优化媒体节点、连接线与视频预览
Fixes #59
2026-07-31 19:44:02 +08:00
ddCat
8617e2241f fix(canvas): 图生图节点 - 自动结果继承来源图片尺寸 2026-07-31 17:17:30 +08:00
ddCat
ee8c850665 feat(canvas): 节点连接 - 新增外置标题与跟随锚点快速连线 2026-07-31 17:17:01 +08:00
ddCat
c1985b1c10 fix(*): 公告与画布 - 支持公告重新发布并阻止浏览器误缩放
Fixes #55
2026-07-31 15:46:58 +08:00
ddCat
ad254784e4 feat(*): 用户工作台 - 统一黑白灰空间界面并整理画布入口 2026-07-31 15:33:37 +08:00
ddCat
93672ce245 fix(canvas): 图片生成 - 避让已有节点并保留重新生成结果
Fixes #57

Fixes #58
2026-07-31 13:58:44 +08:00