维护状态(2026-10-08):现行 A 系列问题清单;原版范围已结束;系统/依赖问题保持。 文档职责与最新状态入口见索引。
初始审查:2026-09-24;现状更新:2026-10-08。目标宿主为 osu!lazer 2026.1005.0。 新增源码问题使用独立审查报告的 R 编号;当前合并状态见文档审查,不与路线图的 R 阶段混用。 初始问题 ID 不重编号;关闭源码问题不等于证明所有客户端流程。近期原版对齐的范围、 修正的过时文档及完整验证见收尾复核。
2026-10-08 后续实施完成 R03 的回放读写预算及附件失败保分; 归档策略和原生存储接缝分别保留在 Host/Replays、Persistence/Realm,无新增越层例外。 后续 OJN 源字节与实际事件预算也已实现。R04 成绩元数据校验已完成,限于外部导入前检查,不重导入已存成绩。OJM 剩余边界与完整客户端验收仍保留,后续必要性见复评。
| 问题 | 当前结果 | 继续保留的范围 |
|---|---|---|
| A01 补丁失败策略 | 已区分必需/可选,独立 ID 回滚,必需失败阻止游玩;26 项安装通过 | 私有入口变化仍须升级测试,故障注入不在客户端用户库试验 |
| A02 共存 | 指定 BMS 2026.920.0.0 双顺序通过;此前结算问号已由用户确认修复 | 未来版本、第三个 ruleset 与完整双 ruleset 客户端链路未穷举 |
| A03 旧测试 replay | 用户取消兼容要求,正式 v5 接口继续保留 | 不把旧无标记测试数据冒充正式回放 |
| A04 存储/导入 | 身份、关联、重复源、恢复与批次计算已实现;完整导入约 268 秒、无变化更新约 16–17 秒已有日志证据 | 完整客户端 A04-5 矩阵及更大库性能边界未关闭;Realm 两事务不是数据库/磁盘共同原子提交 |
| A05/A08/A09 | 外部资源归属、不可变解码、有界缓存/失效/取消/释放已核对;预览及回放中段 KS 补播本轮已验收 | 同文件戳 OJM 改写需手动刷新;延迟索引与替换文件一致性另有审查 R02,冷缓存补播仍有异步准备边界 |
| A06/A07 | 计分接缝与独立模块 API/命名完成 | Host 与 ManiaScore 是并列宿主路线,仍共同编译 |
| A10 | 已解析状态驱动 LN 视效、当前设置、皮肤绑定副本与池生命周期已核对 | 宿主升级和完整 Player 端到端归 A11 |
| A11 | 定向组件/自动回归持续通过 | 私有反射/IL、动画/听感及完整用户链路仍需对应证据,不由原版阶段关闭补记验收 |
| A12 | 八区依赖矩阵、真实类型语义检查完成 | 六条精确类型例外、两个 partial;反射/运行回调与外部传递依赖不由静态图证明 |
| A13 | 本地化动态/固定字段已核对,资源与原生绑定通过 | 随机七项固定英文按用户规则保留;其他 UI 继续本地化 |
| A14 | 本轮已按用户授权整理累积源码快照 | 提交包含源码、测试、文档和构建适配;结果见冻结复核与 Git 历史,不误标为单独文档修改 |
| A15 | 删除无消费者通用变换接口;具体随机放 Integration,默认 Random 直接复用原生 | 三项菜单:Random/R-Random/S-Random(Panic);旧逐音符算法隐藏保留,控件例外只许可具体类型 |
| A16 | 依赖/API 审计已有证据,风险保留 | AutoMapper 13.0.1 NU1903 未解决;2026.1005.0 仍需原构造 API,不能仅换测试包或隐藏告警 |
原版对齐阶段按用户于 2026-10-06 的决定结束。连续不对称区间、判后 KS 禁用与 EX 完整记录/锁血/F 是明确选择,其余原版差异暂缓;不把暂停功能补齐作为修复这些 架构问题的前置条件。覆盖表保留观察,不是当前开发队列。
A04 的实验、实测和撤回记录统一留在存储契约,A02 矩阵在共存记录,A16 API/风险在开发说明。 历史测试数不再重复用作当前基线。
近期修改未新增未批准越层、Core/Formats 宿主依赖或无理由的自有原生替代。 Core 独立保存判定/计分/生命状态,Formats 只解码;Integration 翻译并承载具体谱面变换。 Host 优先使用原生轨道、声道、输入、计分/结果及 Mod 阶段;Presentation 只做显示适配。 具体复核与原生缺口见近期责任表。
Core/Formats 是独立项目,交付时合入一个 ruleset DLL。其余目录为同程序集职责区, 不是完全程序集解耦,两个 Realm partial 和原生模型共同编译仍存在。以后抽取共用 设施应由真实第二消费者验证,不能只改目录就承诺所有 custom ruleset 可直接使用。
下表保留初始证据与已处理说明;现状以上方为准,不预先授权更改用户数据或暂缓玩法。 原 A12 的五条例外后来增加了 Random SettingControlType 接缝,现为六条;许可仍 按准确文件/类型匹配,不放开整个目录。
| ID | 优先级 | 证据与影响 | 建议的解决方向和验收 |
|---|---|---|---|
| A01 | 高 | O2LazerRuleset 构造调用补丁总安装器却不检查返回值;部分安装器失败后仅记录日志,少数多目标安装没有统一回滚。可能以部分功能生效的状态进入客户端。 |
建立补丁目录:必要性、原生替代、目标签名、作用规则集、失败等级、回滚。基础玩法必要补丁失败应明确阻止不安全游玩;可选显示补丁可降级。测试逐项失败注入与多补丁载入。 |
| A02 | 高 | 原实现仅在安装时寻找 BMS Harmony;O2Lazer 先加载后 BMS 可覆盖 replay 读取钩子。私有字段/IL 与宿主版本仍有关。 | 已将 BMS 专用适配器收拢到 Host/Compatibility,增加后加载补注册与回滚登记;2026.921.0 宿主 + BMS 2026.920.0.0 双顺序矩阵通过,BMS 单曲结算图标已由客户端复测。完整联测及未来版本仍需验收。 |
| A03 | 已关闭 | 重构前无标记 replay 属于测试实现,用户确认不需要兼容;它缺少可供独立导入的 ruleset 标记和谱面哈希。 | 保持明确拒绝旧格式的测试,只将带 o2lazer 标记的 schema v5 作为正式回放契约;旧成绩的关联与保留由 A04 处理。 |
| A04 | 高 | 投影、身份迁移、去重/通知、预留恢复与活动文件修复已完成;三个真实样本的临时库验证通过。 | 剩余 A04-5 客户端成绩/集合、预览/游玩/结算与正式回放联测。不用真实旧库做故障注入,不提前实现 SQL 或第二套成绩库。 |
| A05 | 已关闭 | 原工厂引用 Host/Audio 的采样类型,O2JamWorkingBeatmap 同时管理外部文件读取和原生皮肤/音轨。 |
OjnDocument 是独立格式结果,工厂将其转为原生谱面及 Integration 采样引用;外部资源快照由 O2JamExternalChartResources 管理,原生生命周期仍由 WorkingBeatmap 适配器负责。无需复制第二套音符/时间中间模型;文件变化与实机生命周期继续由 A09 验收。 |
| A06 | 已关闭 | 双玩法计分协调曾放在 Integration;No Release/Perfect 的宿主和 UI 依赖缺少明确说明。 | 协调器归 Host,桥接依赖解析接口;MS Invert 直接复用原生,Mod 应用阶段和必要接缝已有责任表。138 项定向回归与窄范围源码边界检查通过;A11/A12 继续承担完整客户端组合及全项目依赖矩阵。 |
| A07 | 已关闭 | 独立模块及两处宿主类型曾共用 .Core / .Formats,难以判断公开 API 的所有者。 |
已修正独立模块、格式桥接和误标类型,建立新增命名与旧身份保留约定;项目/源码边界与实际程序集身份测试通过。既有宿主功能命名空间不代表分层,A12 按真实类型归属治理引用。 |
| A08 | 已关闭 | 原 IReadOnlyList 包裹可变集合,封面与 OJM 字节数组直接暴露,调用方可能污染共享缓存。 |
Formats 构造时冻结 OJN 集合、OJM 索引;公开字节返回独立副本,轨道只读流共享私有数据。两消费者隔离测试及宿主资源存储回归通过;文件失效由 A09 继续处理。 |
| A09 | 已关闭 | 进程级 OJN/OJM 缓存和音频协调器曾缺少完整的失效、取消及释放证据。 | 缓存有界、协调器弱引用;失败/文件戳变化、成功写入和手动刷新分别失效,弃用预加载对象释放。定向测试及用户有界实机复测通过。无需为目录独立再加一套会话;同文件戳的外部 OJM 改写需手动刷新,已作为契约记录。 |
| A10 | 已关闭 | 长条需协调核心判定、原生结果提交与视觉保留;曾有配置投影、池预加载绑定和皮肤内部灰化问题。 | 裁剪只接收已解析状态,原生生命周期仍由 Drawable 承接;当前游玩配置与皮肤绑定副本明确所有权。用户确认有界客户端表现;59 项定向回归包含换肤后状态绑定与内部组件颜色。完整宿主升级端到端继续由 A11 管理。 |
| A11 | 中 | 等级显示、筛选过渡、PP 标签和成绩/replay 接入使用大量反射/IL;现有自动测试主要验证合成数据及对象状态,不能证明每个界面在宿主升级后的帧动画或真实客户端流程。 | 维护补丁目标清单和可重复实机验收脚本;每次升级跑导入→选歌→预览→游玩→结算→回放与跨模式/Mods 视觉场景。只在确认原生缺口时保留自定义实现。 |
| A12 | 已关闭 | 原有限定接缝检查没有完整约束 Host/Integration/Presentation 引用,历史 namespace 容易隐藏越层。 | 已迁移归属不当的原生接入文件,建立实际源码语义图、矩阵、六条精确例外及两个 partial 声明许可,接入本机验证和 CI 定义。新增越层、未解析符号、未知层及过期例外失败;反射/IL、真实宿主流程继续由 A11 验收,远程完整宿主分析需配置匹配二进制。 |
| A13 | 已关闭 | 原审查担忧 ToString 快照,但未区分原生 string 接口、存储名称与可本地化 UI 标签。 | 已核对所有生产调用,自有动态标签正确保留 LocalisableString;新增原生绑定、替换/释放、数字格式及固定名称回归。保留原生英文 Mod 名称和字符串预设摘要的显示边界,未来额外翻译目标需在 Presentation 定义,不能改变协议或存储名称;当前无需重写生产本地化模块。 |
| A14 | 本轮整理 | 用户已授权冻结并推送当前版本;累积源码已完成清理及过滤验证。 | 作为实现快照提交,测试证据见冻结复核,之后继续按独立任务提交,避免重新积累大批未提交修改。 |
| A15 | 已关闭 | Integration/Beatmaps/IO2JamChartTransform<TChart> 曾仅有声明、无使用者,提前承诺尚未存在的变换协议。 |
已核对当前源码/已安装规则集与持久化使用并删除;保留原生 Mod 管线及每局谱面隔离,84 项定向回归和分层检查通过。未来独立变换需从真实消费者定义输入输出、所有权、顺序与随机种子契约,未知外部调用方的源码/二进制兼容不作保证。 |
| A16 | 宿主待处理 | AutoMapper 13.0.1 与 ImageSharp 3.1.11 的六条已记录公告仍在实际宿主引用内;未合入 ruleset 的共享依赖也不能视为仅测试风险。 | 依赖与在线审计完成,93 项定向回归通过;当前构造 API 不兼容公告修复版本,保留版本和告警。固定模型及部分 MaxDepth 是使用边界,不是全宿主安全证明;宿主升级或后端设计变更后重查并复测。 |
2026-10-06 原版对齐收尾当轮共 1352 项过滤测试通过(Formats 42、Core 91、检查器 15、常规 1052、
迁移/恢复 127、正式 replay 23、BMS 双顺序 2),无失败或跳过。源码及语义检查通过,
编译错误、依赖违规、过期例外为 0,跨层 partial 仍为 2,例外仍为 6。
证据快照位于 .artifacts/recent-changes-review;滤器和临时库隔离见开发说明。
未运行 benchmark、全曲库扫描、客户端或真实库写入,不安装 DLL、不修改只读参考。 全项目系统验收仍未结束;自动测试不能给动画、听感、实际资源规模或所有组合补记通过。 当前已知依赖告警、A04、A02/A11 风险保持。后续工作树冻结及最新验证见 冻结复核,不以本历史段落代表最新发布。
已实现的源/预算/缓存/音频/资源清理和当前分层验证见维护收尾。 本机七组 1941 项通过,200 份正式源码无越层、解析错误或过期例外;真实包/参考身份已核对。 固定官方 CI 来源已配置,完整远程七组 1941 项通过;运行及报告核对在收尾记录,与本机证据分开。 Reason HX 回放退出补播通过,偶发选曲继续观察;A02/A04-5/A11 的剩余组合和 A16 风险没有被自动关闭。