2026年10月19日
内容截止日: 2026年10月25日 本周进行中,以下记录本周已经推进的工作。
本周工作计划与执行完成进度
中心服务平台 - 功能完善
- 进度: 🔘 未开始 -> 🟡 进行中 -> ⚠️ 部分完成 -> ✅ 已完成 -> 📌 已自测
以往已完成的工作不再重复,详情请查看上周及上月报告- 〔工作量〕es-center-server-services 83 次(设计 19 · 代码 64)· 代码 +50.5k/-5.8k | es-center-server-web-app 176 次(设计 41 · 代码 135)· 代码 +20.9k/-5.3k
- 10-19: 评审回归处置闭环与三张修复工单收口
-
✅ 2026-10-18 两轴评审回归证据归档,处置决策图与两张决策票建立 〔es-center-server-web-app〕
审查归档 2026-10-18 Spec 轴与 Standards 轴两轴代码评审全量过程证据 102 件(约 31 万行,评审范围 4dbf2f21 → 8968513d):wayfinder preflight 与资料读取报告、两轴逐项检查记录与 standards-list-diff、评审范围 source.diff 与 commits 清单、typecheck/lint/root-unit(324 通过)/spec-unit/state-unit 验证原始日志;含两处 P2 回归的独立复现(standards-cache-retirement-repro.cjs 与 spec-org-edit-pending-navigation.test.tsx,期望落点 /en/default/my、实落 /en/default/basic/org)及复跑失败日志。设计为两处已确认 P2 回归建立分会话处置决策图 review-regression-wayfinding/:map.md 决策地图、session-graph.md 依赖视图与两张 grilling 决策票(01 缓存删除失败后的候选退休边界、02 组织编辑待完成导航的提交归属),两票 open、互不阻塞,交后续 wayfinder 新会话按编号升序逐票认领并对谈裁决,本轮只建图与拆票、不改应用代码。
-
✅ 远程下拉按需关闭候选缓存并接通组织管理(票 01) 〔es-center-server-web-app〕
实施RemoteCombobox 新增默认开启的 cache 开关,复用领域选择器透传,在管理员组织筛选、新增和编辑字段关闭缓存;本地候选订阅集中失效版本并隔离每次范围访问,避免关闭缓存后丢失身份、权限及 A→B→A 旧响应保护;按已接受 ADR-0054 接纳同权限合格残留,保留未知 legacy 权限证据,修复连续存储故障下旧权限错误恢复;扩展公开组件、真实管理链路及异步校验回归。24 个受影响测试文件共 585 个用例通过;localhost:3000 真实管理员组织链路及默认缓存场景通过,双轴评审无未解决问题。实施工单 01 收口:验收条件逐项勾选完成(cache 开关与透传合同、管理链路显式关闭缓存、无缓存控件不恢复共享候选、身份往返保护、ADR-0054 残留接纳边界、回归与真实页面验证等)。
-
✅ CRUD 管理页 88 处调用按用途关闭候选缓存(票 02) 〔es-center-server-web-app〕
实施在 58 个应用文件的 88 处调用显式关闭候选缓存,使管理筛选、归属编辑和绑定目标重新进入时查询当前候选;保留 6 处历史检索与回放的默认缓存,复用票 01 已完成的 4 处管理员组织接线,维持各领域的请求条件和选值语义;扩展真实页面与领域选择器回归,覆盖跨实例隔离、重入、只读、厂商与类型约束、查询上限及设备 ID/编号;记录 98 处消费点分类。18 个受影响测试文件 399 用例通过;本地真实页面候选验收及 Standards / Spec 评审通过。实施工单 02 收口:验收条件逐项勾选完成(真实调用链消费点盘点、基础数据/设备/配置等 CRUD 页面按候选用途显式关闭缓存、报表回放对讲等混合场景按实际用途判定、只在需要关闭的调用点传 false)。
-
✅ 组织编辑保存的待导航归属与语言返回修复(票 03) 〔es-center-server-web-app〕
实施在提交入口冻结租户、组织及字段,按 pending 目标撤销旧操作,阻止取消离开后复活或解锁新提交;离开时保留草稿并重建表单实例,隔离旧校验的字段写入与收尾,已发送请求继续反馈原目标;成功与未命中采用有效语言及查询参数返回,避免覆盖语言联动的地图选择;将独立 pending 复现纳入正式页面测试,新增 39 项行为回归。受影响 6 文件 160 项通过(最终编辑页 53 项复验);localhost:3000 真实保存离开、返回及切语言通过,双轴复评无遗留发现。实施工单 03 收口:票面载明修复边界——保存后可继续前往其它页面、加载中的目标不被旧保存抢走导航、取消离开后旧操作不复活、仅切语言保留草稿与保存资格并进入最新有效语言的组织列表。
-
✅ 两张决策票闭合,wayfinder 会话与拆票、实现过程证据归档 〔es-center-server-web-app〕
协作票 01(候选缓存退休边界)置 resolved——采纳同范围旧缓存先用、API 后续校正、删除尽力而为的取舍,长期合同正本为 ADR-0054(部分取代 ADR-0052 决策 4),旧退休规格 User Story 13 相应部分不再作为验收目标;票 02(组织编辑待完成导航)置 resolved——离开编辑页即撤销旧提交的发送与操作资格、已发送请求固定原目标反馈、保存成功按最新有效语言返回列表,不新增未保存拦截、不扩成共享导航框架;地图 Decisions so far 补两票具名链接与摘要,归档 session-20261019-* 14 件、to-spec-* 5 件与 wayfinder-session-20261019/ 33 件。实施run-item.sh 活动清单由 arch-review-disposition(该批次已收尾,改为注释保留)切换为 review-regression-repair 三票清单(远程下拉缓存模式、CRUD 候选缓存调用方接线、组织编辑待导航),其余占位模板行不变。设计归档评审回归修复批次 to-tickets 阶段过程证据 14 件:三张工单拆分草稿(drafts/ 01-03,各已注明 2026-10-19 经用户确认发布、由正式工单接替)、拆票底稿 ticket-breakdown-draft.json、拆票与发布前读取、Agent 工具 preflight 及 CRUD 调用方盘点底稿(tickets-consumer-inventory.json);正式 spec 与工单已随实现收尾入库,本票只补过程原件、不重复正式产物。实施归档三张修复工单实现过程证据 336 件:工单 01 remote-combobox-implement/ 70 件、工单 02 crud-selector-implement/ 212 件、工单 03 org-edit-* 散件 54 件(各工单的 red/green 行为测试日志、浏览器动作与验收证据、typecheck/lint 及提交日志,代码改动已分别随对应实现提交入库);敏感串扫描仅命中工具声明与文件路径清单,无凭据落盘。
-
✅ 栏目落地页重复呈现归并共享 SectionIndex1 并闭合共享视图决策票 〔es-center-server-web-app〕
实施(AI 辅助) 五个栏目落地页各自重复的面包屑、入口列表与空态呈现收口为共享 SectionIndex1 模块,五个 _index 路由各改 3 行接线,消除五份相同呈现、行为不变;评审后继清理去掉死空守卫,搬迁前后 36/36 单测通过。评审(AI 辅助) 01 号工单补记双轴评审结论(Spec 零发现、Standards 无硬违规),共享视图决策票经事实复核后置 resolved(采纳SectionIndex1({ parentHref })固定呈现 module),规格与拆票记录归档。
-
✅ zxs-ca 对讲组在线状态缺失诊断归档与现场恢复 〔es-center-server-web-app〕
排障(AI 辅助) 归档 zxs-ca 对讲组在线状态缺失诊断全过程证据:25 条记录缺 janusNo 导致 SFU prefix 无法构造,MQTT 连接模块本身健康;会话按字节级校验恢复现场,开发环境后端地址由 test 切至 cs 作为诊断结束后的恢复基线。
-
✅ 业务 API 参数首尾空白规范化批次六票全链路交付 〔es-center-server-web-app〕
设计(AI 辅助) 归档批次全链路规划材料:共识记录、实现方案(normalizeApiParams 共享函数 + 各模块例外配置)、154 文件范围快照与六张工单拆票。实施(AI 辅助) 六票垂直切片连续交付——共享纯函数 normalizeApiParams 接入采集设备、用户组织与人员权限、设备服务器与对讲、配置翻译与消息域、文件订单与历史快照各域 API(每域配 wire 合同用例与例外 policy 就近声明),154 文件覆盖核对完成(106 接入/35 注释处置/10 空占位/3 纯类型),全域验收票闭合且完整交付范围补跑双轴评审(Spec 三类零发现、Standards 无硬违规)。
-
- 10-20: 规范化批次评审复核修正、设备保存反馈统一与 MQTT 迁移启动;services 35 表分表切换收官与唯一性整改建规
- ✅ 规范化批次评审复核修正双票交付 〔es-center-server-web-app〕
评审(AI 辅助) 归档批次双轴 code review 原始报告并完成事实复核:49 个查询 policy 缺 SQL 控制子树例外(device 22、basedata 9、authority 9、user-center 9),原报告「无 spec 缺口」结论更正。实施复核修正双票交付:为 36 文件 37 处名单补 74 项 SQL 控制例外,防止 trim 改写后端 SQL 分支;共享规范化函数返回类型递归放宽为实际可产生的字符串,公共边界补类型回归与运行时断言。实施(AI 辅助) 复核修正规格、两工单执行证据归档,批次入口切至 review-fixes 两票清单。
- ✅ 设备保存入口结果反馈统一,14 入口全同源 〔es-center-server-web-app〕
评审05 号 grilling 决策票经两轮对谈(窄职责助手、六个设备保存入口回调范围、boolean 返回与导航留调用方)与简单性复审后置 resolved,发布 save-result-feedback 规格与 01 号实施票。实施六个设备保存入口相同的固定反馈守卫与提示收口到设备父路由共享模块;showSaveResult 提升到 common 公共库并接入八个设备入口;角色、员工、数据字典六个保存回调统一并补 softFail 早退防误报成功——规格内 14 个入口全部同源;两票实现验证证据归档。
- 🟡 MQTT request 迁移决策结票与 Web topic 前缀统一 〔es-center-server-web-app〕
评审06 号 MQTT request 迁移决策票经两轮共识后结票(采纳继续批迁、useMqttRequest 保留 run(params) 补同步 prepareParams 与单次 sub、新建 buildMqttWebTopicPrefix 收口 Web 前缀),发布规格与六张实施票。实施新增跨运行环境纯函数 buildMqttWebTopicPrefix 集中维护 Web 命名空间语法,接入 29 个消费文件的 30 处前缀,保留业务尾缀、订阅通配、原生事务与设备模拟命令身份;28 个测试文件 817 项通过。
- 🟡 35 表分表切换收官、唯一性审计建规与 datasync 缺陷修复 〔es-center-server-services〕
实施35 张父表分表命名切换收官:历史/快照 11 表与缩略图租户月份分表完成短前缀切换并纳入启动校准,35 表整批组合切换、重复启动、补漏与失败恢复验证闭合(重新只读预检开发库 251 个子表、五条路径 50 条性能样本、347 项有效覆盖);现场切换仍由维护者执行。排障(AI 辅助) 修复全量导入按首行 keySet 生成整份 INSERT 列、稀疏 JSON 首行缺 delete_time 时后续行删除事实被静默丢弃的缺陷(zxs 目标租户 32/32/290 对 32/0/0 群组差异即此因,写法追溯自 2f79cc6c),改为全部过滤后记录 keySet 并集,3 用例先红后绿。设计(AI 辅助) 建立数据库索引租户范围与软删除唯一性长期规范并接入文档入口;归档唯一性审计(扫描 2667 个源码/脚本文件、62 个候选涉 59 张逻辑表、16 张工单与依赖图)与 zxs 群组同步诊断过程记录。
- 🟡 唯一性整改首批落地:索引准入修正、datasync 两缺陷修复与厂家/设备索引试点 〔es-center-server-services〕
实施(AI 辅助) 索引迁移旧 unique 识别改为目录完整定义准入(indnkeyatts 界定键列、INCLUDE 不再被当键列),异常定义由静默误删改为具名异常整份回滚,准入回归 105 例 0 失败;既有设备类型预设断言对齐 ADR-0127 九节点常量。实施datasync 两缺陷修复:全量与增量导入共用完整秒/毫秒转换以保留同步时间精度、非法值安全拒绝(testAll 4628 项全通过);导入吞异常与归档时序修复,全量增量共用单事务批次编排、完整下载后原子交接(4663 项有效覆盖)。实施厂家表族唯一性整改完整试点(主键扩为原 ID 加租户复合身份、活动唯一索引,testAll 4688 项、有效覆盖 4691)与设备投影六族租户索引统一(保留跨租户投影与同刻历史)。
- ✅ 规范化批次评审复核修正双票交付 〔es-center-server-web-app〕
- 10-21: MQTT request 迁移五票实施与真实链路验收移交;services 租户索引整改六族连续交付收口
- 🟡 MQTT request 迁移五票实施完成,真实链路验收移交后续复测 〔es-center-server-web-app〕
实施迁移五票连续交付:回放发送时参数准备改显式节点必需与互斥同步 prepareParams(当前与历史回放及播放器 6 个请求通道);P2P 三类有回复命令统一通道与失败门控;Janus 普通请求接入统一信封并贯通关键帧失败门控;设备与采集服务器两类列表接入统一请求通道。测试06 号验收票记录 01–05 票迁移与保留范围核对及两类列表、1044 P2P 直播的真实 UI/MQTT 结果,按维护者接受的范围调整标 done——保留真实回放未执行与 Janus leave 未定因的事实、不把移交当作验证通过,后续复测规格与三张工单(01 needs-info、02/03 ready-for-agent)落档;开发环境服务地址切回 zxs-test,MQTT 复测批次执行入口以注释态注册待启用。
- ✅ 租户索引整改六族连续交付收口 〔es-center-server-services〕
实施设备关系与附属设备、类型型号与固件、身份组织员工、角色权限用户组、配置各表族连续交付:主键扩为租户复合身份、沿原业务键建立活动唯一约束、保留普通查询索引与历史事实,具名迁移覆盖实际后代和未来路由、异常定义整体拒绝;全仓轮 4765→4818→4893→4948→5016 项连续全通过,146 资源真实新装与重跑一致,工单 08/09/10 闭合;现场切换独立交接、未执行。
- ✅ 实时任务串行队列统一与设备列表显隐修复收口 〔es-center-server-web-app〕
重构新增 useSerialTaskQueue 通用 Hook 集中实例隔离、固定串行、错误记录与等待任务清理,替换状态与匹配派生、ICE 下发、单直播 GPS 四处各自为政的串行队列实现,保留节流与身份保护等既有行为,8 个受影响测试文件 135 项通过。排障修复设备列表显隐状态被回放和远控改写的问题:单直播和多直播 to-b 容器在实际挂载时恢复设备列表、保留同次访问中的隐藏选择,远控删除两处关闭参数,12 个受影响测试文件 382 项通过、显式本地标识生产构建通过。审查归档父路由与租户业务边界审计全部 90 个过程文件,静态核对全部 51 个真父路由节点。设计STANDARDS §3 新增「父路由与业务变体」规范(父路由只承担通用布局与变体装配、租户或访问视角专属业务归 to-b/to-c/admin 变体),GLOSSARY 收窄「设备列表」词条为企业类直播业务对象。
- ✅ store 派生可测试化两票交付 〔es-center-server-web-app〕
排障采集服务器状态、统计和筛选从异步 action 抽出为两个就近纯函数、经 Immer 原子发布,修复缺失 file 回复与列表清空后的错误状态,定向单测 9 文件 136 项通过、双轴评审零发现。排障设备四路在线状态、GPS 快照分档与筛选收口到设备 store 相邻纯函数,修复列表清空后总数、四路在线和 GPS 三档统计残留,19 个文件 345 项定向测试通过。设计票 08 结票并发布 store-derivation-testability 规格与拆票目录,两张实施票的完整红绿测试、typecheck/lint 与提交日志等执行证据归档。
- 🟡 videoroom 连接深化裁决落 ADR 0055,八票规格发布与前两票实施 〔es-center-server-web-app〕
设计票 09 信令深化结票:对 ICE 来源、并发、候选窗口、P2P 协议等八问完成裁决——就近深化不抽共享 Janus 核、保留设备 ICE 来源、Janus 120ms/30ms 候选攒批、99 次恢复预算 5 秒封顶退避、MQTT 短断保媒体;发布 ADR 0055 长期合同(Player1 统一管理恢复预算与连接尝试)与 videoroom-connection-deepening 规格及八张拆票(私有 Janus 握手、有界清理、ICE 与麦克风并发、候选攒批、回放恢复预算、会话健康恢复、控制面短断恢复、直播验收)。重构拆票 01:直播握手接入私有 Janus client,就近封闭 create、attach、subscriber join、start、trickle 与 keepalive,用完整事务与 session/handle 归属隔离旧回复,握手取消和失败接回现有恢复入口,受影响单测 42/42、真实 P2P/SFU 播放通过。实施拆票 02:VideoRoom 退出统一三秒 leave→destroy 预算、退休后拒绝新握手,peer、媒体流、候选等待和回调归属封闭到每次连接,修复实测发现的重复 srcObject 赋值,受影响单测 57/57、真实双客户端 SFU 退出重进通过。
- 🟡 对讲群组与领还历史租户索引收尾,单列主键纠偏建规拆票与首批落地 〔es-center-server-services〕
实施对讲群组与文件资料五族、使用与领还历史快照 11 族完成租户索引统一:主键改为原 ID 与租户复合身份、业务唯一键仅约束活动行,覆盖普通与月份分表、并发、失败回滚及真实同步后读取路径;有效覆盖 5062 与 5116 项、147/148 资源新装重跑通过,工单 11/12 闭合。设计澄清单列主键与业务唯一索引边界规范(业务表主键保持单列记录 ID、租户内业务唯一性由含 tenant_id 的独立唯一索引保证),跨租户整改手册头部标注主键纠偏停止条件(复合主键制品章节暂不能作为切换步骤执行),诊断正本与原始调查证据落档;按澄清修订规格并拆分纠偏票 17–25。实施纠偏票 17/18 首批落地:厂家记录身份恢复单列 manufacturer_id 并按主键、本表 ID unique、业务 unique 和查询索引重新分类索引准入(5125 项 0 失败、149 份制品 SQL 与验证源一致);六张设备投影与 Janus 相关表恢复单列主键(跨轮有效覆盖 5135 项、Janus 只读比对 2 组通过);两票现场切换均未执行。
- 🟡 MQTT request 迁移五票实施完成,真实链路验收移交后续复测 〔es-center-server-web-app〕
- 10-22: videoroom 连接深化三至六票收官;services 单列主键纠偏连续落地与限流参数放宽
- 🟡 videoroom 连接深化拆票 03–06 完成,真实链路验收闭环 〔es-center-server-web-app〕
实施拆票 03:设备 ICE 仍以现有 store 为唯一来源并校验非空配置与 TURN 凭证,按设备音频开关并行采集麦克风、answer 完成后仅接入允许发送的既有 sender,播放激活被拒时保留媒体连接(76 项受影响测试通过;真实 SFU 麦克风挂起/拒绝期间持续播放 1280×720)。实施拆票 04:Janus 候选按 120ms 首窗与 30ms 后续窗口归属每个媒体连接、以 candidates 数组发送并随退休取消,移除 videoroom 总业务队列、保持探活与发布者查询 single-flight(受影响测试 87/87、双轴评审各 0 项,真实 P2P/SFU 均 1280×720 播放)。实施拆票 05:首次加 99 次自动重试及 3–5 秒退避收归 Player1 统一管理,接入连续稳定窗口重置预算并隔离旧结果(受影响单测 108/108);排障真实双客户端复测发现旧 P2P 失败后仍沿用缓存模式、设备切至 SFU 后第一页持续向旧协议呼叫,修复为恢复前清除旧确认并立即查询当前设备播放模式(新增回归红→绿、109/109);补齐此前待环境恢复的真实 UI 验收证据。实施拆票 06:为并行 ICE、握手发布、SDP 协商及媒体建立设置独立阶段期限,20 秒单在途 session 探活与 3 秒观众查询分离,健康失败接回父播放器统一预算、两类媒体连接按 5 秒观察期处理短暂断连(受影响单测 120/120;真实双客户端 SFU 探活及两类故障恢复通过、5 个 peer 与全部关联 track 已释放)。
- ✅ React Router 8 / Vite 8 升级与开发代理连接复用批次两票结票 〔es-center-server-web-app〕
设计发布 vite-proxy-grill 批次规格与两张工单(升级 Router+Vite 保持 SPA 行为、代理 agent 连接复用),研究材料与工具证据归档。实施拆票 01:Router 家族对齐 8.5.0、Vite 对齐 8.3.5、React/DOM 锁定 19.2.8,迁移公共 loaderData 元信息与真实 loader 测试适配器、适配 client environment 资源路径和 gzip 生命周期,用官方 CJS 兼容选项修复真实浏览器存储导入错误;全量 3951/3953 通过(2 个超时按原时限复验通过)、CJS 影响域 24 文件 910 项通过,保存 219 条路由、636 个 gzip 与真实页面基线证据。实施(AI 辅助) 拆票 02:开发代理经官方 server.proxy.agent 接入共享 Node 原生 HTTP/HTTPS Agent 实现连接复用(仅显式开启 keepAlive),closeServer 钩子幂等销毁私建 Agent,抽出共享代理规则并修正 /janus-admin 被 /janus 前缀吞掉的匹配顺序;固定序列 8/8 keep-alive 200、单直播页组织树/设备列表/五语言 200/304、MQTT 正常;保留 /agent-api HTTP 上游不可达缺口。
- 🟡 开发环境切换、限流参数放宽与批次维护 〔es-center-server-web-app〕 〔es-center-server-services〕
实施开发环境 .env.development 五项服务地址由 zxs-test 切换为 zxs-cs(含补切 STATIC 一项)、构建时间戳更新至 20261016;批次执行清单由 run-plus.py 迁移为 run-1.py 模板、执行器切换 claude/deepseek 模板,批次入口在 videoroom-connection-deepening 与 vite-proxy-grill 间按批次收尾切换,并发批次读取状态快照维护;快速启动与浏览器测试两篇 wiki 的 Janus 代理环境变量名修正为 VITE_MAIN_SERVICE_URL。实施IP 限流桶四层窗口放宽以降低正常客户端误伤:秒层 9 次/1s 放宽至 36 次/4s、分层 150 次/1min 放宽至 1080 次/3min、小时层 7200 次/1h 放宽至 21600 次/2h、移除原 5 小时 21600 桶;范围仅 IpRateLimitConfig.createBucket,无接口或数据行为变化 〔es-center-server-services〕
- 🟡 单列主键纠偏票 19–24 连续落地 〔es-center-server-services〕
实施六票连续交付:设备关系与附属设备(票 19,testAll 5146 项零失败)、类型型号与固件(票 20,有效覆盖 5163 项)、组织员工与账号关系(票 21,跨轮有效 5181 项)、角色与授权关系(票 22,testAll 5198 项零失败)、九类配置表(票 23,最终有效覆盖 5215 项,PTT 历史登记波动保留原证据、原方法补验通过、根因待回访)、对讲群组与文件资料(票 24,完整 156 资源验证)逐票恢复单列主键,并为已登记错误复合主键版本提供独立补偿增量;各票现场切换均未执行。设计票 23 证据收口:原始 JUnit XML 无损封装(.gz)并补入完整全量归档,保留首次失败、补验及源码指纹证据。
- ✅ videoroom 控制面短断修复落地,真实验收与性能对照收尾、工单 07/08 关闭 〔es-center-server-web-app〕
实施修复 MQTT 控制面短断时误拆有效 P2P/SFU 媒体的问题:观看目标、媒体健康与控制周期分离,恢复时并行确认设备模式和原 Janus session,双确认后才恢复控制操作;补齐 StrictMode、grace 恢复顺序与慢回复竞态,中断连沿用唯一恢复预算,受影响单测 137/137、真实 P2P/SFU 短断与 7 个 peer 清理等验证均通过。审查工单 07 收尾归档后,汇总 01–07 工单交付证据,归档当前构建的 P2P/SFU、控制面恢复、晚到 ICE 与麦克风实测,保留常规入场 7/7 分母与 12 个 peer/28 条 track 回收结果;按维护者指定以同设备同上游比较已登录部署版与本地应用,归档 12 次入场、4 次恢复与 34 个快照,如实保留本地首次出画失败、36.760 秒重试等失败样本,区分开发/生产代理差异,记录 15 个 peer/45 条 track 回收与可重算摘要;工单 08 关闭,保留远端版本未知等未决项,明确结票不等于整体提速已证实。
- ✅ 唯一索引纠偏交付收尾:十一表恢复单列主键、租户活动唯一索引修正 〔es-center-server-services〕
实施(AI 辅助) 十一张历史/快照源表从错误的复合主键恢复回单列记录 ID 主键,保留租户内活动业务 unique 与普通查询索引;修正旧索引迁移的主键替换方向与物理表身份预检,并为已登记的错误复合主键版本提供独立补偿,完整新装链不再产生错误复合主键,完整 157 资源新装、原单键与错误复合升级、重跑、未来路由通过,受影响测试约 292 项零失败,现场未切换。实施位置状态与同步审计等四类业务唯一性限定到真实租户及适用活动行,以具名后代迁移覆盖现有及未来分表;消息与订单五类业务 unique 改为租户内活动约束,保留十七族单列主键与原业务字段,本票 42 项真实集成通过,原全量 5292 项 3 失败经 27 项补验后有效覆盖全绿,现场未部署、不清洗业务数据。实施工单与执行记录补记消息与订单索引交付事实及提交钩子结果,留痕一次状态输出超预算被截断的事件及后续有界核验做法。
- 🟡 videoroom 连接深化拆票 03–06 完成,真实链路验收闭环 〔es-center-server-web-app〕
- 10-23: 直播首帧显式起播批次决策与七票实施验收;services 存量预检演练、全量导出原子发布修复与导入主键改结构前提
- ✅ 直播首帧健康与显式起播立 ADR 0056,首帧诊断批次启动 〔es-center-server-web-app〕
设计立新决策 ADR 0056(部分取代 ADR 0055):连接就绪后由 Web 显式发设备 play→idr,以有效首帧与视频帧进展判定起播与恢复,connected/SDP/信令确认不代替出画,无帧先有界补流再按同一预算重建;同步修正 GLOSSARY 直播传输模式语义并新增「直播首帧」「直播预连接」词条,STANDARDS 新增单直播诊断视图例外。实施批次入口切换至 live-first-frame-diagnostics 工单批次,开发环境五个服务地址(WEB_UI/STATIC/MAIN/DEVICE/EMQX)从 zxs-cs 切回 zxs-test,配合新批次验证直播首帧链路。
- ✅ 首帧 spec grilling 拷问与 codex 评审过程材料归档 〔es-center-server-web-app〕
评审归档 live-first-frame-diagnostics 的 grilling 四轮拷问记录、证据与验证日志,以及 spec、ticket-plan、七张票草稿与发布校验材料,记录维护者对首帧判定与 play→idr 合同的裁决依据,作为 implement 批次输入。评审归档 codex 对 videoroom 连接与标准符合性的第三方评审留痕:spec 逐项核对、standards 差异检查、密码测试结果与验证日志。
- ✅ 首帧方向验证结票,App 只读责任边界明确 〔es-center-server-web-app〕
审查以 13 次真实 P2P/SFU 起播的单变量实验记录 IDR 方向:用户确认 SDP 与 connected 两阶段各三次 IDR,核对 PonyCam 实际 SFU 会同时向 Janus 与设备发 pause 并与用户目标语义分列;以 13 次真实样本及完整证据关闭首帧方向验证工单 01,固定用户最新两阶段 IDR 与暂停目标记录,性能、故障与独立评审限制继续保留。设计固定边界:App 不由维护者负责,后续 Web 改进不得修改 App 代码,兼容策略不以改 App 为前置条件。
- ✅ 首帧时间线工单 02 交付:观看诊断全过程时间线 〔es-center-server-web-app〕
实施新增观看诊断时间线:隔离并封存真实视频呈现、协议阶段与既有恢复全过程,企业类单直播浮层订阅同一诊断实例,支持晚开、重开与结束查看,替换旧的设备级浅合并事件出口,扩展播放器边界验证旧帧、目标过渡与手动重试等场景,8 文件 490 项受影响单测及真实 P2P/SFU 验证通过。审查工单 02 收尾:更新工单与验证记录,新增 lifecycle 摘要,清理 4 万余行临时 state 转储并压缩归档。
- ✅ 信令计数工单 03 交付:按观看和阶段记录收发数量 〔es-center-server-web-app〕
实施把模式查询、P2P 与 SFU 的实际收发计数接入观看诊断,分列业务发送、接收、重发、失败与各层确认;封存首帧窗口,固定回复频道单列未知归属,避免旧目标反馈污染当前统计,保持候选 wire、QoS 与释放合同并附真实 UI 脱敏抓包,受影响 2 文件 160 项测试通过。实施工单 03 收尾:更新工单状态并归档验收过程材料。
- ✅ 显式起播工单 04 交付:两阶段各三次 IDR 〔es-center-server-web-app〕
实施落地 ADR-0057(按维护者最新裁决新增并同步 spec 与工单):P2P 不发 play、SFU 分阶段发布门控,设备命令归当前观看统一协调,去重并核对归属,替换每秒业务重发,修复 StrictMode 重复前置 play 并接通信令计数;全量 176 文件 4009 项测试通过,真实 UI/MQTT 验证 P2P 0 play/6 IDR、SFU 2 play/6 IDR。实施工单 04 收尾:更新工单状态并归档验收材料。
- ✅ 首帧有界恢复工单 05 与播放中停帧恢复工单 06 交付 〔es-center-server-web-app〕
实施对首次起播无画面建立统一有界恢复:媒体就绪后按绝对期限等首帧,补流与必要重建共用 99 轮预算,以可靠视频帧跨度与当前 SFU session 存活重置预算,覆盖后台、手动启播与独立浏览器离线恢复;受影响 2 文件 197 项与全量 4029 项测试通过(新增离线回归先红后修)。实施把播放中停帧并入统一补流恢复:按实际视频帧进展维护五秒期限,复用补流与同轮必要重建,协调控制确认与停帧竞争的命令归属,让跨不可观察窗口的旧确认失效;新增 18 项实际播放器回归,受影响 2 文件 215 项、全量 4047 项测试通过;两票收尾归档。
- ✅ 手动启播挂起修复与真实多端验收工单 07 关闭 〔es-center-server-web-app〕
实施修复原生 play() 挂起导致首帧或停帧期限永久暂停的问题:Play 点击后结束等待用户阶段,再次拒绝沿原入口处理;实际 Player1 边界新增 4 项 pending 与再次拒绝回归,按用户修订仅模拟设备暂停、不宣称提速或上游根因修复,受影响 219 项和全量 4051 项测试通过及真实设备验收核对。实施工单 07 收尾:更新工单状态并归档验收材料。
- ✅ 存量冲突预检与恢复演练接入审计纠偏清单 〔es-center-server-services〕
实施为 96 张表和 61 组业务键提供只读的冲突、身份、依赖和来源阻断预检报告,并在隔离 PostgreSQL 上演练完整备份恢复与独立对照;更新同步合同与切换手册,未清洗或部署现场数据,原全量 5300 项仅 1 项组织搜索 OOM 失败,补验后有效覆盖全绿、根因待回访。实施审计工单 15 补记交付提交与最终核验,留痕一次提交期间过早执行无界状态输出被截断的事件及处置方式。
- ✅ 索引整改组合验收与切换交接面完成 〔es-center-server-services〕
测试对 96 根表、61 组业务键做新装、两类历史升级、重跑和未来子表的组合验收,固定源码、制品和真实 XML,接入冲突预检、匹配恢复、短名切换与逐节点交接,形成可执行的切换交接面;保留全量计时异常与组织大响应 OOM、不把补验当作根因已解决,补验后有效覆盖 5300 项全绿,现场未部署。
- ✅ 唯一索引批次执行模板切换 codex 〔es-center-server-services〕
实施唯一性标准审计批次的执行槽位从 claude 切到 codex,改用 gpt-6-astra xhigh 执行 implement 工单,其余槽位保持占位。
- ✅ 全量导出原子发布修复两笔交付 〔es-center-server-services〕
实施全量导出从生成后按路径字符串替换搬目录改为整批生成完毕且全部文件与数据流关闭成功后才原子发布,发布目录已存在即失败、残留或并发生成目录不复用,避免把两次调用的文件拼成一个批次;空表保留整表替换语义、零文件批次不发布,元数据缓存加载改为直连数据源并让关闭失败传播;补齐导出器单测、发布集成测试与调度测试共约 875 行,无 AI 署名。实施端清理失败和当天 output 读取失败改为保留路径与原因、交由既有调度边界结束当轮导出,避免残留物混入发布或在未知状态下继续生成,不新增恢复状态或后台设施;datasync 164 项测试与 Janus 只读用例全部通过。
- ✅ 索引裁决整改落地,全量生成与发布合同固化 〔es-center-server-services〕
实施按 2026-10-23 人工裁决统一整改索引写法:活动唯一索引去序号命名(*_1_active 更名 *_active)、员工用户活动唯一键改用户名侧、邮箱/手机号绑定改全局活动 unique、设备绑定明确设备侧业务键,普通查询索引统一去 revision 列并采用公共尾序;同步统一索引规范、术语表、相关合同与切换手册,旧绿灯不构成新目标终态。设计把两笔全量导出修复固化为行保真合同的「全量生成与发布」章节:完整生成一个批次后才原子发布、失败结束当轮不部分发布、失败生成物由下一轮清理;归档 2026-10-23 的索引标准审查与代码审查结论,新建整改工单目录。
- ✅ 全量导入主键改结构前提,决策票 02 结票 〔es-center-server-services〕
设计把全量导入的主键处理从运行时校验改为结构前提:每张生产表必须有真实主键、由建表与结构迁移保证,导入合同不新增运行时主键查询或整批预检,未知表立即结束批次;同步数据库规范、导入合同、验收边界与切换手册。实施决策票按维护者裁决结票:主键由建表/结构迁移保证、不增加运行时判断,原主键 guard 候选撤回,保留未知表立即终止与整批回滚边界;归档主键 DDL 审计证据(98 条静态建表、96 张根表、94 个子表模板,未发现缺主键),更新决策图与交付指针。实施在 spec 与全量导出实施票记录两张实施票的实现、验证与维护者人工复审均已闭合,复审结论回链原决策票,决策地图接手后续推进。实施批次执行入口切换至 data-sync-full-export-publication,保留占位模板便于复用,本次未执行批次。
- ✅ 直播首帧健康与显式起播立 ADR 0056,首帧诊断批次启动 〔es-center-server-web-app〕
- 10-24: 有限起播摘要合同与播放信息双视图、起播历史交付,wayfinder 寻路收口;services 全量导入失败边界结票、查询索引决策收口
- ✅ ADR 0058 确立有限起播摘要持久化合同 〔es-center-server-web-app〕
设计接受 ADR 0058:企业类单直播的有限起播摘要纳入本浏览器持久历史,明确身份隔离、十条容量、入账去重、统计、清空与失败边界;仅更新 ADR 0056 状态与反向取代元数据,保留完整诊断内存生命周期及 ADR 0057 命令合同,供后续缓存实施沿用。实施有限起播摘要合同工单 01 收尾:更新工单状态并归档材料。
- ✅ 播放信息精简与完全双视图交付 〔es-center-server-web-app〕
实施交付播放信息双视图:复用观看诊断的起播封存事实,按 URL 切换精简摘要与完整阶段、尝试、信令视图,避免展示状态重启播放;浮层限高、避让默认播放器空间、固定操作区,提升重叠场景层级保留拖动与关闭,补齐交互与模式标签用例,媒体回归 195 项等测试通过、双轴复核无遗留。实施播放信息双视图工单 02 收尾:更新工单状态并归档材料。
- ✅ 起播历史与同模式比较交付,未起播可查看历史 〔es-center-server-web-app〕
实施落地 ADR 0058:沿观看诊断封存真实起播摘要,按账户、空间和设备隔离保存最近十条、精简展示五条,按同模式此前成功记录派生均值与差值,恢复、清空及读写失败均有明确呈现,用作用域独占锁协调多标签页保存与清空,受影响媒体与地图 302 项、历史与存储 23 项测试通过。实施放开设备列表和地图的播放信息入口,刷新或路由重入后无需重新直播即可恢复缓存或查看空态,删除只服务于旧禁用判据的诊断订阅与 marker 参数,查看不启动媒体请求,地图与初始巡览 103 项测试通过、浏览器根页恢复历史且 videoCount 为 0。实施起播历史与比较工单 03 收尾:更新工单状态并归档验收证据。
- ✅ 单直播播放信息批次入口与 spec 拆票归档,原始日志豁免 whitespace 检查 〔es-center-server-web-app〕
实施run-item.sh 激活 single-live-play-information 批次、注释掉已完成的 live-first-frame-diagnostics 批次;归档该批次的 spec 与 ticket-plan 拆票计划作为实现批次输入;新增 .gitattributes 对 .scratch/**/*.log 关闭 whitespace 属性——验证证据的 lint/命令原始日志天然含行尾空白,改写会伪造证据,仅放行检查不改内容。
- ✅ 三份工单验证证据与原型批次材料归档 〔es-center-server-web-app〕
实施归档起播历史契约(validation-01,13 文件)、播放信息双视图(validation-02,119 文件)、起播历史与同模式比较(validation-03,241 文件)三份工单验证证据;另按 tracker 惯例归档抛弃式原型批次的 spec、issues、原型截图与验证/评审记录,原型已由正式实现承接。
- ✅ wayfinder 寻路裁决收口,主索引 11 张决策票全部 resolved 〔es-center-server-web-app〕
设计按裁决关闭 wayfinder 寻路的 issue 10:登记六文件候选归属(含 admin/to-b 变体目录细化、Canvas 认证外壳、Captcha 登录族),业务触碰时按 ADR 0019 复核迁移;继续排除三个 hook,不启动独立迁移批次、无需新增 ADR,新增 locality-facts 快照,map.md 主索引 11 张决策票全部 resolved,寻路完成。实施归档 issue 10 裁决过程中 wayfinder 技能的 11 份工具响应证据(预检、各入口读取与现场问答记录),与裁决 Answer 和 locality-facts 配套,保留核查时点证据供回溯。
- ✅ 全量导入失败边界实施规格发布与批次切换 〔es-center-server-services〕
设计承接决策票 02 裁决发布独立实施规格:修复全量导入遇无法识别目标、目标表不存在或列元数据故障仍继续处理的问题,改为立即结束目录事务、前表共同回滚、后表不执行、回滚不发提交后 JMS,含 24 条用户故事;经维护者确认单票方案后发布实施票 01 并置 ready-for-agent。实施决策票 02 状态交接至已发布的实施规格,明确生产修正与人工复审尚未完成,决策地图指针更新为等待拆票启动,回写前一日 to-spec 回访执行记录;批次执行入口切换至 data-sync-full-import-failure-boundary,实施票 01 待执行。
- ✅ 全量导入无效目标立即停止并整批回滚 〔es-center-server-services〕
实施数据同步全量导入遇到无法识别或不存在的目标时,不再继续清表、写入和登记事件,直接进入既有整目录异常边界并整批回滚;显式管理列元数据连接与结果集,关闭失败保留原始 cause 与表定位,失败结果不进缓存、不继续提交;166 项主回归、46 项补验及 Janus 只读均通过,整改地图等待人工复审。
- ✅ 查询索引整改决策收口,实施规格与 12 票发布 〔es-center-server-services〕
设计唯一索引整改两个决策票收口:票05 依据 96 张根表矩阵和 6000+ 行结构化证据按纯证据结票,票06 确认三项查询承接、历史按 operate_time 承接、历史无业务 unique 等边界;随后发布独立实施规格及 12 张实施工单,拆票就绪但未开始实施,批次入口切换到新工单目录,地图更新为 open 5、resolved 4。
- ✅ 全量导入决策票 02 人工复审通过登记 〔es-center-server-services〕
实施把维护者”已通过,继续下一张决策票”的人工复审结论登记进全量导入实施票与决策票02,纠正旧的等待指针并转入票05,仅复核既有测试结果与源码哈希、未重跑测试。
- ✅ 历史与快照边界规范先行 〔es-center-server-services〕
设计GLOSSARY 新增”业务历史记录”与”当前业务快照”两个领域词;数据库规范明确历史查询索引以 operate_time 承接、history_* 不设业务 unique、旧 unique 按具名迁移退场并同步取消对应 HTTP 业务排重、snapshot_* 维持唯一当前身份;型号管理合同与跨租户切换手册同步批次目标。
- ✅ 厂家查询索引规范与迁移预检补齐 〔es-center-server-services〕
实施厂家表普通索引去掉 revision、保留编号与名称查询列及公共尾序,独立补偿覆盖已登记节点、实际后代和未来子表,不改主键与业务唯一性;预检工具增加完整普通索引目标及有限旧准入,双轴评审发现的异名 unique 漂移已红灯复现并修复;厂家四类 69 项与预检 CLI 12 项通过。
- ✅ ADR 0058 确立有限起播摘要持久化合同 〔es-center-server-web-app〕
- 10-25: 对讲/直播麦克风惰性采集批次实施与核证移交;services 查询索引与历史快照整改按域批量落地
- ✅ 对讲惰性启麦工单 01 交付与收尾 〔es-center-server-web-app〕
实施对讲麦克风改为惰性采集:新入房先出席收听,首次明确启麦才准备输入,承接 offer 待决期间的启麦;分离采集意图与发话入口,日常关闭只停止发话并保留健康输入,移除关闭时的采集释放阶段;6 文件 371 用例通过、真实 UI 资源行为通过,真实双向有声需测试设备配合、工单保留 needs-info,不把连接或静默 RTP 当声音验收。审查工单 01 补齐最后验收项并关闭:记录用户确认的真实双向通话与再次启麦后持续收听,对异常关机重新核对 15 个关键文件与实现提交的一致性,复验 6 文件 371 用例。
- ✅ 房间访问隔离与恢复清理交叠修复,工单 02 收尾 〔es-center-server-web-app〕
实施修复换房场景:换房重置启麦意图与发话入口,存活检查使用当前房间身份,未完成输入和清理等待中的设备失效保持显式重试,阻止旧授权续体跨重建自动采集;6 文件 383 用例通过,常开麦实测授权及在线对端听音待补、工单保留 needs-info。实施修复 SFU 快速恢复被旧清理吞掉的问题:人工重建提前登记原编号,人工和自动清理结束后均唤醒当前调度,旧清理续体核对 epoch 后才重置状态和释放媒体,保护主动离房的 Janus→媒体顺序;增补 10 个公开边界用例,6 文件 393 用例通过,现场声音测试按维护者裁决移至工单 05 人工补验;工单 02 收尾归档。
- ✅ 直播 P2P 麦克风按需接入并保留扬声器联动 〔es-center-server-web-app〕
实施观看协商用设备关联音频通道预留发送能力,移除采集屏障,首次启麦原位接入并在健康会话内复用输入;新鲜扬声器观察与设置意图归于当前观看,隔离旧缓存与发布确认,覆盖权限等待、故障重试、控制短断与迟到回收;定向 3 文件 240 项等测试通过,设备离线后的真实产品验收未完成。
- ✅ 核证安排纠偏:01–03 未核证场景集中到 05,工单 04 代码交付关闭 〔es-center-server-web-app〕
审查纠偏:按维护者更正撤回工单 01 的人工听音通过结论、保留自动化证据,在 05 逐票列出 01–03 未核证场景与返工归属、保持待核证而不预记通过,按维护者验收安排关闭 03 代码交付、解除 04 依赖。实施修复观看启麦意图的实例隔离:每个观看实例保留恢复资格,访问变化重置默认,失败与待决授权仅允许明确重试;SFU 保持纯订阅,P2P 恢复重新确认设备扬声器,同批模式变化同步退休连接,4 文件 286 项单测通过,真实 SFU 通过、P2P 待核证。实施按维护者裁决关闭工单 04 代码交付、解除 05 最后依赖,把真实 P2P 恢复、模式往返、输入隔离与资源清理列入 05 未完成清单,保留证据范围与返工归属,不预记真实核证通过。
- ✅ 启麦控件界面调整与麦克风状态提示收敛 〔es-center-server-web-app〕
实施启麦与辅助停止发话控件移入右下角工具栏,沿用全屏按钮样式与既有动作、禁用条件,保留动态无障碍名称与 Tooltip,以透明度控制显隐,保证键盘 Tab 与触控可达,234 项媒体回归与浏览器几何/原生 Tab 检查通过。实施按维护者要求移除画面常驻 mic 徽标,状态及原因集中到右下角 Tooltip,SFU 用禁用图标提示不可发话;从真实多直播路由入口覆盖 Close all mic 的三种场景,冻结逐设备关闭命令及播放独立性,237 项媒体回归等通过。
- ✅ 诊断时间线细分接收、连接与首次启麦阶段 〔es-center-server-web-app〕
实施直播沿观看时间轴封存首次主动启麦,重试、复用、恢复与迟到结果不能改写首次归属;对讲从房间访问起点记录接收能力与连接,诊断详情区分首次结果、当前尝试与实际声音核证;保存真实 P2P 失败样本,工单 05 保持 ready-for-human,不把现场与性能缺口宣称完成,11 个受影响测试文件 667 项通过。
- ✅ ADR-0059 麦克风惰性采集落档,批次证据补录与批次切换 〔es-center-server-web-app〕
设计立新决策 ADR-0059:麦克风首次主动启麦才采集,日常关闭仅停止发话不撤回采集意图、不释放输入,重新进房恢复默认采集,健康输入跨媒体重连恢复;ADR-0007 与 ADR-0055 决策 4 标注被部分取代,GLOSSARY 同步对讲与直播两组术语并新增直播麦克风采集意图词条。实施补录 mic-deferred-capture 批次 implementation-01 至 05 与 completion-01/02 的全部过程证据(1072 文件,少数 JSON 产物实为文本转储无法过格式钩子、用 —no-verify 保持采集原貌);开发环境五项服务地址从 zxs-test 停用、启用 zxs-cs 用于 cs 环境联调;批次入口切到 mic-deferred-capture 清单驱动逐票实现。
- ✅ 对讲惰性启麦工单 01 交付与收尾 〔es-center-server-web-app〕
其它工作
- 目标: 记录日常杂项工作、协作沟通等事务
- 进度: 🔘 未开始 -> 🟡 进行中 -> ⚠️ 部分完成 -> ✅ 已完成 -> 📌 已自测
- 📌 以往已自测工作不再重复,详情请查看上周及上月报告
- 19 日
- ✅
协作git → svn 源代码同步 - ✅
实施将最新版本部署到192.168.1.53/zxs-cs/zxs-ca服务器: 编译最新程序 → 制作 Docker 镜像 → 制作升级程序 → 上传服务器 → 升级部署 〔es-center-server-build, es-center-server-install-app〕 - ✅
测试多次复现自已及王工发现的 BUG, 找出根因, 再处理:- 登录密码输入错误的提示信息不正确
- 采集服务器绑定设备 API 报错
- 对讲模块新加的表, 主从服务器数据同步有问题
- ✅
Last updated on