Files
mcm-26-b/output/reviews/simulator-fixes-7930eb6.md
2026-09-11 08:29:56 +08:00

2.0 KiB
Raw Permalink Blame History

模拟器审核修复记录

日期:2026-09-11。对应 simulator-equivalence-7930eb6.md 的七项问题。

审核项 修复
现实截止 注入单调时钟、Unix时钟与窗口起点;默认取25分钟窗口与进入后20分钟的较早截止,返回剩余完整秒数。时间戳来自Unix时钟。
虚拟截止 整数微秒累计;已登记跨限动作完成并返回结果,此后包括exit在内的新请求抛出SimulatorClosed,模拟连接关闭。正常exit也关闭接口。
请求边界 内存传输校验精确路径、方法、媒体类型和编码、UTF-8/BOM、重复键、JSON对象、16层深度、65536字节上限;返回相应JSON错误。
标识符 拒绝Unicode控制、格式和代理字符,保留UTF-8字节长度检查;非法请求不写入幂等缓存。
并发 锁内原子登记;不同请求立即409,同ID不同内容409;同ID同内容等待首次结果,动作只执行一次。执行期间不持有登记锁。
微秒精度 各计费段量化为整数微秒;模拟器和离线复算使用整数累计,客户端共享量化费用模型。
正负零 哈希坐标规范化零值,同一几何点的正负零表示产生相同固定误差。

CLI自检显式使用 stress_mode=True,保留原有1800秒预算并相应扩展窗口。 直接构造模拟器默认遵守官方时间上限。场景生成文档明确均匀分布属于测试假设。 客户端接受合法的零秒剩余预算,后续动作仍受预算检查保护。

验证:.venv/Scripts/python.exe -m pytest -q,144 passed in 33.33s。 新增 tests/test_simulator_conformance.py 共31个测试案例,覆盖审核反例、临界值、 并发等待及截止期间动作完成。原有虚拟超限测试改为验证连接关闭,官方日志回放与策略测试通过。

本轮仅运行本地测试,没有连接2026端口,也没有消耗官方演练案例。 该实现仍是内存模拟器;TCP连接限流、官方UI/上传生命周期及隐藏随机分布不在等价范围内。