AGC 画布:锚点让位标题栏、生成浮层贴边、拖动误触点击、读秒 100ms 与图集参考口径 #448
Reference in New Issue
Block a user
Delete Branch "fix/agc-canvas-bugfix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
来自 AGC 画布验收(Issue #411)与客户端复测反馈的四条:
@(生成规范有),以及「生成任务」里的读秒应按 0.1s 刷新。根因与改法(前后对照)
1) 锚点只有一份坐标,但两页顶部 chrome 不同
margin: 0.85rem(唯一一档)canvas-overview档,仍0.85remcalc(2.625rem + 0.5rem)(标题栏 42px + 间隙)margin-top过渡 180ms(prefers-reduced-motion下关掉)守卫是跨文件的:用例读
styles.css里.game-resource-book-scene-titlebar的真实min-height,断言「让开的高度 > 标题栏高度」,标题栏改高度而锚点没跟就会红。2) 浮层几何假设了「占位卡永远贴在安全带顶端」
overflow: hidden切掉;卡片靠边时浮层一半在画布外。resolveResourceCanvasGenerationPanelPlacement吃卡片的屏幕顶边,顶边与可用高度都由真实位置算(卡下塞不下就改为盖住占位,且顶边收进安全带);水平用clampResourceCanvasGenerationPanelAnchorX把锚点收进「浮层左右各留 12px」的区间。宽度口径与面板 CSS(min(560px, calc(100% - 24px)))同源,有声明级守卫钉住。3) 卡片的「拖动还是点击」此前是两条链路各写一套
pointerdown/pointerup落在同一节点上时一定会补一次click。资源卡早就用阈值 + 一次性抑制处理过;生成占位卡把「收到过 pointermove」当拖动信号,且没有任何抑制 → 拖一下就开合生成浮层。resourceCanvasGestureExceededDragThreshold(阈值仍取RESOURCE_CANVAS_DRAG_THRESHOLD),资源卡与占位卡共用;占位卡越过阈值才置「拖动中」,并登记一次性点击抑制、由宿主在「点卡片」入口消费。pointerup之后派发的lostpointercapture,最后才是 click)。4) 图集没有
@是通道口径,不是漏画按钮;读秒粒度对齐对话侧POST /api/external/v1/editor/icon-spritesheets/generations:客户端提交体是referenceId(唯一一张独立权威规范图)+iconDescriptions+ 切片参数,没有referenceImageSrcs;结果绑定阶段还硬校验「参考恰好一张、且不等于产物自身」。前端判据与 Rustplatform_art_asset_kind_accepts_user_reference_assets一致(只有图集排除),原生对图集的用户参考是显式拒绝(不是静默丢弃)。@的入口在面板里当场说明为什么(该入口只接受权威规范图,图标写在提示词里),并写进入口矩阵文档;用例遍历底部工具栏每条生成入口,断言「说明行」与「@ 选择器」严格互补、唯一例外是图集。referenceImageSrcs,客户端目前不发),未在本 PR 内改。useLiveNow(LIVE_TIMER_TICK_MS = 100):秒表只订在运行中的那一行上,终态行定格在账本结束时间,面板本身不再订阅(否则每 0.1 秒重建整个侧栏)。验证
npm run test:379 文件 / 4559 通过 / 34 跳过 / 0 失败;npm --prefix apps/ai-game-creator-shell run typecheck、npm run check:encoding、npm run check:doc-index、eslint、prettier --check、git diff --check全过;lostpointercapture清抑制)都会红;读秒粒度把LIVE_TIMER_TICK_MS改回 1000 即红;改用例之前的同步版本对两种错法都会绿(所以上一版没抓住)。未覆盖 / 待确认
关联
docs/project-memory/shared-memory/pitfalls.md新增两条排障口径docs/technical/【AGC】栏目画布底部工具栏入口矩阵-2026-09-13.md补「参考图(@引用)」与「图集为什么没有@」