支持 Canvas 框选区、成员归属与名称显示模式 #9

Merged
Zayden-Jung merged 1 commits from codex/canvas-frames into main 2026-11-06 03:21:49 +00:00
Collaborator

此前 Canvas 校验拒绝前端新增的框选区,导致包含框的快照无法保存。本 PR 接受 kind/type=frame、data.frameId 和 data.labelMode(hidden/fixed/scaled),保留中文名称、几何及显式成员关系;允许先成员后框的节点顺序。Core 不根据位置重叠创建归属,移动框不自动吸收内容。

校验拒绝不存在或指向非框的 frameId、框嵌套、非零框旋转、框连线和无效名称模式。忽略前端生成的 zIndex/style 显示状态。沿用现有事务、权限、版本和 JSONB,无需新迁移。

测试包含三种名称模式的 PostgreSQL PATCH/GET 往返、前向引用、多类成员、重叠但无归属、无效引用不改变版本及旧快照兼容。ces-control CI #874 已成功:https://gitea.entroia.com/Zayden-Jung/foundry-core/actions/runs/874 。包含格式检查、Go 测试/构建、隔离数据库迁移与集成测试。

前端继续负责拖入/移出时设置 frameId、移动框时移动已有成员,以及固定/缩放标题渲染。已由用户手动合并至 main(022086b);自动部署 #877 已成功:https://gitea.entroia.com/Zayden-Jung/foundry-core/actions/runs/877 。公网 /healthz、/readyz 均返回 200。

此前 Canvas 校验拒绝前端新增的框选区,导致包含框的快照无法保存。本 PR 接受 kind/type=frame、data.frameId 和 data.labelMode(hidden/fixed/scaled),保留中文名称、几何及显式成员关系;允许先成员后框的节点顺序。Core 不根据位置重叠创建归属,移动框不自动吸收内容。 校验拒绝不存在或指向非框的 frameId、框嵌套、非零框旋转、框连线和无效名称模式。忽略前端生成的 zIndex/style 显示状态。沿用现有事务、权限、版本和 JSONB,无需新迁移。 测试包含三种名称模式的 PostgreSQL PATCH/GET 往返、前向引用、多类成员、重叠但无归属、无效引用不改变版本及旧快照兼容。ces-control CI #874 已成功:https://gitea.entroia.com/Zayden-Jung/foundry-core/actions/runs/874 。包含格式检查、Go 测试/构建、隔离数据库迁移与集成测试。 前端继续负责拖入/移出时设置 frameId、移动框时移动已有成员,以及固定/缩放标题渲染。已由用户手动合并至 main(022086b);自动部署 #877 已成功:https://gitea.entroia.com/Zayden-Jung/foundry-core/actions/runs/877 。公网 /healthz、/readyz 均返回 200。
codex-bot added 1 commit 2026-11-06 03:20:32 +00:00
Support canvas frame nodes and explicit membership snapshots
Foundry Go checks / check (push) Successful in 3m13s
Foundry Go checks / check (pull_request) Successful in 4m24s
6f504ebe15
Zayden-Jung merged commit 022086beb8 into main 2026-11-06 03:21:49 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/foundry-core#9