Complete the selective V2 checkpoint with its minimal AgentBus, object-storage, replay persistence, and validated-workbench shared dependency closure.
24 KiB
M012 / V4 房型与 RATE CODE 规则配置化 Change Request v1
| 项 | 内容 |
|---|---|
| 状态 | Directory Foundation、0812 effective mapping、Layer 4 Context/Resolver、Parsing Agent最终V2交接、当前附件文件名型Rooming List resolver及Layer 5/6离线契约已实现;真实Provider、业务发布仍HOLD;not deployed |
| 日期 | 2026-08-13(Layer 4 amendment) |
| 提出人 | 用户批准的 PLAN (9).md 实施计划 |
| 关联 Spec | booking-email-architecture-v0.5.md、booking-email-contracts-v2.md、M002-v4-real-catalog-lookup-api-design.md、M002-v4-requirement-spec-template-alignment.md |
| Checkpoint | Parent:M012-rate-room-configuration-v20260810;当前:layer4-context-rate-room-v2 |
| 影响范围 | Backend / Frontend / Test / Docs / Security / Booking Skill / Database Migration |
| 当前 checkpoint 范围 | Backend V2 contract / Layer 4 Resolver / typed source context / SHADOW orchestration / Layer 5 option consumption / Layer 6 equality / Test / Docs;不查数据库订单历史,不改 API、UI、Parser 语义或 PMS/OHIP |
1. 变更背景
当前 V4 目录仍由 Java 中的少量 Room Type 和组合 RATE CODE 种子驱动,早餐依赖 RB / RO 字符串猜测;Booking Skill 的酒店映射也不能以同一可追溯目录为准。实际酒店规则已冻结在一份 207 行 Excel 和一份 Word 澄清中,包含 10 个 Roomtype、21 个基础 RATE CODE、早餐餐厅、价格、同名房型消歧和人工复核边界。
本变更将这些规则收敛为版本化目录和少量独立策略。当前 V4 catalog / Room Information 已消费 10/21 合法代码、旧码兼容和早餐元数据;当前 Directory Foundation checkpoint 已补齐 207 行目录的 manifest-first 加载、完整校验、不可变索引,以及 compatible-input / canonical-output 两套明确 API。Booking Skill rc1 仅保留为候选构建与回归材料,不是最终 Rate/Room 权威。范围终点仍是人工确认;不执行 PMS、Opera、OHIP、付款或部门流转。
2. 权威来源与适用边界
基础来源的权威顺序固定为:酒店 Word > 更新版 Excel > 用户补充说明。基础版本验收后发生的人工业务纠偏不得伪装成原 Word/Excel 内容,应以独立、版本化的 correction set 绑定到精确基础目录版本和 SHA-256。
| 来源 | 文件名 | SHA-256 | 本次用途 |
|---|---|---|---|
| 酒店 Word | ประเด็นเกี่ยวกับ RATE CODE(1).docx |
78d2ce374214b97188ce9dc7431df8516880db0e3098393402e9463d002fac87 |
同名 / 同价多候选的业务澄清与五项房型修正 |
| 更新版 Excel | REVISE- RATE CODE_8.7 更新 .xlsx |
514ad0bf7ef71566fc0995561b5982b855e672fe214071d8f3bc65b5cbe776ca |
7 列、207 行目录事实与来源行号 |
2026-08-12 的 schema v3 首版曾有48条规则(43唯一、5多候选)和2条删除记录。
2026-08-13 用户进一步确认五个精确映射,并取消“已删除来源标签”业务身份。当前 schema v4 包含48条活动 exact-normalized 规则,全部唯一,
另2个基础目录标签无活动映射;意外输入统一为MAPPING_NOT_FOUND,不暴露删除身份。
已确认:TRP→RM4、ONE-BEDROOM-SUITE-TRP→SU1、ONE-BEDROOM-SUITE POOL TRP→SU2、
ONE-BEDROOM-SUITE-TRIPLE POOL VIEW→SU6、精确ONE-BEDROOM-SUITE-DBL→RM2。最后一条不扩展到Q10、Garden、Pool或其他含DBL标签。
匹配只允许大小写、连续空白和连字符两侧空白归一化,不允许 contains/fuzzy/相似标签推断。
同日确认两个独立业务函数:TYPE OF ROOM → Roomtype;Company + TYPE OF ROOM + price → Rate Code。后者不得以 canonical Roomtype 为输入。本次先冻结独立 Rate Code projection/fingerprint,再更新 Roomtype authority;Rate Code projection SHA-256 保持 2810b5c812858da4be694dfa7259b8cdd1c98c1e8133f368e4a4ad9fe5e02885。当前 207 行继续作为来源 provenance,不回写原 Excel、V27 或基础候选场景;Loader/Snapshot、候选 Skill 和工作区 deterministic normalizer 已同步知识。2026-08-13 Layer 4 已消费该权威目录,Layer 6已实现对应Rate option等值校验;最终Layer3 handoff与运行发布仍待完成。
最终 room&rate 0812.xlsx(冻结来源 SHA-256 7fdf2b5a771e69466db2b1bdc7911f978f490905c42ee67d5ae19200343b04d3)形成
映射主表!A1:H214 的213条候选行和163个场景。Catalog 提供显式 FIT/GROUP 候选查询、原子套餐唯一性、
套房继承及餐厅条件;Layer 4 已改为 QBD 一个双适用 option,普通 LianTai 同时两个 options,Layer 6 已校验
Booking Type 对应 option 等值。零候选、多候选或冲突均 fail closed。
原始 Word / Excel 不进入仓库;生成目录仅保留文件名、哈希、Sheet、原始行号和来源版本,不保存实际邮件、客人或订单数据。
上述权威顺序用于目录行事实和酒店澄清冲突。运行时“按渠道与订单房量选择哪一组目录行”的政策,以本文件 4.2 节中用户于 2026-08-12 明确确认的规则为准;该政策不改写原始 Excel 行。
3. 原规则
- Java 启动逻辑维护 6 个 Room Type 和 40 个带价格后缀的组合 RATE CODE;新建目录会把组合代码暴露为可选项。
- 早餐在 Room Information 中主要依赖 RATE CODE 是否含
RB/RO的字符串规则,不能表达 BUALUANG、LEELA 或显式 RO。 - Booking Skill 的酒店映射未以同一版本化目录为数据源;多候选、套房继承和同名房型修正容易散落在规则文本中。
- 当前 lookup API 只返回酒店级 ACTIVE 目录,Room Information 由后端生成稳定展示模型,前端不得从 Agent 原始 payload 推导业务字段。
4. 新规则
4.1 版本化目录与来源校验
- 从更新 Excel 生成
rate-room-directory-v20260810.json;每个映射行保留公司、规范化 Group/FIT、邮件房型、房间语义、Roomtype、基础 RATE CODE、早餐餐厅、价格、原始行号与来源版本。 - 生成器必须校验 Excel SHA-256、7 个精确表头、207 条数据、重复项、10 个 Roomtype、21 个基础 RATE CODE,以及每个基础 RATE CODE 的唯一早餐状态。
- 生成前按 Word 应用五项修正:
- HONGYUN 4800、5100:Garden TRP → Pool TRP。
- HANA TOUR 3300:TWN Pool → TWN Garden。
- HANA TOUR 3600:DBL Garden → DBL Pool。
- HANA TOUR 4700:Triple Garden → Triple Pool。
4.2 独立业务策略
- 每个独立订单统一按全部有效客房数量判断:1–4 间为
FIT、5 间及以上为Group;渠道名称及邮件中的GRP/FIT字样不得覆盖房量结果。目录输入标签中的GRP仅规范为Group。 - Booking Type 分类与 RATE CODE 规则集选择必须分开执行:一般公司先按房量确定 FIT/Group,再按渠道选择目录规则集;后者不得反向改变 Booking Type。
- Q.B.D 的 RATE CODE 映射
Type统一为Group&FIT,团队与散客使用同一套 QBD 映射,再按来源房型、价格和早餐/餐厅条件确定具体 GRPA 代码。冻结 0810 目录中的Q.B.D / Group仅作为旧来源标签 provenance,不代表 QBD 只适用于 Group;QBD Booking Type 可在其他业务流程中按房量独立展示,但不参与 RATE CODE 规则集选择。 - 普通 LianTai 的 FIT(1–4 间)使用
LIANTAI ONLINE/DY / FIT映射,Group(5 间及以上)使用LIAN TAI / Group映射。 LIANTAI ONLINE/DY / FIT在本规则中只是普通 LianTai FIT 订单选用的目录集,不恢复 LianTai-FIT 邮件渠道、FIT sender 白名单、独立 Parser 或 Agent Profile。本期固定渠道仍只有 QBD 与普通 LianTai。- 规则集一旦选定,只能在该集合内继续按房型、价格及适用区分项求唯一候选;零候选或多候选转人工,不得跨集合搜索或选择第一个结果。
- 价格只接受邮件房型标签或明确价格字段,例如
U-TWN8.5→ 850。标签后独立的12是房间数量,不得解析为 1200。 - 对配置的八家公司,Booking Skill 禁止全局房型规则覆盖酒店目录。
4.3 Roomtype 与 RATE CODE 决定
- Roomtype 与 Rate Code 是两个独立解析结果:Roomtype 读取
TYPE OF ROOM;Rate Code 读取 Company、 来源TYPE OF ROOM和价格,并继续应用已确认的显式规则集/区分项。Rate Code 不读取 canonical Roomtype。 - 独立 Rate Code 投影、结果和状态必须在 Roomtype 更新前后逐项一致;任一漂移都阻断发布。目录投影指纹与 Layer 4 Resolver 投影测试均已证明零漂移;Layer 6 最终一致性仍是后续发布门禁。
- Roomtype 只按 schema v4 exact-normalized 标签查询。48条活动规则均返回唯一候选;精确
ONE-BEDROOM-SUITE-DBL → RM2,其他含DBL套房标签继续按各自规则处理。 U- TRP → RM4、SupTRP → RM4、DELUXE-TRP/DELUXE-TRIPLE → UG2等必须各自命中精确规则;禁止恢复“所有含 TRP → RM4”或基于相似文案猜测。- 两个无活动映射标签只在冻结基础目录保留 source row 193/202 provenance;当前 Roomtype/Rate 投影都排除它们。
新输入意外出现时与其他未知标签一样返回
MAPPING_NOT_FOUND并转人工。 - 新输出和新目录只使用基础 RATE CODE,例如
GRPA2,不再输出GRPA2-850UP。 - 明确餐厅或 RO 优先;仅因 BUALUANG/LEELA 分叉时默认 BUALUANG。Q.B.D 的 U-DBL/U-TWN 1200 默认
GRPA3,明确 LEELA 时为GRPA4。 - Q.B.D、LIAN TAI 的套房继承同一预订主房 RATE CODE;仅套房且没有主房依据时转人工。
4.4 早餐派生
- RATE CODE 目录为早餐唯一事实源:BUALUANG、LEELA 均为
breakfast_included=true;RO 为false且餐厅为null。 - 新增只读
breakfast_restaurant_code: BUALUANG | LEELA | null,由后端统一解析器写入既有 Room Information 展示模型。前端不得自行按字符串推断。
4.5 0812有效映射运行目录
scripts/generate_rate_room_effective_mapping.py必须逐行校验最终Excel A:H、213个早餐公式及其缓存值,再证明 Company+Type+来源房型+价格+Rate/早餐投影与基础目录的活动标签事实一致。Excel Roomtype 列只作审计,不参与运行 Rate 解析。- 运行资源固定为
rate-room-effective-mapping-v20260812.json与manifest;它们绑定最终Excel SHA、基础目录SHA和knowledge correction content SHA。 - Rate 查询键为
mapping company + 显式 Layer4 option Type + normalized email room type + price。 QBD 只查Q.B.D / Group&FIT;普通 LianTai 同时查LIANTAI ONLINE/DY / FIT和LIAN TAI / Group,不在 Layer 4 按房量预选。 - Roomtype 唯一性与 Rate 套餐唯一性分开判断。Rate 候选按不同的
{Rate Code+早餐+餐厅}套餐去重; 不得因 Roomtype 多候选而否定已经唯一的 Rate 套餐。
5. 核心概念守门与非目标
- Catalog 的目标定位是跨 Parser、Resolver、Booking Agent、Validator 与确认投影共享的版本化业务词典。
Layer3ResultV2兼容投影、Layer 4 Resolver/Context、Layer 5 Candidate 与 Layer 6 等值校验已接入确定性 SHADOW 链; 异步 Parsing Agent 的最终合并结果尚未交接到该链。 - 当前 Directory Foundation 只负责
Loader -> Validator -> Immutable Snapshot/Index和 canonical 合法值,不接收ParsedFactSet、不产出CandidateDecision,也不改变 architecture-v0.4 当前的 Layer 4 Context 职责。 rate-room-knowledge-corrections-v20260812作为基础目录之上的只读知识覆盖,由同一 Loader 执行独立 manifest/hash/结构门禁;Snapshot 只提供来源标签规则查询,不在目录层执行最终 Resolver。- Booking Skill 只能消费受控目录视图,不能直接读写数据库或 PMS;rc1 在跨层接入完成前保持
publication HOLD。 - SourceMessage 仍是来源事实;Agent 输出仍仅为建议;
REVIEW_REQUIRED仍在原业务卡内处理,不新增独立复核卡。 - 不改变 Order、Order Task、Task Card、S10/S99 的关系;不改变邮件正文、附件、AI 原始 payload 的返回边界。
- 不操作生产数据库;仅新增迁移。不更新 PostgreSQL
contracts-v1的旧映射解析器,不维护旧 V2/V3 任务流程,不做 PMS / OPERA / OHIP 写入。
6. 后端、前端与 Skill 契约
| 范围 | 新契约 / 不变约束 |
|---|---|
| Booking Skill | 已构建 booking-desk-event-block10.1-rc1 候选包;回调结构不变。该包目前只作回归证据,publication HOLD,不作为系统最终 Rate/Room 决策权威。 |
| Catalog / migration | 加性迁移使当前酒店目录包含 10 个 Roomtype 与 21 个基础 RATE CODE;启动初始化读取生成资源,不维护 6/40 手写清单。 |
| 兼容输入 | 过渡期接受旧组合 RATE CODE 并规范成基础代码;旧代码不进入新的 Active lookup,历史已存值继续可读。 |
| Lookup API | 路径、鉴权、酒店隔离、分页和返回形状不变;只改变目录内容和版本元数据。 |
| Room Information | 现有 display_payload.room_information 仅增加 breakfast_restaurant_code;breakfast_included 继续为后端派生,价格不返回前端。 |
| 前端 | 通过现有 typed service、字段/Room Information 组件显示一个只读、i18n 化餐厅字段;不新增浏览器侧映射、Secret、外部调用或 PMS/OHIP 调用。 |
7. 兼容、迁移与回滚
- 历史任务可继续读取既有组合 RATE CODE;新确认、人工复核、Skill 输出和 lookup 只生成基础代码。
- 数据迁移只新增,不修改历史 migration;不清理、不改写生产历史数据。
- Layer 4 目前只以 SHADOW 方式生成上下文,不创建任务、不执行最终业务动作。不得发布 rc1;Skill 解锁仍需完成 Parsing Agent 最终合并结果交接、Layer 5/6 契约与确定性校验,并取得单独发布批准。
- 回滚时保留旧 Skill 包与上一版配置;后端仍能规范化旧组合代码,避免已入站数据不可读。
8. 安全、权限、酒店隔离与审计
- 既有
GET /api/reservation/lookups/**与GET /api/reservation/order-tasks/{orderTaskId}仍是FRONTEND_USER,沿用登录、权限码与对象所属酒店校验;本变更不增加 Controller 或权限码。 - 目录只包含业务代码、餐厅状态、价格事实与来源元数据;前端接口不返回价格、Word 内容、Excel 原文、邮件正文、附件 URL、AI 原始 payload、PMS 响应或跨酒店数据。
- 目录管理仍沿用
FRONTEND_ADMIN和RESERVATION_CATALOG_MANAGE的现有审计边界;新兼容归一化不绕过目录校验或确认审计。
9. 验收标准
- Given 冻结 Excel / Word,When 运行生成器,Then SHA、表头、207 行、10 个 Roomtype、21 个基础 RATE CODE、无精确重复、五项修正及每码唯一早餐状态都通过。
- Given 任意渠道的 Group/FIT 边界,When 解析同一订单的全部有效房量,Then 4 间为
FIT、5 间为Group,渠道名称和邮件 segment 字样均不覆盖该结果,目录GRP标签规范化保持正确。 - Given 任意房量的 QBD 订单,When Layer 4 选择 RATE CODE 映射,Then 配置
Type为Group&FIT且团队/散客进入同一套 QBD 映射;具体 GRPA 代码仍按来源房型、价格和早餐/餐厅条件唯一确定,Booking Type 如需展示则独立计算。 - Given 普通 LianTai 订单,When 有效房量为 1–4 间,Then 只使用
LIANTAI ONLINE/DY / FIT;When 为 5 间及以上,Then 只使用LIAN TAI / Group;两者均不得产生新的 LianTai-FIT 渠道身份。 - Given schema v4 authority,When 查询,Then 48 条活动规则全部返回单值,2 个无活动映射标签与其他未知标签都返回
MAPPING_NOT_FOUND;TRP必须返回RM4,精确ONE-BEDROOM-SUITE-DBL必须返回RM2。 - Given 旧组合 RATE CODE,When 后端接收确认/复核输入,Then 规范为基础代码;When 新目录 lookup,Then 不出现旧组合代码;历史值仍可读。
- Given
LBLT或LBSM,When 查询 Room Information,Thenbreakfast_included=false且breakfast_restaurant_code=null;BUALUANG / LEELA 代码分别返回对应餐厅。 - Given 生成目录和新版 Skill,When 运行离线验证、后端测试、前端 typecheck/test/build 及打包一致性检查,Then 所有适用检查通过,且没有 PMS/OHIP 写入。
10. 需求追踪表
| 需求项 | 后端状态 | 前端状态 | 测试状态 | 文档位置 | 当前状态 |
|---|---|---|---|---|---|
| 207 行目录生成与来源校验 | Done;policy correction source recheck pending | N/A | 原 Foundation exact-hash Excel + Word --check Passed;本次纠偏因本机缺 Excel 待重跑 |
生成器、rate-room-directory-v20260810.json、本 Change Request |
Foundation Done / Source Recheck Pending |
| 207 行运行时加载 / 完整性校验 / 不可变索引 | Done | N/A | 18 focused + full Maven 528 Passed | reservation.rateroom runtime core / tests |
Foundation Done |
| 10/21 canonical 合法值与 40 alias 输入兼容 API | Done | N/A | Java focused/full Passed | RateRoomDirectorySnapshot / V4 compatibility facade |
Foundation Done |
| Golden、negative mutation、schema / manifest / hash | Done | N/A | Python 14 + Java Golden/mutations Passed | repo Golden、generator/runtime tests、sidecar manifest | Foundation Done |
完整 TYPE OF ROOM → Roomtype 映射 authority |
Done;schema v4 correction + manifest;48活动规则全部唯一+2无活动映射标签 | N/A | Python/Java/normalizer与 Layer 4 Resolver 回归通过 | rate-room-knowledge-corrections-v20260812.*、runtime/Skill tests、本 Change Request |
Implemented / Layer 4 Consumed |
| 基础 RATE CODE + 旧码兼容 | Done | Done | Passed | V27、V4 catalog / intake / command / query、Lookup 文档 | Implemented |
| 统一早餐解析与餐厅字段 | Done | Done | Passed | V4 Room Information、前后端协作文档 | Implemented |
| Layer 3 Parser / Recovery contract | Layer3ResultV2 已可消费;Parsing Agent 最终合并结果交接仍属外部 workstream |
N/A | compatibility path/fixture 已测;最终 handoff 未验收 | architecture-v0.5 / contracts-v2 / 独立开发对话 | Contract Available / Final Handoff Pending |
| 0812有效映射Catalog生成/加载/查询 | Done;213行/163场景,房量与公司规则集切换已实现 | N/A | generator --check、compile、13 focused passed |
effective JSON/manifest、Loader/Validator/Snapshot | Catalog Query Implemented |
| Layer 4 deterministic Rate/Room Context integration | typed order_contexts、Resolver及canonical SHADOW输入已接入;来源缺失直接unresolved,不查数据库订单/任务历史 |
N/A | focused/integration tests passed;当前本任务38/38 | contracts-v2、Layer 4 evidence、本 Change Request | Implemented / SHADOW Wired |
| Roomtype/Rate Code 独立投影与零漂移 Gate | 独立投影/指纹与 Resolver 零漂移测试已实现 | N/A | generator mutation、manifest/runtime/Resolver projection tests Passed | ADR-002、impact evidence、generator/manifest | Layer 4 Gate Passed / Layer 6 Pending |
| Layer 5 CandidateDecision / Layer 6 equality validator | 离线实现;Layer5按来源房量判Booking Type并只能消费对应Rate option,Layer6校验等值;重复New、生命周期和任务顺序检查已按产品决定删除 | N/A | focused通过;当前整仓唯一失败属于范围外V4早餐餐厅夹具 | contracts-v2、Booking Business Agent规则 | Offline Implemented / Runtime HOLD |
| Booking Skill 10.1-rc1 | 仅为历史候选业务材料;含Rate/Room映射的旧职责已由新v1.0 source取代 | N/A | 不作为当前业务验收 | 旧candidate artifact / manifest | Superseded / Publication HOLD |
| 文档、示例、Foundation 验证清单 | Done | N/A | 状态与证据已核对 | 当前契约、M012-rate-room-configuration-release-checklist-v1.md |
Foundation Done |
11. Agent 待办
| Agent / 角色 | 待办 | 验证 |
|---|---|---|
| 后端 | Layer 4 已完成 SHADOW 接线;下一步交接 Parsing Agent 最终合并结果并补 Layer 5/6 | Layer 4 focused/integration/full backend 与跨层守门通过 |
| 前端 | N/A;当前 checkpoint 不改 API 或 UI | 不重复归属前端验证证据 |
| Booking Skill | 已同步 schema v4 exact-label 结果与双Rate options;继续不发布 | source/包/manifest 一致性;HOLD 状态 |
| 文档 / QA | 当前口径已同步;恢复 Excel 后补 source reproduction 证据 | 追踪表、变更影响与禁止发布核对 |
12. 文档更新
当前 Directory Foundation closeout 已同步:
PROJECT_STATE.mdCONTEXT.mddocs/project/README.md- 当前 Change Request 与 Foundation 验证清单
当前 checkpoint 不改 API、UI、权限、审计、酒店隔离或 SuperAgent 回调结构,因此前后端协作、安全和 SuperAgent 契约不需要新增 Foundation 修改。父 M012 已有的相关记录保留。不更新历史导入文档或原始 Word / Excel;它们仅作为冻结输入,不作为当前契约的可编辑副本。
13. 实施与验证记录
- 已新增
scripts/generate_rate_room_directory.py,同一冻结工作簿同时生成服务端目录、Skill 受控副本和 V27 数据迁移;生成器通过 schema、source、semantic duplicate、cross-reference、candidate 重算、policy、manifest 和 Golden 守门。外部 exact-hash Excel 与冻结 Word 已通过只读--check,可逐字节复现全部生成物。 - 已新增
RateRoomDirectoryLoader -> RateRoomDirectoryValidator -> RateRoomDirectorySnapshot:启动顺序固定为 manifest envelope、原始 JSON bytes SHA-256、strict JSON、207 行完整业务一致性,再构造不可变索引。核心不引用 Layer 3/4/5/6 DTO。 - compatible-input 接受 21 个基础码和 40 个历史 alias;canonical-output 只接受精确的 10/21 代码。Layer 4 按公司级配置消费缺价默认:
Q.B.D → GRPA1,LIANTAI ONLINE/DY / LIAN TAI → GRP1;适用于所有房型,包括独立套房。 - 完整 Roomtype authority 以独立 schema v4 correction set 附着于不可变基础目录;原 207 行、V27 与基础 Golden 均未改写。 Layer 4 只对唯一 exact-normalized 候选输出单值;一个多候选和两个无映射标签 fail closed;Booking Skill 仍未发布。
- 最终0812 Excel已通过独立生成器形成213行effective mapping与sidecar manifest;
RateRoomEffectiveMappingLoader -> Validator -> Snapshot提供按公司/规则集/邮件房型/价格的不可变候选查询。Layer 4 已消费该 Catalog,并按不同的{Rate Code+早餐+餐厅}套餐判断唯一性。 - 2026-08-13 最终 Resolver 政策:QBD 固定输出一个
GROUP_AND_FIToption;普通 LianTai 固定同时输出LIANTAI ONLINE/DY / FIT和LIAN TAI / Group两个 options。Layer 5 按房量决定 Booking Type 后只能取对应 option。 冻结 0810 基础目录不重写,QBD 旧Group标签仅保留 provenance。 - 已新增
ReservationV4RateRoomDirectory并替换手写目录 seed;新输入在 intake / command 路径规范化历史组合 code,查询路径保留已存历史值,新的 RATE CODE lookup 仅返回 21 个基础 code。 - 已将
breakfast_included与breakfast_restaurant_code收敛到目录解析器;后者只作为 Room Information 的后端派生只读字段返回,前端不接收价格也不自行推断餐厅。 - 已完成
booking-desk-event-block10.1-rc1的源目录、0812 映射 reference、fixtures、静态验证和确定性.skill打包;候选 archive SHA-256 为86ec5634cb16fbd4a121ed0c519aaa107cf6d205c8ee6d4b2a874fcab27be0ba,manifest 含 27 个成员哈希并固定publication_status=HOLD。该事实不代表其业务决定已被系统 Resolver/Validator 接管。 - schema v3 删除记录和旧 4/5 目录预选仅作历史证据。当前 schema v4、双 Rate options、无数据库历史的 Layer4、 Layer5 Candidate 与 Layer6 等值校验已实现;Parsing Agent 最终V2交接和当前附件文件名型Rooming List resolver 已由后续专项本地验收。最新业务验收、真实Provider与 Skill publication 仍是独立门禁。