pengzhikang 855c8b0a13 fix(workshop): archive deployed account confirmation and session fixes 1 day ago
..
README.md 855c8b0a13 fix(workshop): archive deployed account confirmation and session fixes 1 day ago
verification.json 855c8b0a13 fix(workshop): archive deployed account confirmation and session fixes 1 day ago

README.md

已上线账号确认与开课修复的源码归档

2026-11-13 将此前已上线的两项后端修复同步到看板维护仓库,防止后续从旧源码构建时覆盖修复。本次生产操作仅为只读核对,未重新部署函数、重启服务、改变绑定或写入报告。

修复后的行为

  • ksfWorkshopAccount 使用短确认引用,完整签名票据保留在私有运行配置中,避免长票据经过聊天时被截断。本人平台登录、企业归属、账号编号、签名、过期时间、nonce、冲突与幂等校验继续生效;旧签名链接兼容其原有有效期。
  • ksfStartWorkshopSession 对已完成本人认证、但首次本地档案缺企业编号的情况,从该档案既有且不可变的账号绑定补齐身份后开课。明确的跨企业、用户名或平台用户编号冲突仍拒绝。企业编号已明确的合法旧档案保持原账号字段与会话归属,不改档案键、不新增成员。

这两项修复不提供新的Matrix发送者认证,也不能代替多人并发身份隔离验收。

本次归档范围

  • 维护源:server/src/account-binding.mjs。
  • 行为与边界测试:server/test/account-binding.test.mjs、两个account-*-deploy.test.mjs。
  • 精确补丁部署器:scripts/deploy-account-short-links.mjs、scripts/deploy-account-session-identity.mjs。
  • deploy/account-binding-short-links-20261112/内三份历史基线及过渡文件供部署器核验,不作为维护源;本目录禁止Git换行转换,确保脚本固定的逐字节SHA-256在不同系统上保持一致。

未归档生产配置、凭据、原始函数备份、会话票据或学员私有对话。Skill安装包、看板界面及研究库改动不在此次提交范围。

验证

  1. 从生产Function记录只读核对两个函数的编号、名称、路径与完整代码SHA-256,均与已上线版本一致;具体指纹见同目录verification.json。
  2. node --test server/test/account-binding.test.mjs server/test/account-short-links-deploy.test.mjs server/test/account-session-identity-deploy.test.mjs server/test/workshop.test.mjs server/test/application.test.mjs:60项通过。
  3. node server/scripts/build.mjs:34个函数构建并逐个进行语法检查通过,构建产物不作为本次生产部署。
  4. git diff --check通过;三份历史基线保留原始字节并核对部署器内固定指纹。

后续使用

生产已安装这两个修复,无须为了源码归档再运行apply。两个部署器均在版本不明时停止;已处于对应修复版本时返回alreadyApplied。未来如需部署,应使用正式流程先核当时版本、备份并评估差异,不能绕过指纹保护。

这里的完整函数指纹对应2026-11-13只读核对时的生产代码;它们不是本仓库重新完整构建后所有函数的通用指纹。账号确认和开课当时分别精确替换各自模块/代码块,其他外围代码按其原发行保留。