# 云函数源码(随项目版本化) 平台把云函数存在 Parse 库的 **`Function`** 表(`objectId` 即前端调用的函数 id)。 本目录保存源码副本,便于 code review 与回滚;发布方式见下。 ## 已发布 | 文件 | Function.objectId | name | path | version | |---|---|---|---|---| | `fmodeagent-chatthreads.js` | `oR5O67i1Cm` | fmodeagent-chatthreads | /fmodeagent/chatthreads | **0.1.6(与线上一致,2026-11-06 对齐)** | > **v0.1.6 说明(2026-11-06)** > 群会话需要在会话目录里区分出来,靠两个字段:`kind`(`dm`/`group`)与 `memberIds`(成员容器 id)。 > 这两个字段此前**只存在于线上**,工作区源码仍停在 v0.1.5 —— 直接部署工作区这份会把线上功能回退掉。 > 本次已补齐 `opUpsert` 写入与 `opList` 返回,并用本地仿真验证 8 项语义(含「不带 kind 的后续 upsert 不得把群降级成单聊」)。 > **部署前务必先校验**:`node scripts/verify-cloud-fn.mjs`(对比线上返回的字段集)。 > > **v0.1.4**:工作区归属 `workspaceId`(`''` = 日常对话)。 ## 发布 / 热更 ```bash # 新建(objectId 自动生成) curl -X POST https://server.fmode.cn/parse/classes/Function \ -H "X-Parse-Application-Id: ncloudmaster" -H "X-Parse-Master-Key: " \ -H "Content-Type: application/json" -d '{"name":"...","code":"...","enabled":true,...}' # 热更(免重启) curl -X PUT https://server.fmode.cn/parse/classes/Function/ \ -H "X-Parse-Application-Id: ncloudmaster" -H "X-Parse-Master-Key: " \ -H "Content-Type: application/json" -d '{"code":"..."}' ``` ## 函数体约定(从现有函数反推,实测) - 入口:`async function handler(request, response)`;入参在**全局 `params`**。 - 身份:`request.user` 由平台按 `X-Parse-Session-Token` 解析后注入。 - 🔴 输出必须 `response.status(200).json(...)` **显式写出**;直接 `return 对象` 平台不回包(请求挂起)。 - token 只能放 `X-Parse-Session-Token` 请求头;放 body 的 `token` 字段会被平台鉴权层直接 401。