feat: add date-based OHIP data reporting alongside XML

This commit is contained in:
Wyndham ARR committed 2026-09-18 15:29:27 +08:00
1 parent 5ecd571e3b
commit ad2c59256f
259 files changed
+37326 -126

No files matched your search

@@ -0,0 +1,31 @@
# 用户给UI流程是为说明API需求,不是授权切换到UI自动化
## 触发与失误
用户一开始已说只需理解Opera操作要素,按钮/顺序与接口未必有关。Agent虽记录了该边界,后续却将
“平台未暴露原生XML报告API”当成主要阻碍,转向计划报表/SFTP,并反复要求用户点页面、给截图。
用户明确指出这不是所要求的接口研究。浏览器工具超时是另一个事实,不能掩盖先前已发生的任务方向偏离。
## 纠正
- 把UI动作转成筛选语义、必需字段、权限/可见性、顺序和完整性要求,再去catalog/OpenAPI逐项映射。
- 数据格式与获取途径分别判断:现有XML入口不等于必须存在同名XML下载接口;先核对多API组合的覆盖。
- 没有找到整份报表API时,清楚说明这一具体缺口,不放大成平台数据API不可用,也不擅自替换为另一条运维路线。
- 只有实际需用户决定的取舍才提问;查询接口定义、返回字段和已授权技术研究由Agent完成,不反复转交页面操作。
- 当前停止UI/SFTP分支,保持原始样本、固定规则、完整日提交和独立校验,继续API字段/参数/组合研究。
该边界已写入源报表契约、当前状态与接入README。原交付草案保留为停止推进的历史材料,未实施任何计划或传输。
## 后续同类纠正:页面标签不要求与XML内部值字面相同
用户始终给出Note Types=Resv.-GEN,Agent在XML看到RES_COMMENT_TYPE=CAS、说明GENERAL后将其表述为
“口径差异”,再次要求确认是否正确文件。用户提供准确的新文件并重申选项;新旧文件逐字节相同。
内部字段事实没有错,但由此暗示用户可能选错,证据不足,也把技术映射问题转交了用户。
- 区分页面标签、报表内部字段、API枚举及酒店配置,不能只因字面不同就认定用户输入矛盾。
- 解释内部值时先给准确字段名和源文件行号,明确不是页面控件名称,不让用户去页面寻找不存在的字面值。
- 用户明确确认的文件和选项应成为样本基准。技术映射继续验证,但不重复质疑同一业务输入,
也不未经同源证据将另一环境API筛选改成XML内部代码。
- 相同摘要/相同字节继续沿用已验证的处理基准,避免无意义的重复处理。
本次[确认记录](../../50-evidence/topics/2026-09-16-confirmed-native-arr-notes.md)与源契约已保存这一边界。
@@ -0,0 +1,9 @@
# 日期选择验证必须走完用户操作
用户报告日期不能选。初次修复扩大原生触发区,只观察到日历AX树打开,并用fill改值后判定修复;系统浮层选日节点不能点击的问题没有验证。用户再次反馈未解决,说明此前验证不足。
后续必须先观察当前控件是否被任务锁定,区分原故障和正常运行状态;交互验收要实际点击某天,确认字段值改变、弹层关闭且没有误提交。原生浮层无法完成操作时,不能用程序化改值替代证据。本次用页面内日历,并在服务端禁用写操作的独立预览里完成同月、跨月及键盘选日,保护用户正在运行的真实任务。
续修:用户再次指向任务运行时被禁用的图标。把它解释为“正常状态”没有满足用户的操作意图。
已提交任务身份应保持固定,下一次操作的表单选值可以独立;保护应放在提交和结果核对边界,不必阻止用户提前选日期。
验收还需检查选值不会被轮询覆盖,恢复旧任务时不会使用新日期,也不会因改选丢弃未知结果请求。
@@ -1,9 +1,12 @@
# Reflection Index
- 2026-09-18: [日期选择成功不能以弹层打开替代](cases/2026-09-18-date-picker-selection-is-not-opening.md) — 用户重复报错后补做真实点击选日,先区分任务锁定;不能用fill代替点击验收。
Use this index for second-order workflow lessons.
| Date | Reflection | Trigger | Action | Detail |
|---|---|---|---|---|
| 2026-09-16 | UI elements describe API requirements | User corrected drift from interface research into report-scheduler/SFTP and repeated browser requests | Map business criteria/fields to real operations; do not treat XML input format as a native-download-only restriction or switch workflows implicitly | [Case](cases/2026-09-16-ui-elements-are-api-requirements.md) |
| 2026-08-11 | Technical surfaces need explicit entry controls | The user corrected the Daily table because inspecting a business row unexpectedly opened a dense technical log | Keep ordinary rows informational, place technical utilities behind named controls, and remove interaction styling/semantics with the handler | [Case](cases/2026-08-11-technical-surfaces-need-explicit-entry-controls.md) |
| 2026-07-31 | Formatting is not business state | A yellow final Booking row was initially at risk of being interpreted as cancellation | Make cancellation text-based, preserve formatting as non-authoritative and keep a real-style regression | [Case](cases/2026-07-31-formatting-is-not-business-state.md) |
| 2026-07-30 | Coordinate hot static assets with the long-lived backend | Login static files activated before backend restart; later launchd ownership also hit macOS Desktop privacy | Feature-detect mixed versions, gate restart on all secrets, use a secret-free launcher and a desktop-authorized supervisor until deployment leaves Desktop | [Case](cases/2026-07-30-coordinate-hot-static-and-long-lived-backend.md) |