aps-agent/docs/round-83-c3-calendar-segmen...

3.9 KiB
Raw Permalink Blame History

Round 83:C3 班次日历分段 CP 模型

目标

把 operation-level CP-SAT 从连续分钟轴升级为真实班次有效窗口模型:工序只能在扣除休息段后的工作窗口内加工,长工序可在窗口边界暂停并跨班续作;同时把 C3 整约束移除诊断、父子进程拓扑校验、物化偏差阻断和真实 Web 诊断收口。

模型语义

  • cp-calendar-segmented.v1 以 shiftCalendar 的有效窗口为加工域,扣除休息段、非工作日和无效覆盖;正常模式为 calendar-boundary-only。
  • 长工序按多个 processing segment 表达,只能在窗口边界暂停/续作;operationSlots 输出 segments、processingMinutes、elapsedSpanMinutes、pauseMinutes、segmentCount、calendarCompliant 和 calendarMode。
  • C1 使用逻辑工序包络维持先后序;C2 与 C12 使用实际 processing segments。C2 按逻辑工序身份计实例,同一工序的多个段不会互相误判为资源冲突。
  • C3 removal 使用互斥的 continuous 模式,恢复单个连续区间;baseline/removal 共用相同输入与模型拓扑,只有 selectedMode 和 active 按预期变化。
  • C7 保持 start-day-full-duration.v1:仍按逻辑工序开工日整笔记账,不在本轮迁移自然日分摊、RHS 或现场费率语义。
  • 日历 segment selector 估算超过 50,000 时失败关闭,避免诊断请求形成不可控模型规模。

协议与失败关闭

  • C3 元数据绑定 anchor、horizon、coverage、normalizedCalendarDigest、bucket/window/segment 数、模型 identity 和 segment 上限。
  • solver parent 对 protocol v2 的 baseline/removal 响应逐字段校验;digest、拓扑、模式、assumption、operation 或 invocation 任一漂移均拒绝。
  • 主求解不固定启发式 hint。仅当第一次求解返回 UNKNOWN 时,才允许使用已验证的固定可行 hint 做 fallback;触发状态和时间均写入 solverMeta。
  • 现阶段 Rule 仍负责最终物化,尚未直接消费 CP segments。materializedC3Validation.cpTimingApplied=false;连续物化若跨休息或停工窗口,会产生 CALENDAR / C3_calendar 硬冲突并关闭 publish/dispatch,但保留原 CP solve status。

验收

  • C3 专项:11 passed / 1 warning。
  • CP/协议/诊断扩展回归:245 passed / 1 warning;独立审计聚焦:117 passed / 1 warning,4 项 P0/P1/P2 findings 全部关闭,AUDIT PASS。
  • 全量黄金:首次发现累积工作区 PoolEngine 未接受已声明的 KITTING_FIRST/SKILL_FIRST,最小修复后原失败 3 passed、Pool/Flex/导出相邻回归 62 passed / 1 warning,最终 1522 passed / 5 warnings。
  • Node:60 passed;Web build:4,853 modules,通过,仅既有大 chunk 提示。
  • 冻结 Sidecar:CPython 3.13.12、OR-Tools 9.15.6755;aps-sidecar.exe 23,897,019 bytes,SHA-256 F2DB84E8C8D1D7F834165C5DFB902ECE94435D31D64D849D16673E6DABCEC2A7。真实 protocol v2 baseline 为 2 段/暂停 60 分钟/calendar-boundary-only,removal 为 1 段/暂停 0/continuous,二者 runtimeSafe=true、拓扑一致。
  • 隔离 Web 18183/15183:真实任务显示 C3 有界改善 [0, 489,000];API baseline FEASIBLE、removal OPTIMAL,digest、87 buckets、每线 80 windows、3,040 segment intervals 一致,console warning/error 为 0。临时端口已关闭,主 8003/5173 及前端代理均 HTTP 200。
  • 四个受保护业务文件在本轮最终全量与隔离验证前后 SHA-256 一致;server/data/** 与 .env 无 Git 状态。

边界

  • CP segments 尚未作为 Rule 物化的唯一时间事实源;下一本地优先级是经验证地直接物化 CP 时间,同时保持工单、资源、发布和回滚契约。
  • 真实 MySQL 多主机、MES/WMS/SAP 厂商联调、现场费率/罚则、签名、Defender 和干净离线机仍需外部环境或业务输入。
  • 未提交、推送、合并或发布。