SpacetimeDB LLM One-Shot 基准中的消息转发(Message Forwarding)功能规格与实现解析
SpacetimeDB LLM One-Shot 基准中的消息转发Message Forwarding功能规格与实现解析【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB在 SpacetimeDB 仓库的tools/llm-oneshot基准测试工具中chat-app 提示词系统采用功能积木 语言配置的模块化设计features/17_forwarding.md 是其中第 17 个功能积木专门定义消息转发这一能力的验收标准与 UI 契约。本文以该文档为主体完整展开它的 5 条功能要求与 UI 契约并结合提示词系统的组织方式、SpacetimeDB 实时订阅模型与仓库中已有的生成产物说明这条转发规格在 AI 一次成型one-shot生成场景中如何落地、如何被自动验证。功能文件在 One-Shot 基准体系中的位置要理解17_forwarding.md的作用先看它所在的 提示词系统 结构。该系统为对比 SpacetimeDB 与 PostgreSQL 上 AI 生成应用的能力而设计按三层组织prompts/ ├── features/ # 功能积木building blocks每个文件定义一个功能 │ └── 17_forwarding.md ├── composed/ # 累积式完整提示词语言无关 │ └── 17_forwarding.md ├── language/ # 语言/后端配置小型文件 │ ├── typescript-spacetime.md │ ├── typescript-postgres.md │ ├── rust-spacetime.md │ └── csharp-spacetime.md ├── grading_rubric.md └── grading_checklist.md使用方式是语言文件 累积提示词拼接后一次性交给模型执行例如把 typescript-spacetime.md 与某个composed/级别的文件组合让模型一次性生成完整应用。这一点在 llm-oneshot 的 README 中有完整的分步说明在 IDE 中打开tools/llm-oneshot作为工作区、选择模型、拖入两个提示词文件后执行。关键机制是累积性cumulative每个级别包含此前所有功能。features/17_forwarding.md是独立的转发功能积木而 composed/17_forwarding.md 是把基础聊天 → 定时消息 → 已读回执 → …… → 消息转发共 17 组功能拼成的完整提示词。也就是说要求模型实现消息转发时它同时还需要实现前 16 组功能基本聊天、打字指示、已读回执、未读计数、定时消息、阅后即焚、表情回应、编辑历史、实时权限、在线状态、话题线程、私有房间与 DM、活跃度指示、草稿同步、匿名迁移、置顶消息、用户资料、提及、书签消息。一个值得注意的事实提示词 README 中的级别表目前只列到 12匿名迁移而composed/目录下实际已扩展至 19 个级别13_pinned至19_polls。从目录结构看消息转发17是后期新增的基准项属于在 15 个基础功能之上继续加压的一档。功能规格转发的五条验收要求features/17_forwarding.md 原文只有 5 条要点每一条都是可验收的硬性要求成员资格约束用户只能把消息转发到自己所在is a member of的另一个频道。转发目标不是任意图形节点而是受成员关系过滤的集合——这与提示词系统中既有的权限模型房间创建者即管理员、被踢用户立即失去访问权保持一致。交互入口鼠标悬停hover消息时出现 Forward 按钮点击后打开一个频道选择器channel picker。注意hover 才显示这一细节它意味着转发按钮属于消息操作按钮组与提示词中其他功能Pin、Bookmark、Reply 等共用同一套悬停显示的交互约定而不是常驻控件。来源归属attribution被转发消息在目标频道中渲染时必须带有 Forwarded from #original-channel by user 的归属标注。这里包含两个数据要素来源频道名#original-channel和执行转发的用户名user。原消息不可变原消息不会被修改——转发创建的是一个副本copy。这是转发功能的核心数据语义不是引用/重定位而是在目标频道插入一条带元数据的新消息。实时性转发后的消息对所有目标频道成员实时可见不允许依赖轮询或手动刷新。UI 契约面向自动化测试的接口定义累积提示词 composed/17_forwarding.md 开头有一段重要声明每个功能都附带 UI contract 小节规定了用于自动化测试的必需元素属性模型必须遵守这些契约——它们定义了用户可见界面而架构、状态管理和后端设计则完全由模型自行决定。消息转发的 UI 契约共 4 条与功能要点一一对应契约项要求Forward 按钮button文本为 Forward或aria-label包含 forward且仅在消息 hover 时可见频道选择器一个列表或下拉list or dropdown展示用户可转发到的频道名归属标注转发后的消息显示包含 Forwarded 或 forwarded from 的文本原消息无痕迹源消息上不得出现任何 forwarded 指示标记这 4 条契约之所以重要是因为它们是可被 Playwright 类测试脚本直接断言的 DOM 事实按钮文本/aria-label 可查询、归属文本可正则匹配、原消息无标记是一个反向断言。契约把转发做对了没有从主观体验变成了可自动判定的是非题这正是 one-shot 基准可重复评分的前提。契约中还隐含了一个易被模型忽略的设计约束Original unchanged。不少实现会顺手在原消息上加已转发徽标这在契约里属于不合格行为——它违反了转发创建副本、原消息不被修改的语义也会让源消息无 forwarded 指示这条断言直接失败。结合 SpacetimeDB 实时模型看转发如何落地typescript-spacetime.md 语言文件规定了生成应用的形态后端是 SpacetimeDB TypeScript 模块服务端 TS客户端是 React Vite TypeScript代码只允许落在.../backend/spacetimedb/与.../client/src/两个目录内。基于这一约束和转发规格的五条要求可以推导出该功能的典型实现形态从提示词体系与 SpacetimeDB 的实时同步模型推断数据模型消息行message row上需要携带转发元数据——来源频道标识与转发人。转发操作即向目标频道的消息集合插入一条新记录内容为原消息文本的副本并附带元数据原消息行不做任何写入。这正好满足副本语义与原消息不可变两条要求。目标频道过滤频道选择器展示的是用户是成员的所有频道通常排除当前频道。在 SpacetimeDB 中成员关系本身就是一张可订阅的表客户端基于订阅到的成员关系过滤可选目标即可实现只能转发到自己所在频道的约束而不需要额外信任客户端输入。实时推送SpacetimeDB 的客户端订阅会自动推送表变更目标频道内所有成员对消息表的订阅会立即收到新插入的转发副本——这对应提示词 README 中STDB: subscriptions auto-update的对比思路同表中Activity indicatorsDraft sync等实时功能均标注 SpacetimeDB 侧实现成本更低的原因就是订阅自动更新。归属渲染客户端根据消息的元数据字段渲染 Forwarded from #xxx by user 文本无元数据的普通消息不渲染任何转发标记从而同时满足归属标注与原消息无痕迹两条 UI 契约。与评分体系的衔接评分规则定义在 grading_rubric.md 与 grading_checklist.md每个功能按 0–3 分计0 未实现 / 1 部分实现 / 2 基本可用 / 3 完全符合规格并按提示词级别取该级别包含的功能之和作为满分——例如05_edit_history级别满分 2412_full级别满分 4515 个功能 × 3 分。对照当前评分表可以看到一个演进中的事实rubric 的Prompt-to-Feature Mapping表目前只覆盖到 15 个功能满分 45而composed/目录已推进到 19 个级别。也就是说消息转发17作为基准项已经写入了提示词但 grading_rubric.md 中的映射表尚未收录 16 之后的功能。若要以级别 17 生成应用评分时需要按同一套 0–3 分制为消息转发补充判分细则并沿用仅对提示词中实际包含的功能计分的原则该原则在 rubric 中明确说明只评分提示词包含的功能其余记 N/A。当前生成产物快照转发尚未落地仓库中按apps/chat-app/typescript/模型/平台/时间戳/结构存放了多个模型的生成结果例如opus-4-5 的 SpacetimeDB 版本grok-code 的 SpacetimeDB 版本gemini-3-pro 的 SpacetimeDB 版本各模型的 PostgreSQL 对照版本postgres/目录下在现有仓库内容中检索 forward 关键字匹配项仅出现在提示词文件features/17_forwarding.md、composed/17_forwarding.md以及部分生成应用的依赖锁文件package-lock.json里生成应用的客户端/服务端源码中尚未出现转发功能的实现。从这一快照可以推断既有生成应用大多对应 12 级或更早的提示词含匿名迁移共 15 个功能以内17 级的转发功能属于尚未有产物对照的新增基准项。对于读者而言这提供了一个清晰的实验切入点——按 llm-oneshot README 的流程把语言文件与 composed/17_forwarding.md 组合后交给模型执行即可得到第一批覆盖转发功能的生成应用再用上述 UI 契约逐条验证。小结features/17_forwarding.md 虽然只有 5 条要点但它把消息转发压缩成了一份可自动判定的规格成员资格约束目标频道、hover 触发 Forward 按钮、Forwarded from #channel by user 归属标注、副本语义原消息零改动、目标频道全员实时可见。配合 composed 提示词中的 UI 契约按钮属性、选择器形态、归属文本、原消息无标记它与 SpacetimeDB订阅自动推送变更的模型结合后构成了一条在 one-shot 生成中可落地、可回归验证的基准项。若你要复现该基准核心路径就是选择 language/ 下的语言文件 composed/17_forwarding.md 组合执行生成再对照本文列出的 4 条 UI 契约与 5 条功能要求进行验收。【免费下载链接】SpacetimeDBDevelopment at the speed of light项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →