由引擎提供的"前往 {objectLabelPlural}"命令菜单项会解析到错误的对象标签,且连接对象会获得无法正常使用的对象。
环境: 自主托管, v2.39.5 背景: 自 #23795 (合并 2026-08-31) 以来, 元数据副作用引擎对每个对象都无条件地提供了一个"前往 {objectLabelPlural}"命令菜单项(引擎组件键: NAVIGATION),包括没有自己的可导航索引页面的联接/关系对象。 错误 1 - 标签冲突: 在具有对象及其联接表(例如,潜在客户,以及潜在客户联接表 LeadContact、LeadOccupation、LeadAddress)的工作空间中,命令菜单显示多个"前往 X"项,它们都显示相同的解析标签,而不是自己的标签。 通过直接数据库检查已确认 - 存在 4 个独立的 commandMenuItem 行,每行都指向一个不同的对象(潜在客户、潜在客户联接表 LeadContact、LeadOccupation、LeadAddress),它们都共享字面的、未解析的标签值"前往 {objectLabelPlural}"。 前端应独立地插值每个命令的目标对象的复数标签,但它们都以"前往潜在客户"的形式显示。 在正常窗口和隐身模式下都可重现此问题,排除了客户端缓存,这表明存在一个解析/记忆化错误,键值过于广泛(可能仅基于引擎组件键而不是每个命令的唯一 id 或 navigationTargetObjectMetadataId)。 错误 2 - 对联接对象无效: 联接/关系对象在正常使用中没有侧边栏项或独立的索引页面。 它们自动提供的"前往 X"命令无法导航到任何合理的位置,因此点击它不会发生任何事情。 要重现此问题: 创建一个具有至少一个多对多关系的自定义对象(因此会自动创建一个联接对象)。 打开命令菜单(⌘K)。 搜索"前往" - 注意到具有相同标签的多个项,每个项对应一个联接对象以及基础对象。 点击一个联接目标项 - 没有任何事情发生。 建议的修复方向: 根据每个 NAVIGATION 命令的 navigationTargetObjectMetadataId 独立地解析其标签,而不是共享/记忆化的值。 考虑是否应在任何情况下都为联接对象提供 NAVIGATION 命令,或者至少应将其 isActive 设置为 false。
内容来源: twentyhq/twenty