tradingSystem/docs/交接_每日选股计划完善_2026-10-15.md

795 lines
80 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 每日选股计划完善交接
2026-10-15,北京时间。状态先行:基座、155 桥与 155 模拟 PMS 均已部署并重建相关容器。
用户批准补齐旧排序配置,桥保持 transmission 与 CARD_SORT_BY_QUALITY=0;11:28:51 完成最终重建。
新版发布代码已生效。已安排 10-16 07:25 核验首个完整晨版;XXL 任务 137 已创建且停止,判收后启用五分钟修订及 PMS 提议重核。用户已取消额外五日模拟观察。PMS 三项差异已定位为成交双记,防双记代码于 12:02:54 部署;历史账本尚未修复,详细证据见末节。
正式契约与实现原理见同目录《每日选股计划完善方案与开发规格_2026-10-15.md》。
## 用户已决定的范围
允许 astock-kg、akg-factor-bridge、tradingSystem 联动。保留准入门槛及真实运行参数;
盘中评析变化发布完整修订;采纳前核验,只有排名变化不撤销。基座只提供研究,桥负责版本与计划,
PMS 负责组合和执行。择时能力不扩展,bionic_trader 只同步文档。用户本次明确批准部署和容器重启;
该批准不改变禁止机器重启和禁止自动切换排序、档位及仓位参数的边界。
## 工作区与原有修改
| 仓库 | 本轮开始的本地基线 | 本轮范围 |
| --- | --- | --- |
| astock-kg | codex/review-asof-export-20261012,a6d8c7c | 报告对象归档、固定引用接口、计划代理和今日页、离线测试、规格与交接入口 |
| akg-factor-bridge | main,ca46a95 | 确定排序、输入录制与重放、不可变版本、修订任务、只读查询缓存、复盘及契约测试 |
| tradingSystem | main,afec4f7 | 消费记录、顺序与核验、命令和指令来源、研究页面、回归及台账 |
| bionic_trader | main,ec533d9 | 仅方案和交接同名副本 |
PMS 初始已有 docs/复盘决定台账.md 未提交修改,以及方案讨论稿、probe_both_offline.py、probe_crash_live.py 三个未跟踪文件。
本轮仅在该台账末尾追加 018,不覆盖原内容。bionic 已见 .DS_Store、.claude/.DS_Store 修改和第三方接入指引未跟踪文件,均未触碰。
以上为本轮开始的基线,不能当作本轮部署版本。实际提交见末节;提交已逐文件选取,未带入其他会话文件。
## 四批实际交付
1. 排序:桥证据次级键与股票代码稳定收尾;无主题不限额桶;PMS 消费顺序进入自主扫描,信号插队留原因;命令保持原分配规则。
2. 版本:桥新增 plan_inputs.py、plan_versions.py、plan_refresh.py、plan_health.py,来源与配置冻结、文件锁、原子入口、固定晨版、父链、失败待核验、版本缓存。旧实时覆盖入口已删除,历史不现算。
3. PMS:新增 plan_revision.py、plan_recheck.py;received/consumed/rechecked 三类 JSON 记录;计划到提议及执行的来源关联;人工确认版本令牌及状态/原内容条件更新;停止按行数清理。PMS_PLAN_VERSION_RECHECK 默认 False,尚未启用。
4. 研究:基座 archive.py 按内容归档并提供 ref 查询;桥完整透传已有研究字段,保存变更;基座今日页和 PMS 候选/提议/持仓页显示材料时间、报告时间、论点与未知项;固定报告不可用时明确缺失。
新增任务五处登记已写入规格书:发布存储、XXL 独立步骤、run.py 手工入口、plan_health 日检、桥台账 064/PMS 台账 018 与本交接。
实际 XXL 平台任务没有创建;requirements 新增 chinesecalendar>=1.11,部署镜像须包含它。
## 预判与离线实测
所有命令均在本地执行;PMS 及桥测试在空临时工作目录、清理业务环境变量并禁止所有网络连接的护栏内运行。
本地 Python 使用已存在的测试运行时,不安装生产依赖、不连接任何库或模型。
| 预判 | 实测证据 |
| --- | --- |
| 基座引用确定、内容或材料变化产生新引用;代理保持指定版本及研究字段 | 全套 190 项 unittest,OK,退出码 0;含 6 项新增归档/代理用例 |
| 好转差同步改变判决、质地带和排序,晨版不变;查询不读取新评析 | 桥 test_daily_plan_contracts 32 个用例/断言组,OK,退出码 0,含真实 collect 的合成来源修订测试 |
| 重复发布幂等、并发只有一版、断电后保留完整旧版、孤立文件不可查、晨版指针可恢复 | 同桥版本回归;健康检查能发现超过十二分钟无检查及入口损坏 |
| 历史不得回源、当前参数不改旧消费、无主题和同证据强度确定 | 桥历史/缓存/排序断言组通过;缺档明确排除 |
| 单一名额优先给消费顺序靠前者;信号优先有原因 | PMS 全套隔离入口 ALL SUITES PASS;包含新第 38 批 15 项 OK |
| 仅排名变化保留,材料变化重评数量,旧确认拒绝,状态条件更新防重复采纳 | 第 38 批覆盖资格失效、版本不可用、缩量 300→100、旧令牌、SQLite 两线程竞争仅一次成功 |
| 120 交易日与引用保留不能被行数清理破坏 | 清理函数已变为不删除;15 项中有不允许触发 DELETE 的回归;真实留存天数未判收 |
| 页面可读、未知不伪造、旧确认返回后要求重新确认 | 三个 PMS 页面守卫退出码 0;基座 JSX 构建成功;本地浏览器显示中文研究字段及再次确认提示,两端无 JS error |
PMS 最终全套回归已包含第 38 批 15 项;另覆盖名次裁剪复核、历史清理、在途承诺变化和旧研判缓存失效。
页面改动也通过全部三个页面守卫。桥日历的 2026 年日期另以现有 chinesecalendar 1.11.0 离线验证一项,OK。
浏览器服务只监听 127.0.0.1,所有接口为合成数据,任何 POST 都返回过期确认提示;它不能连接或产生真实交易。
```bash
# 本地 · astock-kg 根;实测使用 Codex 附带 Python 运行时
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=backend /Users/baobao/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3 -m unittest discover -s backend/tests -t backend
```
```bash
# 本地 · akg-factor-bridge 根;测试入口复用 PMS 的配置隔离、断网护栏
/Users/baobao/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3 ../tradingSystem/scripts/unit_test_guard.py test_daily_plan_contracts.py
```
```bash
# 本地 · tradingSystem 根;既有离线测试虚拟环境
/private/tmp/pms-codex-20261012-venv/bin/python scripts/run_tests.py
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_batch38_units.py
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_copy_guard.py
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_enum_guard.py
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_wiring_guard.py
```
本次原始输出位于本机 /private/tmp/base-final.log、bridge-contracts-final.log、pms-final.log、pms38-final.log;
临时目录可被系统清理,不把它当长期验收库。需要复核时用上述离线入口重跑。
页面截图在本机 /private/tmp/daily-plan-ui/,内容均为假数据,不能充作生产读数。
## 尚未完成的生产验收
本地实现阶段没有生产操作。下列原上线步骤中的核对、提交和首批部署已完成,状态以末节为准:
1. 只读核对真实运行参数、部署 Git 版本、容器和模拟/真实实例身份;明确当前排序轴、档位白名单及仓位参数。
2. 整理仅包含本轮文件的提交,按仓库中文提交约定处理文档副本;容器操作前取得用户同意,避开北京时间 06:10 与 07:10。
3. 先部署兼容读取及留痕,再部署桥发布并核验晨版;最后在模拟实例启用五分钟修订与 PMS_PLAN_VERSION_RECHECK。
4. 按规格每天核对版本一致性、源到发布到消费的时刻、顺序、核验和重复指令。完成五个连续交易日后才宣布模拟判收。
真实时延、平台调度互斥、进程重启恢复、数据量下磁盘容量及全部生产接口形状仍待真机验证。
本地恢复测试不能替代真实机器断电/重启证据;不得以此请求或执行机器重启。
回退保留全部版本及账本,停修订并提供最后有效版本;不恢复历史现算或局部覆盖。
此前财报历史导出的来源修订不完整限制仍有效,本轮没有解除旧实验的研究资格限制或投资验证暂停记录。
## 2026-10-15 首阶段部署记录(桥切换前,后续以末节为准)
时间均为北京时间。用户本轮指令为“继续,完成部署和重启”。未重启机器,未操作数据库容器,未执行交易、提议采纳或账本修复命令。
| 对象 | 实际结果 |
| --- | --- |
| 178 基座,`~/project/astock-kg` | 功能提交 `148745a`,时间显示补正 `4a603d5`,均已推送 master 并快进部署。10:27:28 重建 API 与四组 worker,各一副本;10:33:02 前端补正后完成再次构建与重建。beat 及数据服务未动。 |
| 155 模拟 PMS,`/home/factor/project/tradingSystem` | 功能提交 `65d2940`、时间显示补正 `6a5ae12`,10:42:37 四服务完成重建。镜像 `sha256:ff022b05645d77bc7d204f3344036f41ad585de2e07d1ed5e2cd02e67c0abaf7`;镜像内与运行目录 Python 指纹均为 `eb4b4cbbff7f`。 |
| 155 桥,`/home/factor/project/akg-factor-bridge` | 正式运行仍为 `3d3f317`;待部署 `20431fe`,含功能 `5eac6f6` 及远程历史台账合并。候选镜像 `akg-factor-bridge-candidate:20261015` 已就绪,32 项断网契约测试 OK。未拉正式目录、未重建运行容器。 |
| 188 真实 PMS | 只读核对为 `51bd6dc`,只运行 web 与 ws;未更新、未重启。先完成模拟观察。 |
| bionic_trader | 仅同步方案及交接副本;未部署或重启服务。 |
**运行态判收为真机见过的部分:**
- 基座 API 与前端 HTTP 200,四个 worker 均回应 ping,六个重建服务重启计数为零。日检 17 项通过、0 错误、2 警告;警告为 10 月国庆休市日缺档。行情与传导日均为 10-14,投影为 10-15。
- 基座真实浏览器页面显示旧计划“追溯不完整”,缺失研究字段为未知;旧无时区时间改为“时区未记录”,不再误标北京时间。浏览器未见 JS 错误。
- PMS 在服务器临时目录和新镜像内分别运行配置隔离、禁止联网的完整回归;新镜像 42 批 `ALL SUITES PASS`,新增 15 例 OK。页面三道守卫通过。四服务健康、DB 连通、交易日历正常;QMT ONLINE,水位继续推进,待入账与在途出口委托均为零。
- PMS 自动调度已落 received 记录 54(10:42:50)和 consumed 记录 55(10:43:04)。消费记录保存 13 只实际顺序、过滤条件、参数及消费指纹;排序为 quality_bucket,rank_by_upstream=False。旧桥没有 decision,记录保留空值,未伪造版本。
- 部署前后既有参数一致:下发 ws、自主 full、新建仓 propose_only;仅强传导、TOP_N=50、上下游主题限额 0、盘中信号优先 True;总规模 200 万、总仓上限 0.70、单股上限 0.08、最多 40 只、行业最多 4 只/0.40。PMS_PLAN_VERSION_RECHECK=False。
**桥暂缓的具体原因。** 正式代码还没有 PLAN_RANK_AXIS 与 CARD_SORT_BY_QUALITY;容器环境和 .env 都没有这两项。旧行为是传导主轴加档内质地加减分。main 中此前未上线的提交默认改为 quality 与卡内质地排序。直接更新会违背本轮“不得自动修改线上排序开关”。已向用户请求确认仅补 `PLAN_RANK_AXIS=transmission` 与 `CARD_SORT_BY_QUALITY=0` 保持当前行为;未收到答复前不修改配置、不切桥容器。已有 `CARD_REQUIRE_STARTED=0` 和质地降档门保持。
**未判收。** 桥完整晨版、固定历史版本、真实修订与十二分钟传播、提议重新核验、并发采纳及连续五个交易日观察仍未判收。XXL 五分钟任务尚未建立,新核验仍关闭。不能在盘中补造 07:10 晨版;桥部署后等待首个真实晨版再启用后续阶段。
**既有异常。** PMS 部署前监视已出现 8—9 月出口委托缺父指令的历史记录。部署后轻量对账还报告 3 项差异,原因未在本轮定位;未改账、未清理。这些不能写成“全系统全绿”。
**保留与回退。** 基座服务器原有临时数据删改和未跟踪文件保留;155 的 deploy.sh 可执行位和未跟踪文件保留。PMS 原有台账 017、讨论稿及两个探针未随本轮提交。基座旧前端镜像为 `astock-kg-frontend:rollback-20261015-3207417`,PMS 旧镜像为 `pms:rollback-20261015-afec4f7`。155 源码挂载,回退必须匹配源码与镜像;任何回退均保留新版本及消费账本。
**证据位置。** 基座宿主 `~/akg_logs/daily-plan-deploy-20261015.log`、`daily-plan-postdeploy-check-20261015.log`;155 宿主 `~/pms_logs/daily-plan-deploy-20261015.log`、`daily-plan-postdeploy-watch-20261015.log`。镜像测试临时证据分别在 `/tmp/pms-dailyplan-20261015.SX6G8I/` 与 `/tmp/bridge-dailyplan-20261015.v6U7Wo/`,临时目录不能代替本交接中的实测摘要。
部署期间 155 SSH 曾返回 Exceeded MaxStartups,10:33 恢复并复用同一连接,未修改 SSH 设置。台账临时还原命令曾被自动审批拒绝;之后采用先完整提交再合并远程条目的方式解决,没有丢弃内容。
## 2026-10-15 桥部署完成及最终核验
时间均为北京时间。用户明确答复“补齐旧排序配置,保持当前行为”。已在 155 桥 .env 补入
`PLAN_RANK_AXIS=transmission` 与 `CARD_SORT_BY_QUALITY=0`。原配置备份保存在
`~/akg_bridge_logs/bridge.env.before-20261015`,未将配置或凭据提交到仓库。
桥 11:21:06 首次重建后,继续修复旧格式计划直接读取的兼容问题,提交为 `fe443f6`。
原底层时间守卫还会因代码哈希变化拒绝旧计划;HTTP 缓存入口原本已正常返回 200,不能把它记成线上接口中断。
修复后直接读取也保留有效期内旧计划,仍保留原代码版本、时间约束和追溯缺失标记,不回源、不伪造新决策版本。
本地断网契约测试 33 个用例/断言组通过。仅含已提交源码的候选镜像内同样 33 组通过,才切换容器。
首次镜像测试因护栏挂载层级错误在入口退出,未计为通过;修正挂载后重跑成功。
最终 `akg_factor_bridge` 于 **11:28:51** 启动,运行镜像为
`sha256:107929c3366d271eb762aee8687dac56dbabcae134d7856770dc6fcd2af7639b`。
可读标签为 `akg-factor-bridge-candidate:fe443f6`,旧镜像保留为 `akg-factor-bridge:rollback-20261015-3d3f317`。
11:31 核对桥及 PMS 四服务全部 running,重启计数均为零。基座六个已重建服务也持续运行。
| 验收对象 | 真机读数 |
| --- | --- |
| 桥有效配置 | PLAN_RANK_AXIS=transmission,CARD_SORT_BY_QUALITY=False,CARD_REQUIRE_STARTED=False,CARD_COMPANY_QUALITY_GATE=True。 |
| 最新与日期查询 | `/plan` 与数据日 2026-10-14 查询均 200;两次主榜前 50 名查询分别约 1.47 秒、0.84 秒,前五名相同。缺失历史与非法版本均 404,不重装配。 |
| 旧计划保留 | 部署前后及查询后 `plan_2026-10-14.json` SHA256 均为 `f849119c78b0f3ff780c69fa111a315d4c56a70ff3651e9347eabf3c2cd457cb`。全量主榜 551、观察 595,decision 为空。 |
| 修订手工入口 | `python run.py plan-refresh` 返回 no_morning,未补造晨版,旧计划文件未变。健康提示“旧快照,追溯不完整”,为阶段内预期提示。 |
| PMS 实际读取 | 11:30 以真实参数只读拉取 300 条主榜、100 条观察档,日龄检查通过。没有触发扫描、采纳或执行。 |
| 自动留痕 | 正常调度于 11:23:02 写 received 56 与 consumed 57。与切换前 consumed 55 比较,13 只完整入选顺序、参数、rank_mode 全同;过滤记录变化另存新消费指纹。旧记录未改。 |
| 最终顺序 | consumed 57 前五为 002979.SZ、300274.SZ、002518.SZ、688147.SH、601138.SH;消费指纹 `227b078ec947375b4f9a4d1684aa8bbc49117d7ac06aec69a8e442f9dfa9ebd8`。 |
| PMS 控制与健康 | ws、propose_only、信号优先 True、总规模 200 万、总仓 0.70、单股 0.08 保持;PMS_PLAN_VERSION_RECHECK=False。/health 为 200、db_ok=True、calendar_degraded=False。 |
| 基座浏览器 | 桥切换后今日页正常显示旧计划、追溯不完整、截止时刻未知和旧时间未记录时区;浏览器错误数 0。 |
本阶段完成的是部署、兼容读取、消费留痕和现有行为核对。既有 07:10 晨间入口下次运行才形成首个完整晨版,
预期最早为 10-16;必须实际核验后,再配置 XXL 五分钟任务并在模拟仓开启新版核验。
本轮未新增宿主 cron,也未建立自动检查或自动启用任务。XXL 平台任务尚未创建,后续需从现有平台入口接续。
十二分钟传播、新版提议重核及五个连续交易日观察仍未判收。188 真实仓和择时服务未部署、未重启。
前节记载的 PMS 历史异常与轻量对账三项差异继续待查,本轮没有据此改账或清理。
桥日志在宿主 `~/akg_bridge_logs/daily-plan-deploy-20261015.log`、
`daily-plan-compat-tests-20261015.log`、`daily-plan-postdeploy-check-20261015.log`。
本地补充回归为 `/private/tmp/bridge-deploy-compat-20261015.log`。PMS 最终读取追加到原 postdeploy-watch 日志。
此前连接问题出现在开发机到 155:2280,尝试从 178 到 155 也遇到相同限流;已恢复,之后部署持续使用开发机到 155 的 SSH 连接。
## 10-15 12:05 接续决定、差异根因及修复部署
用户最新要求:先排查 PMS 三项对账差异,安排下个交易日核验首个完整晨版,通过后启用五分钟自动修订与提议重核。
当前实例本身就是模拟仓,不再增加五个交易日观察。本条覆盖前文、规格书与台账 064 的五日上线等待要求;
版本一致性、顺序、幂等、故障恢复和十二分钟传播的技术验收继续保留,五/十/二十日策略复盘口径不变。
### 三项差异
| 股票 | PMS / QMT 数量 | 核对结果 |
| --- | --- | --- |
| 002050.SZ | 800 / 700 | 同一委托重复买入 100。WS 为 73+27 股,汇总表又以 31.560 记 100;重复批次 1361。 |
| 002979.SZ | 0 / 1900 | 四个委托的 1300+500+100+100 股被 WS 与汇总各扣一遍,账本下限截断为零。 |
| 688100.SH | 2400 / 1400 | 700 买、400 卖、700 买被双记,净多 1000;重复部分还被误认外部 BASE。 |
八个委托的 instruction_id/order_id、broker_order_id/qmt_order_id 均逐笔相同,WS 全部 processed=1,
汇总全部已在 replay cursor.seen。原因是 ledger_service.replay_fills 的“汇总只兜外部成交”停留在注释,实际没有归属排除。
差异发生于本次计划部署前。另有 ws 与 trading_position 表的两个代码覆盖差异(562590.SH、688825.SH),
属于事实源分歧提示,与上面三项账本数量差异分列;本次仍按现行 ws_first 规则。
修复 e9afc7a 已推送并在 155 拉取。按出口身份分流,已归属 ws 的汇总只留跳过记录和 seen,等待逐笔;
身份读取失败或矛盾不落账不记 seen。无归属的外部人工成交保持原流程。新增 12 例,开发机隔离全量 43 批、
155 候选镜像 --network none 全量 43 批均通过。真机只读分类覆盖八笔实际委托,全部正确命中。
12:02:54 北京时间重建 pms-web、pms-worker、pms-beat、pms-ws,镜像为
`sha256:c17af17aeb09d151bbe932395b879add1ed336b16739703f9acc594bee30b3f1`,标签 `pms:replay-fix-e9afc7a`,
镜像与运行工作树 Python 指纹同为 `cc988cd762bf`。回退标签 `pms:rollback-before-replay-fix-20261015`。
12:04:59 /health 正常,db_ok=True、calendar_degraded=False,QMT ONLINE,seq/acked_seq 都为 1226149,
待入账与在途出口委托均为 0。ws、propose_only、信号优先 True、200 万、0.70、0.08 及完整计划筛选参数未变,
PMS_PLAN_VERSION_RECHECK 仍 False。午休正常返回 not_in_session;修复后自然成交回放尚待真实事件判收。
历史账本没有直接调平。日终 RECON 调数量不能还原被污染的成本、已实现盈亏和指令执行进度,不能声称账已修好。
需根据逐笔与可用历史批次快照另做可逆修复设计;证据不足部分显式保留不确定性,不虚构准确历史。
详细排查与修复规格在 tradingSystem 的 `docs/PMS三项对账差异排查_2026-10-15.md`,台账 019。
原始证据位于 155 `~/pms_logs/reconciliation-evidence-20261015-before-fix-v2.json`(340982 字节,
SHA256 `8e0badf4d771fbf8a3227250c6cc2c2bf3c8234dda2fc33a31f0ab00920f5501`)。首次导出的空文件是失败初稿,v2 才有效。
部署、候选镜像测试、判收分别见 `~/pms_logs/replay-fix-deploy-20261015.log`、
`replay-fix-tests-20261015.log`、`replay-fix-postdeploy-20261015.log`。服务器原有 deploy.sh 修改与未跟踪文件未覆盖。
### 已建立的接续入口
- Codex 心跳 `automation-2`,名称“每日计划首个晨版核验与启用”,ACTIVE,按北京时间每天 07:25。
首次预期 2026-10-16,155 日历确认该日为交易日且未降级。不是业务修订调度,不替代 XXL。
完成启用与必要技术验收后暂停;等待期间只报告实质变化,不能加回五日观察条件。
- XXL 平台 `http://192.168.16.165:8080/xxl-job-admin`,通用执行器,任务 **137“每日选股计划五分钟修订”**。
已复制既有 08:45 区制任务的通用 HTTP GLUE(Python3) 脚本并只改入口步骤为 plan-refresh;
A股交易日模式、07:20—15:10、间隔 300 秒,回调开启。已有鉴权值沿用,不写入文档。
当前 **已停止**,没有执行一次、没有提前启用;以后找到 137 启用即可,不重复创建。
- 原 07:10“知识图谱每日股票池生成”与 08:45“知识图谱每日股票池重检索”均保持启用,未改配置。
平台记录 10-15 07:10 构建成功,耗时 1 分 28 秒;08:45 成功,耗时 3 秒。
07:25 首版验收要逐项核对:实际行情日与今日 cutoff、schema/decision、morning 指针、冻结输入及有效配置、
全量名次、最新/日期/固定版本查询一致、旧版本不变、缺档不重构。通过后启用任务 137,核对下一次触发与回调结果,
随后仅用 ParamStore.set_param 打开 155 的 PMS_PLAN_VERSION_RECHECK。保持其余运行参数。
消费必须来自正常 received/consumed 记录,预览读取不充作实际消费。自然新评析才能测实际传播时延;
不得为验收采纳提议或制造交易。若该时点还没有消费或自然修订证据,调整同一心跳后续核验时间继续。
当前历史账本差异不能被记录为已解决,但不以额外模拟天数代替具体技术验收。
## 10-15 12:40 历史账本修复完成与判收
本节取代前文“三项历史差异尚未修复”的当前状态。用户明确批准先备份、逐笔核对并恢复数量、成本、盈亏及指令执行进度。已在 155 模拟仓完成,188 未操作。
### 备份、部署和写回
功能提交 `0871885`,Python 指纹 `01251315d8d1`。本地配置隔离禁网和 155 候选镜像 `--network none` 均通过全部 44 批测试,新批次 40 有 21 例。未将用户原有未提交台账 017、讨论稿或探针纳入提交。
先于任何写账保存完整备份,再在午间暂停 beat/worker,拉取已提交版本并重建四容器。web/ws 于 12:37:27 启动,worker/beat 于 12:39:33 恢复。四容器同镜像 `sha256:22422dc46784ff87c8ccfc6f9a2ae05ba8ee111eb18e3f1a369f9d913279ff0b`,标签 `pms:history-repair-0871885`;上一镜像留为 `pms:rollback-before-history-repair-20261015`。
155 宿主 `~/pms_logs/` 的证据如下,JSON 文件权限为 600。
| 文件 | 内容或 SHA256 |
| --- | --- |
| historical-repair-backup-20261015-1225.json | 初始完整备份,81cfc59600d7ca07de7fc4b83b7c5b153719d0ea248be21fd9d910bcfc32e636 |
| history-repair-before-write-20261015.json | 12:37:55 写前完整备份,d1b3eeaede0ea418ec071fa593ee6a98177a55433ee0201b502ff80ff6226f02 |
| history-repair-preview-20261015.json | 逐笔映射、每笔卖出分配、逐日数量金额、全部目标列和原值 |
| history-repair-after-write-20261015.json | 写后完整备份,8463f0da2e1d152e7606c38607918b05555481f4ecbd15b482a326951ebd3606 |
| history-repair-apply-20261015.log / history-repair-verify-20261015.json | 实际提交及独立读回判收,全部检查通过 |
| history-repair-build-20261015.log / history-repair-tests-20261015.log / history-repair-deploy-20261015.log | 候选构建、断网测试及容器重建 |
修复批号 `HIST_c036a684cab040387321396e`。同一事务校验原行、完整逐笔和有效参数,修改 122 行,保存 122 条逐行原值审计和 1 条完成记录。再次执行同一备份返回 already_applied,审计数仍 122+1。原始成交、回放游标、方案、命令、手续费流水、旧日报净值及其他股票原行均未被改写。
### 实际恢复结果
| 股票 | 恢复数量 | T+1 可卖量 | 摊薄成本(元) | 账期已实现盈亏(元) | 可追溯起点 |
| --- | ---: | ---: | ---: | ---: | --- |
| 002050.SZ | 700 | 600 | 44.109 | -6762.70 | 2026-09-22 |
| 002979.SZ | 1900 | 1900 | 55.060 | -1684.25 | 2026-09-21 |
| 688100.SH | 1400 | 0 | 23.704 | 16.86 | 2026-10-14 |
成本沿用 PMS 的含已实现盈亏摊薄口径,盈亏为原批次核销规则下的毛额,不含费用。134 笔成交对应 61 个真实买入批次;33 个重复汇总或 RECON 批次归零留痕,原 ID 保留。逐笔成交与 39 个留存子单的累计数量一致,累计均价差异最大 0.004964 元,处于 QMT 两位小数舍入范围内;其中 2 个子单属于 688100 的已闭合旧轮次,未混入当前账期。
24 条父指令恢复实际成交量、成交均价,并在 progress 中增加逐笔证据、原进度、剩余量及超额量。七条原误判 CONFIRMED 的指令改为 CANCELLED,含义为“历史修复暂停剩余执行”;其子单都已终态,无需撤单,也没有向 QMT 发送撤单或新单。仍在执行的 002050 DCA 指令实际进度为 100/300,保持原生命周期。
002979 的 `STR20261012093212_002979SZ_g` 目标 1300 股,两个真实子单累计买入 2600 股,保留超额 1300 的事实。这是实际执行异常,无法通过删账撤销,后续须单独排查历史出手并发/重试链路;本次没有反向交易。688100 活跃网格第 3 档恢复为真实剩余 1000 股,批次成本 23506.51 元、均价 23.50651;原仅记 700 股/16471 元。已取消的旧策略未恢复。
12:40 真机健康 200、db_ok=True、calendar_degraded=False,QMT ONLINE、last_seq=acked_seq=1226583、last_error 为空,待入账 0。独立对账返回 diffs=[]、errors=[]、severity=OK。历史 streak=14 是尚未到日终重置的旧计数,不是仍有三项差异。既有 ws_first 源覆盖警告仍为 562590.SH、688825.SH 两票,单列保留,不混同已修复差异。
### 明确不能还原或未判收的部分
1. 134 笔逐笔费用为空,无法还原真实扣费与净盈亏;费用流水原为空,未补零冒充真实费用。
2. 缺完整盘中行情和当时账本,历史安全垫峰值无法准确恢复,保留原值并标明限制。
3. 688100 的 08-27 买 800、09-01 卖 800 的旧轮次可核对成交毛差 330.47 元,但原父指令和批次已不在当前账本;无法恢复原始批次分配与完整决策链,不把该旧轮次利润写进本轮。
4. 历史日报和全组合净值受旧错账影响,缺少重建全组合所需的全部原始状态,本次保持原档案。修复预演提供逐票逐日数量、成交净额和批次盈亏,不能将其冒充当时实际报表或已修复全历史绩效。
5. 防双记代码的自然新成交判收仍需真实事件;不得制造成交来验收。真实超目标成交和两个事实源覆盖分歧仍单列待查。
### 后续和回退
`automation-2` 已更新修复结论,保持 ACTIVE 和北京时间 10-16 07:25。首个完整晨版通过后启用已创建且停止的 XXL 137,再开启 155 的 PMS_PLAN_VERSION_RECHECK。当前该参数仍 False,ws、propose_only、旧传导排序及档位和仓位参数保持;不增加额外五日模拟观察。版本一致、顺序、自然传播十二分钟、失败守成和无重复指令仍须实际事件判收。
手工入口 `scripts/repair_ledger_history.py` 开头列有 backup/preview/apply/rollback 跑法。回退须读取审计并比较修复后原行,后续有新交易或状态变化会拒绝覆盖;不得通过切旧镜像恢复旧账,更不得直接用旧备份覆盖新的成交。回退保留新旧审计与计划版本。
## 10-15 12:50 最终运行版本与均价有效期
最终功能提交为 `a56dac5`,包含 0871885 的历史修复及指令均价有效期补齐。原增量入账接口只收到数量,不能重算全量均价;后续新成交时同步清空旧 exec_avg_price,固定修复时点的准确金额继续保存在 progress.historical_repair 与操作审计中,避免显示过期均价。未再次改写历史账本,也未恢复暂停指令。
batch40 增至 22 例,内存数据库验证数量增加、均价失效、固定证据保持;本地与候选镜像 `--network none` 全部 44 批再次通过。12:50:11 四容器重建并恢复,镜像 `sha256:f3d4e698bc31be521f59b39588444495e143f9a52a3d5233b42a699f4030093d`,标签 `pms:mean-validity-a56dac5`,Python 指纹 `3de5fc3a261e`。前一版保留为 `pms:rollback-before-mean-validity-20261015`。
12:50:47 再次独立逐字段核验通过,三票数量、成本与盈亏保持上一节读数,审计仍为 122+1,对账 diffs=[]、severity=OK。健康 200、db_ok=True、calendar_degraded=False,QMT ONLINE、last_seq=acked_seq=1226717、last_error 为空。PMS_PLAN_VERSION_RECHECK 仍 False。全部备份及不可还原边界继续有效,明日 07:25 接续安排保持。
最终日志位于 155 `~/pms_logs/mean-validity-build-20261015.log`、`mean-validity-tests-20261015.log`、`mean-validity-deploy-20261015.log`、`mean-validity-ledger-verify-20261015.json`。四仓文档继续同步;只有文档更新无需再次重启容器。
## 10-16 首晨版验收、边界修复与启用结果
本节为最新状态,时间均为北京时间。晨版核验及边界修复后,已启用 XXL 137 和 155 提议重核。
本轮只重建桥容器,基座与 PMS 容器未重启,188 未操作。没有人工采纳提议或制造成交。
### 晨版及运行读数
- 178 部署仍为 3a2c7c0,四条 worker 均存活。日检 17 项通过、3 警告、0 错误。行情与传导日为 10-15,投影为 10-16。两条警告是休市缺档,另一条为 17 家材料已到而报告未更新。本轮未触发模型补跑。
- 155 正常晨链 07:10 开始,约 1 分 40 秒完成。行情日 10-15,决策截止 10-16 07:10:13.665600,生成于 07:10:55。
- 主榜 556、观察 598、候选卡 20、关注卡 27。冻结 32 路输入,无来源错误。591 行有评析,14 行有固定报告引用;其余缺引用的旧报告明确只保留摘要。
- 输入指纹、有效参数、全量研究名次、最新、日期及固定版本查询均一致,查询裁剪不改变研究名次。
- 晨版 ID 为 `2026-10-15_030042d5142661e0672203231f15c86467078219eb6f5de4acf1091653c011d9`。原代码版本继续记录 8549fa8,不随部署改写。
- 晨版文件 SHA256 为 `457c5c803711ca89941b6ae14f31a1bfad5f586ab1efe24e68b8d803c14f713e`;归档文件 SHA256 为 `70826ed236b30c1120a1f5ab99fb575e0b46a7acf31051dc117cce6d68fe1c45`。上线前后均保持。
### 凌晨重复构建与历史缺口
首次判收没有全绿。01:50 的既有“量化交易计划任务”流水线也调用默认三步。
当时盘前数据尚未准备,01:51 以 10-14 数据日发布首版,替换了旧格式日期入口。
旧文件原哈希为 f849119c78b0f3ff780c69fa111a315d4c56a70ff3651e9347eabf3c2cd457cb。
现入口哈希为 8e9d3996ef49ee9352d828177ded5142f35ff5258099b02f14735d6bf5e9ef07。
未找到可核验原件,不能声称恢复,也不能把凌晨新采集结果当作昨天的真实决策。
修复 e44f770 已提交、推送并部署。已发布日期重复生成直接复用,不再采集或写日频状态及评析目标。
底层发布拒绝替换旧格式。复盘核对首版截止日是否为行情日的下一交易日,晚生成样本排除。
实机证明 10-14 晚生成首版已排除,10-15 今晨版正常可用。现存完整版本与原流水线未改写。
本地首次测试因运行时缺日历依赖失败,未据此部署。
使用既有纯 Python 日历依赖后,本地 36 组通过。155 候选镜像禁网测试也为 36 组通过。
07:33:40 桥容器重建,镜像 `sha256:c3a74ef54f08856c721a0a6fbb6a85cf8a726ce47b8e7c1ad226008a0fddb10d`。
候选标签为 `akg-factor-bridge-morning:e44f770`,回退标签为 `akg-factor-bridge-rollback:before-morning-boundary-20261016`。
先备份现存计划,再拉取及重建。备份为 155 `~/akg_bridge_logs/morning-before-deploy-20261016.tar`,
SHA256 `f585f8fddb382060f20bff796b12071bea5da6c317807fddd05a2c46100974f3`。
回退保留所有版本和账本;旧格式原件缺失仍未恢复,不用旧备份覆盖后来数据。
### 启用与账本复查
XXL 137 已启动。07:35 自动触发,07:35:12 返回 unchanged,回调 HTTP 200。
平台显示成功、耗时 13 秒、下次 07:40。没有手工重复触发或无变化新版本。
原 07:10、08:45 及凌晨流水线未改;修订仍为交易日 07:20—15:10 每 300 秒。
PMS_PLAN_VERSION_RECHECK 于 07:35:36 经 ParamStore 开为 True,另起 worker 读进程确认。
首次审计身份过长被数据库拒绝,缩短为 codex-20261016 后成功,未绕过参数入口。
ws、propose_only、信号优先 True、规模 200 万、总仓 0.70、单股 0.08 保持。
桥传导排序及 CARD_SORT_BY_QUALITY=0 保持。
PMS 上游排序 False、质地排序 True、仅强传导、TOP_N=50、两处主题限额 0 保持。
PMS 功能仍为 a56dac5,四容器镜像 f3d4e698bc31,与昨日一致。
07:27 三票数量 700、1900、1400;成本 44.109、55.060、23.704;毛盈亏 -6762.70、-1684.25、16.86。
对账 diffs=[]、errors=[]、severity=OK,旧 streak 已归零。QMT 在线且水位同步。
两处事实源覆盖差异和 002979 真实超目标买入继续单列待查。七条历史暂停指令没有恢复。
### 页面与后续验收
基座今日页浏览器已核对北京时间、版本详情与研究面板,浏览器错误数为零。
缺少固定报告时明确显示“历史报告版本不可还原,仅有摘要”。
PMS 页面要求重新登录,未绕过登录。真实候选与提议页面本轮未判收。
开发机截图为 `/private/tmp/daily-plan-refresh-enabled-20261016.jpg` 和 `/private/tmp/daily-plan-morning-base-20261016.jpg`。
155 证据位于 `~/pms_logs/`:morning-acceptance-20261016.json 保留首次失败项,
morning-acceptance-finish-20261016.json 为修复后核验,pms-morning-20261016.json 为只读账本与参数,
plan-recheck-enable-20261016.json 为开关前后记录。只读核验脚本一并保存在该目录。
构建、候选测试及部署日志为 `~/akg_bridge_logs/morning-boundary-*-20261016.log`。
07:27 最新快照仍是昨日 59。没有把浏览器预览记作今天的实际消费。
真实消费、新评析传播十二分钟、提议重核案例和自然新成交防双记仍未判收。
automation-2 已改为北京时间每日 08:55,今日核对正常消费及 08:45 区制修订。
没有自然事件就保留未判收状态并接续,不追加五日模拟观察。
```bash
# 155 模拟桥机 · ~/project/akg-factor-bridge;预期退出码 0,pending_codes 为空
cd ~/project/akg-factor-bridge
docker exec akg_factor_bridge python plan_health.py
```
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期打印 True
cd ~/project/tradingSystem
docker exec pms-web python -c "from app.services import param_store as p; print(p.get('PMS_PLAN_VERSION_RECHECK'))"
```
## 10-16 09:30 调度修复、实际消费与登录后页面验收
本节接续今晨记录,时间均为北京时间。只操作 155 桥与模拟 PMS。
178 本轮只同步文档,未改业务代码或重建。188 未操作。
XXL 137 和 PMS_PLAN_VERSION_RECHECK 保持开启,没有额外五日观察安排。
### 区制任务冲突与恢复
08:45 XXL 122 与五分钟任务 137 同时到达。137 先占锁,122 返回 409。
平台日志 92246 确认失败,未配置自动重试,旧完整计划继续可读。
桥修复提交 72efc8c 已推送并拉取。两类修订允许最多两条等待,串行执行。
其他构建仍沿用忙时拒绝。任务各自回调,失败也释放下一条。
等待队列在进程内,重启后不能声称自动续跑,须核对未结案任务。
本地与候选镜像断网通过 7 个相关测试套件。
任务入口 12 例覆盖双向同时触发、失败释放、队列上限及普通构建拒绝。
区制测试改用真实版本发布,验证旧文件、晨版指针不变及重复触发幂等。
初次本地因缺依赖失败,补齐隔离运行依赖后通过;旧区制测试已不符合不可变契约,修正后通过。
第一次部署预检因宿主读取权限及 docker top 参数失败,在拉取和重建前停止。
改为容器内读取计划并修正进程检查后,再备份和部署。
09:12:53 桥重建生效。镜像为
`sha256:05aea00dbc240d94c4b6f014959a811878711f8130cb61ca3840cd27dd734569`。
候选标签 `akg-factor-bridge-queue:72efc8c`,回退标签 `akg-factor-bridge-rollback:before-revision-queue-20261016`。
写前备份 `~/akg_bridge_logs/revision-queue-before-20261016.tar`,
SHA256 为 `318f9f838496ef8a1cac4510f49adc6dd31ee6667d19f8a4294eeb82ac19931e`。
原 10 份完整归档及晨版固定指针逐个哈希核验通过。
通过平台补执行既有任务 122,没有新增任务。09:13:25 开始,平台回调成功,耗时 23 秒。
09:13:41 发布区制完整版本
`2026-10-15_6abfc0e8d8c409bdb7b0292f6ec29124a902cbf04f9d0fcdc56b9180fe169021`。
区制数据日为 10-15,来源计算时间为 10-16 08:40:00,状态 OK,degraded=False。
最新、按日期、固定版本三种查询内容一致。09:20 修订健康 error=null、pending_codes=[]。
真实并发冲突修复依赖回归证据;尚未再次发生自然同刻冲突,不冒充已完成线上并发复现。
### 自然研究修订与真实消费
08:10 至 08:50 共 9 个自然评析修订,覆盖 24 份新评析。
从报告生成到完整版本发布,最短 16.507789 秒,最长 309.012842 秒。
所有版本父子链、输入与配置指纹均通过;评析修订只变更评析输入,其余冻结输入保持。
未发现无变化重复发布。晨版归档 SHA256 仍为
`70826ed236b30c1120a1f5ab99fb575e0b46a7acf31051dc117cce6d68fe1c45`。
晨版指针 SHA256 仍为 `6c9e86e39a623b38d08a9bce8d64873c1fd1c12fee1367adea352ac59086e022`。
修订沿确定性路径运行,未为验收生成评析或调用模型。
08:40:05 正常预热 received 记录 60 收到 08:35 版本。
08:59:27 的 received 61、62 内容相同,是旧快照写入允许的并发重复观察。
它们不是两个发布版本,不能按收到记录行数计算版本覆盖率,也未删除历史行。
09:15:36 received 63 收到区制版,浏览器读取不计实际消费。
09:25:03 正常 intraday_exec 产生 consumed 64,版本为上述 6abfc0e8 区制版。
24 只候选按 selection_rank 1—24 排列,名册与消费 order 完全一致,消费指纹重算通过。
过滤为已持仓 5、仅展示 267、档位不足 4。当前 PMS 排序为 quality_bucket。
这是原有效参数的结果,桥仍为 transmission,不能把两层参数混称一个排序开关。
PMS 上游排序 False、质地排序 True、仅强传导、TOP_N=50 均未改变。
09:25—09:27 正常任务成功,未新建提议、未新建指令。相同消费上下文未重复追加。
区制发布至首次实际消费为 11 分 22 秒。
盘前评析到首次盘中消费受既有 09:25 扫描起点限制,不能据此宣称研究全链路十二分钟已判收。
仍需在正常盘中出现新评析后,关联报告、发布、消费三个时刻测量。
### PMS 页面误报修复与部署
用户完成登录后,发现已收到新版本仍提示“未落快照”。
写入使用版本与查询范围指纹,变化和预览却比较旧名册指纹。
3057250 统一三个出口,旧数据仍兼容。运维提议页补展示已有研究依据。
过期的“实时装配”“没有版本”“始终按 score”说明已修正。
候选、数量和参数均未改动,未人工采纳或拒绝任何提议。
本地 44 批配置隔离禁网测试、三个页面守卫全部通过。
候选镜像 --network none 的 44 批也全部通过。
09:20:19 四容器统一重建为
`sha256:061c7c1218c5e0e62838ace6804aad785517337a511aae12e2a9f792d38aaef5`。
候选标签 `pms:received-3057250`,Python 指纹 `72cbce06747b`。
回退标签 `pms:rollback-before-received-20261016`,保留此前历史修复镜像。
写前只读记录 `~/pms_logs/received-before-deploy-20261016.json`,
SHA256 `179f25584ff2384e58c1277061352bea01c99d53fa7ff6a95b270399e30308dc`。
本轮没有账本修复写操作。写前后 15 项有效参数和三票数量、成本、毛盈亏完全一致。
09:21 健康正常、QMT ONLINE、回放水位同步。对账 diffs=[]、errors=[]、severity=OK、streak=0。
两个事实源覆盖差异继续单列,ws_first 未变;七条历史暂停指令未恢复。
浏览器候选页显示区制版本、北京时间和材料期,误报已消失。
688025 示例显示报告生成 08:08:09、财务期 2026Q1、研报期 2026Q2、材料 67、未知问题 6。
催化时间缺失显示无法判断,未伪造阈值或完整历史报告。
旧持仓入场及昨日 SELL 提议均标明追溯不完整;提议研究详情已可展开。
持仓“当前研究”来自 08:40 独立拉取的 08:35 计划,页面展示其固定版本,不能当作 09:13 新版消费。
没有为展示更新持仓决策或绕过既有逻辑状态调度。
09:20 重载后的浏览器错误记录为空,历史登录失败记录不混入本次结果。
### 证据、后续与回退
155 桥证据在 `~/akg_bridge_logs/`:revision-queue-build、revision-queue-tests、revision-queue-deploy-final 的 20261016 日志,
revision-evidence-20261016.json 及只读 verify_revision_evidence_20261016.py。
PMS 证据在 `~/pms_logs/`:received-build、received-tests、received-deploy 的 20261016 日志,
received-before-deploy、received-after-deploy 两份 JSON,consumption-20261016.json、verify_consumption_20261016.py。
开发机页面截图为 `/private/tmp/revision-regime-recovered-20261016.jpg`、`/private/tmp/pms-plan-version-verified-20261016.jpg`。
接续只取自然事件:盘中新评析至实际消费十二分钟、真实提议重核、自然新成交防双记。
没有事件时明确保留未判收项,不采纳提议、不造交易、不安排额外五日观察。
真实超目标成交的历史原因、事实源覆盖差异及历史还原边界继续保留。
同一 automation-2 下一核验调整至今日 10:15。技术验收完成才暂停。
回退保留全部版本和账本,恢复对应旧镜像;若修订异常可停 137 并继续提供最后完整版本。
文档同步不需再次重建容器。
```bash
# 155 模拟桥机 · ~/project/akg-factor-bridge;预期退出码 0,完整版本可读,无待修订错误
cd ~/project/akg-factor-bridge
docker exec akg_factor_bridge python plan_health.py
```
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期正常消费记录的 fingerprint_ok、order_ok 为 true
cd ~/project/tradingSystem
docker exec -i pms-web python < ~/pms_logs/verify_consumption_20261016.py
```
## 10-16 09:49 交易员研究展示修正
用户在交易员右侧打开“计划版本与研究变化”后指出风格与实用性问题。
长标识横向溢出,整段字段把采纳、驳回按钮挤出可视区。此前页面判收只确认内容,未充分评估使用体验。
修复 c2d0dc9 已提交、推送并在 155 拉取。操作卡删除字段清单,沿用基本面入口。
研究详情先展示判断与风险,再展示预期及验证事项。来源标识与指纹默认折叠且允许换行。
候选、持仓和运维提议的相同清单一起改为统一详情入口。旧记录无摘要时只作一句明确说明。
仅修改静态页面与文档,没有改参数、数量、提议核验或执行路径,没有采纳或驳回提议。
本地三道页面守卫通过,JavaScript 语法及合成空值、零值、变化、数字显示与原值保持核验通过。
155 用候选归档在 --network none 临时容器再次通过三道守卫后,备份旧页面再 git pull。
四容器启动时间与镜像逐字比较保持,未重建或重启。现服务通过 /app 挂载提供新页面。
容器镜像仍为 061c7c1218c5e0e62838ace6804aad785517337a511aae12e2a9f792d38aaef5,Python 功能仍为 3057250。
不可把容器镜像内旧静态页冒充已更新;本次生效证据是挂载文件和浏览器。
旧页面备份为 155 ~/pms_logs/index-before-research-ui-c2d0dc9.html,
SHA256 a995a282b351d2f079b58789870304969e2011b97508117897f5a48ff82a2dc9。
新页面 SHA256 08289bf573eb13ddfec73c818bb3c493177122dda716422580a39a3bca7d9956。
候选为 ~/pms_logs/pms-research-ui-c2d0dc9.tar。进程对比为 ui-before-processes-c2d0dc9.txt 与 ui-after-processes-c2d0dc9.txt。
回退通过本次静态修改的反向提交后拉取,保留版本与账本;重启旧镜像不会撤销挂载页面。
09:47—09:49 在登录后的真实交易员页面核验。侧栏 clientWidth=scrollWidth=295,来源展开区均为 694。
科士达 600 股提议的研究仍为冻结原文,基本面详情分段可读,来源默认折叠;裁决按钮紧接摘要。
页面重载后新错误记录为零。未测试裁决提交,以免制造交易。
开发机截图为 /private/tmp/pms-trader-proposals-refined-20261016.jpg 与 /private/tmp/pms-research-detail-20261016.jpg。
已将浏览器留在交易员界面。自然事件技术核验仍按今日 10:15 同一心跳继续。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期与本节新页面 SHA256 相同
cd ~/project/tradingSystem
sha256sum app/web/static/index.html
```
## 10-16 10:20 交易员界面整体精简判收
按用户最新要求检查整个交易员界面,重点为提议与候选。功能提交 16d8fd7,折叠补修 564f553。两者已推送并在 155 拉取生效。仅变更静态 HTML 与文档,未改 Python、交易规则、候选过滤和排序、运行参数、数量或裁决路径。
提议突出股数、预计金额、参考价和建议仓位。清仓也使用中性的“预计金额”,缺价不显示零金额。通用采纳与驳回说明只保留一次;数量重算过程移入可点击详情。仓位不一致仍直接警示。有效期统一显示北京时间,跨日保留日期。候选直接显示等待条件;占用提示去除内部代码数组,未知异常提示保留。方案数量改为当前可见数量。持仓、信号、顶栏和计划详情同步简化,技术记录折叠保留。
浏览器发现原有分区折叠只改变箭头,缺少隐藏样式,已补齐。提议、交易方案可收起后集中查看候选,默认仍展开。整体使用原布局、配色与字号体系。
本地三项页面守卫通过。临时显示断言核对金额与空值、北京时间跨日、风险警示及对象原值未变。采纳、驳回、策略操作、计划读写入口函数与候选筛选表达式均与改前逐字一致。155 两次均先在匹配镜像的 --network none 临时容器通过三项守卫,再备份并拉取。四容器镜像与启动时间和部署前逐字一致,未重启。运行镜像仍为 061c7c1218c5e0e62838ace6804aad785517337a511aae12e2a9f792d38aaef5,Python 功能仍为 3057250。188 未操作。
部署前页面备份:155 ~/pms_logs/index-before-trader-ui-16d8fd7.html,SHA256 08289bf573eb13ddfec73c818bb3c493177122dda716422580a39a3bca7d9956。补修前另存 index-before-trader-ui-564f553.html。最终页面 SHA256 8cd75f4cafd3e23f90c036ac2accd5131568ad2c26bc7bc844f5d45cd8808b31。候选包 pms-trader-ui-16d8fd7.tar 与 pms-trader-ui-fold.tar 均在同目录。四容器对比证据为 trader-ui-16d8fd7-before.txt、trader-ui-564f553-after.txt。
10:14—10:20 真实浏览器核验:3 条提议、13 只候选、2 个当前交易方案。瑞芯微卡保留 1.20% 实际占比与 1.0% 建议,警示直接可见;数量详情保留 300 股改为 100 股以及最低一手原因。基本面摘要与风险仍为冻结原文,数据来源默认收起。候选等待状态、完整计划入口及分区折叠正常。右栏宽度与滚动宽度同为 317,13 个候选行均为 295,无横向溢出;浏览器错误数为零。未点击采纳、驳回或任何交易动作。
开发机截图:/private/tmp/pms-trader-overview-refined-20261016.jpg、/private/tmp/pms-trader-candidates-refined-20261016.jpg。浏览器已恢复提议与方案展开。回退采用对应静态提交的反向提交后拉取,保留计划和账本。自然新评析、正常重核及新成交防双记的后续技术验收仍未被本次页面检查替代;既有心跳继续,不增加五日观察。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期为本节最终页面 SHA256
cd ~/project/tradingSystem
sha256sum app/web/static/index.html
```
页面验证:打开交易员界面,瑞芯微提议可见仓位差异,点数量说明可见最低一手原因。点击待确认提议标题应收起卡片;候选区直接显示等待条件。只查看,不采纳或驳回。
## 10-16 10:40 自然事件发现与修复预判
10:28 只读核验:15 项参数与 09:21 基线相同,三票数量、成本与毛盈亏不变,对账 diffs=[]、severity=OK,QMT ONLINE。审计仍为 122 行加 1 条汇总,七条历史暂停指令仍为 CANCELLED。当前完整计划仍为 6abfc0e8,晨版哈希保持。consumed 64、65、66 及 rechecked 67 的顺序与消费指纹通过,不能将浏览器或 received 记录冒充消费。尚无开盘后的自然新评析,十二分钟研究全链路仍未判收。
正常用户操作触发科士达 PRP_20261016_002518SZ_OPEN 两次重核。10:02:49 与 10:04:24 均被要求再次确认,提议仍 WAIT_USER,未生成对应指令。两个仓位依据指纹不同,代码发现实时估算在途金额误入指纹。首次可能包含新命令承诺变化,不能把两次一概认定为误报。新增回归并修复纯报价引起的重复确认,细节见同名规格最新节。未人工采纳提议或生成交易。
只读证据在 155 ~/pms_logs/:consumption-20261016-1025.json、runtime-and-ledger-20261016-1028.json、natural-events-20261016-1030.json。桥证据在 ~/akg_bridge_logs/revision-evidence-20261016-1025.json。修复与上线结果待追加。
## 10-16 10:50 重复确认修复部署与自然成交判收
### 改动及本地、镜像验证
PMS 功能提交 15072f7 已提交推送,并在 155 git pull 生效。在途承诺增加稳定身份、数量及成交进度,仅用于判断重核依据。实时估算金额仍按原规则计算。实际数量、承诺、资金与持仓变化继续重核;旧输入缺字段保守比较,旧提议格式升级可能需重核一次。没有修改交易员页面、参数、候选排序、额度与执行终检。桥台账 069 记录本次修复。
批次 38 从 15 例增至 18 例。新增回归先复现,再验证纯报价不重算、不调用研判,真实承诺及数量变化仍识别。全部 44 批本地隔离禁网与候选镜像 --network none 回归通过,含三项页面守卫。
### 155 部署与真机读回
北京时间 10:44:28 四容器统一重建。候选镜像标签 pms:recheck-15072f7,镜像 SHA256 7003b81c79000cb61633d94a6529253a412de9c2cbc5522e296aea71a0e2f337。候选镜像 Python 指纹 cf0a57a03a76。关键源码两处本地与运行容器 SHA 逐字相同。仅操作 155,188 未动。
部署前文件 recheck-before-deploy-20261016.json 的 SHA256 为 5a41a2bbe7b943b5166ee7b6b5812803967be9b90fec0c65ab5cc881588f2aa4。10:44:57 读回 15 项参数、三票数量、成本、毛盈亏均与写前一致。QMT ONLINE,resync_flag=0,last_error 为空,last_seq=1243091。10:45 健康接口 status=ok、db_ok=true、trade_day=true、calendar_degraded=false,容器 healthy。对账 diffs=[]、errors=[]、severity=OK。两处事实源覆盖差异仍独立保留,ws_first 未变。
七条历史暂停指令仍为 CANCELLED。24 条修复指令的数量、执行进度、子单记录与修复金额保持。两条今日命令指令仍未成交,只有正常择时判断时间、价格及等待原因更新,不能声称整个 progress 原字节不变。修复审计仍 122 行加 1 条汇总。科士达提议与两次确认记录保持,未新建相应指令。修复后尚无自然确认,不能声称线上确认闭环已通过。
### 自然成交防双记
昨日修复后深科技 14 笔自然卖出,共 1,000 股、28,270.78 元。14 个 trade_no 唯一且均已处理。五个子单的汇总完成镜像存在;父指令 exec_qty=1,000,持仓从 1,000 归零,未再次扣减。两批核销分别 400、600 股,毛盈亏 -3,237.32、-4,673.91 元。按既有逐笔入账舍入到分独立重算完全一致。与总金额一次性计算相差一分钱,原因已记录,不擅改会计口径。其他旧批次逐字段未变。
本次验证的是自然成交防双记。该票原批次为历史 RECON 成本,不宣称全部早期历史已恢复;手续费、峰值、删除批次与历史净值边界继续有效。详见 tradingSystem/docs/PMS三项对账差异排查_2026-10-15.md 最新节。没有为验收回放、生成评析、采纳提议或制造交易。
### 调度与仍待自然事件的项目
桥 10:45:12 自动检查 error=null、pending_codes=[]。10:46 仍为 11 个完整版本、24 份自然评析,均发生在盘前;晨版哈希 70826ed236b30c1120a1f5ab99fb575e0b46a7acf31051dc117cce6d68fe1c45 保持。最新完整版本仍为 6abfc0e8。consumed 64、65、66 和 rechecked 67 的消费指纹、名册顺序与名次通过。65 是命令消费;不能将其与自主扫描混称。
继续等待开盘后自然评析的生成、发布、消费三时刻,以及修复后的自然提议确认。安排原 automation-2 于北京时间 11:15 接续,不新建业务调度,也不增加五日观察。XXL 137 与 PMS_PLAN_VERSION_RECHECK=True 保持。页面 10:20 的精简成果保持,后续不得把技术指纹重新堆回交易员操作卡。
### 证据与回退
155 ~/pms_logs/:recheck-build-20261016.log、recheck-tests-20261016.log、recheck-deploy-20261016.log、recheck-before-deploy-20261016.json、recheck-after-deploy-20261016.json、natural-events-after-recheck-20261016.json、natural-fills-20261016-1035.json、consumption-20261016-1045.json。源码归档 pms-recheck-candidate-20261016.tar;独立构建目录 recheck-build-15072f7。桥证据 ~/akg_bridge_logs/revision-evidence-20261016-1045.json。
回退镜像已保留为 pms:rollback-before-recheck-20261016,旧镜像为 061c7c1218c5e0e62838ace6804aad785517337a511aae12e2a9f792d38aaef5。155 存在 /app 绑定挂载,不能只改镜像标签回退;须先在开发机做匹配代码的反向提交,服务器 git pull 后再重建四容器。计划、提议、审计和历史账本保留。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期 ALL SUITES PASS,不访问网络与生产配置
cd ~/project/tradingSystem
docker run --rm --network none pms:recheck-15072f7 python scripts/run_tests.py
```
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期 status=ok、db_ok=true
cd ~/project/tradingSystem
docker exec pms-web python -c 'import urllib.request; print(urllib.request.urlopen("http://127.0.0.1:38100/health", timeout=5).read().decode())'
```
## 10-16 11:25 自然事件核验与网格数量缺陷
桥 11:15:11 正常检查,无来源错误或待修订股票。仍为 11 个完整版本和 24 份盘前评析,晨版、归档、父子链与指纹保持。无开盘后新评析,无新的用户确认,科士达提议仍 WAIT_USER、600 股。11:15:03 正常消费新增 consumed 68,持仓上下文变化,24 只候选的顺序和消费指纹正确。
11:19 首次只读对账出现威胜信息差异。11:19:31 新持仓快照到达后,11:20:04 只读对账 diffs=[]、severity=OK,QMT ONLINE。始终 apply_fix=False,未因短暂快照差异改账。两处既有事实源覆盖差异保持。
逐笔查出需修复的实际交易缺陷。STR_20261015_688100SH_28400 的原档位为 1,000 股,per_lot=700。11:05 首笔卖 700 股后,原恢复逻辑已将余额记为 300;11:13 同档再次卖 700,最终连同 400 股底仓清空。七笔成交号唯一,两条父指令各执行 700。11:16:01 原清场流程已取消该策略。不是重写账本即可恢复的情况,必须保留真实卖出,不补造持仓或反向买入。
代码 _eval_grid 缺少档位余额和实际 ADD 持仓封顶。先写回归再修复,沿用原交易触发和参数。桥台账 070 记录。证据在 155 ~/pms_logs/natural-events-20261016-1120.json、consumption-20261016-1120.json、runtime-and-ledger-20261016-1120-diagnostic.json、natural-fills-688100-20261016-1125.json、grid-natural-20261016-1125.json;桥证据为 ~/akg_bridge_logs/revision-evidence-20261016-1120.json。部署与完整成本判收待追加。
## 10-16 11:35 网格越界修复部署与完整账务核验
### 修复与验证
功能提交 bafecb7 已在本地提交推送,并在 155 拉取。只改 _eval_grid 的卖出数量上限;同时限制于配置档量、当前档位余额、实际 ADD 与可卖量。原穿越信号、价格、档距、资金上限、最小申报规则及买入逻辑保持。原状态恢复逻辑未改。已有的 15072f7 提议稳定依据修复仍包含在镜像中。
新增四组反例在原实现均失败,修复后批次 17 共 45 例全部通过。完整 44 批本地配置隔离禁网与候选镜像 --network none 回归通过,含三项页面守卫。生产只确认代码生效及状态保持,未制造新的网格触发用于验收。
### 实际成交与账务边界
本轮 7 笔威胜信息成交号唯一,合计 1,400 股、32,933.49 元。两条父指令各实际执行 700,均 CONFIRMED。11:08:01、11:14:00 日志明确汇总镜像被跳过,汇总 actions=0。按原批次和核销顺序独立逐笔重算,全部剩余数量、已核销量及毛盈亏与现账一致。
原 1,000 股网格 ADD 与 400 股 BASE 均已卖出。新增毛盈亏 -268.87 元,原账期毛盈亏从 16.86 变为 -252.01 元。400 股底仓部分已实现毛亏 -282.93 元,不推断未卖出时的后续收益。费用未提供。持仓为 0,成本价为空;这不是应恢复旧 1,400 股的账本差异。真实成交不删除、不回填、不反向买入。策略已于 11:16:01 被原清场流程取消,保持取消。此前深科技 14 笔防双记证据继续有效,两类自然事件均据实保留。
原三票历史修复的另一两票保持:002050 数量 700、均成本 44.109、已实现毛盈亏 -6,762.70;002979 数量 1,900、均成本 55.060、已实现毛盈亏 -1,684.25。七条历史暂停指令仍 CANCELLED,原 24 条修复指令的数量、执行进度、子单和修复金额保持,审计仍 122+1。历史超额成交的其他原因未全部查清,不把本次局部修复扩称全部执行异常已修复。
### 155 部署与读回
11:31:02 四容器统一重建为 sha256:a33ecb004e285ed7991b1492477e222703d1ec89892e36ee7cb51ee2d555b3c8。标签 pms:grid-quantity-bafecb7,Python 指纹 12f782622c4d。strategy_runner.py 本地与运行容器 SHA256 同为 14ce9d46a63b781372c07b18dd26494669e095ed6793322a03e8e44d71fbc188。页面 SHA256 仍为 8cd75f4cafd3e23f90c036ac2accd5131568ad2c26bc7bc844f5d45cd8808b31,没有把技术字段重新加回操作卡。188 未操作。
11:31:29 只读读回与 11:28:38 写前基线比较:15 项有效参数和三票数量、成本、毛盈亏一致;科士达提议、自然确认记录、逐笔成交、修复审计和已取消网格记录保持。QMT ONLINE、resync_flag=0、last_error 空、last_seq=1243709。对账 diffs=[]、errors=[]、severity=OK。11:31:34 健康 status=ok、db_ok=true、trade_day=true、calendar_degraded=false,容器 healthy。两处事实源覆盖差异继续单列,ws_first 未变。
### 版本消费与下次接续
桥 11:30:11 自动检查 error=null、pending_codes=[],仍 11 个完整版本、24 份盘前评析。当前区制版 6abfc0e8、晨版与归档哈希保持,父子链和输入指纹正确。11:15:03 新增 consumed 68,持仓上下文减少威胜信息,当前四只;候选仍 24 只,名次、顺序和消费指纹正确。无需计划变化也会因消费上下文变化追加留痕。没有开盘后新评析,没有修复后的用户确认,科士达仍 WAIT_USER、600 股。
原 automation-2 已改到北京时间 13:15。下午接续新评析生成、完整发布、实际消费的十二分钟目标,以及自然用户确认。已部署并不等于两项自然事件已判收。XXL 137 和 PMS_PLAN_VERSION_RECHECK=True 保持,不增加额外五日观察,不人为生成事件。178 基座 11:32 只读核验所有服务 running,本轮仅同步文档。
### 证据与回退
155 ~/pms_logs/:grid-quantity-build-20261016.log、grid-quantity-tests-20261016.log、grid-quantity-deploy-20261016.log;grid-quantity-before-deploy-20261016.json、grid-quantity-after-deploy-20261016.json;grid-quantity-events-before-20261016.json、grid-quantity-events-after-20261016.json、grid-quantity-strategy-after-20261016.json。写前参数与账本文件 SHA256 为 51d4eb0f8bae6be665060c5edd89c7b334db1cf22a95f2267b2ce026e54784a6。
故障原始日志 grid-incident-worker-20261016.log,SHA256 9fd10e419b46de2854a6e8e6793ec91de7218e531892d12ce0a97b1b9bfabd4c。成交与策略证据、逐笔分配结果及不可还原边界详见 PMS三项对账差异排查_2026-10-15.md 最新节。桥最终证据 ~/akg_bridge_logs/revision-evidence-20261016-1132.json,消费证据 ~/pms_logs/consumption-20261016-1132.json。
回退标签 pms:rollback-before-grid-quantity-20261016 指向旧镜像 7003b81c79000cb61633d94a6529253a412de9c2cbc5522e296aea71a0e2f337。155 绑定挂载 /app,回退仍需开发机反向提交、服务器 git pull,再重建四容器。保留真实成交、取消状态和所有审计记录,不能以回退为由恢复原持仓。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期 ALL PASS (45 cases),不联网或读取生产配置
cd ~/project/tradingSystem
docker run --rm --network none pms:grid-quantity-bafecb7 python scripts/unit_test_guard.py scripts/test_batch17_units.py
```
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;预期 status=ok、db_ok=true
cd ~/project/tradingSystem
docker exec pms-web python -c 'import urllib.request; print(urllib.request.urlopen("http://127.0.0.1:38100/health", timeout=5).read().decode())'
```
## 10-16 13:25 自然评析传播核验
### 新增证据与时延边界
本轮只读核验正常调度,没有生成评析、裁决提议或制造交易。13:17 取得的归档样本有 15 个完整版本、34 次自然评析变化。相比 11:35 新增四个版本、十次评析变化。十份固定报告对象在 178 逐份读回,内容指纹全部匹配。晨版及此前 11 个完整归档的字节哈希保持。
| 报告产生时间(北京时间) | 完整版本发布时间 | 首次实际消费 | 生成至消费耗时 | 判收 |
|---|---|---|---|---|
| 12:05:01—12:05:13,六份 | 12:05:15、12:10:14 | 13:00:03,consumed 71 | 54 分 50 秒—55 分 2 秒 | 十二分钟目标未通过。午休守卫阻止执行扫描,13:00 恢复后消费。 |
| 13:09:07、13:09:14,两份 | 13:10:16,59cc26a9 | 13:11:09,consumed 73 | 2 分 1 秒、1 分 54 秒 | 本组连续交易时段样本通过。 |
| 13:12:49、13:12:50,两份 | 13:15:16,c0b4d35c | 13:17:02,consumed 75 | 4 分 12 秒、4 分 12 秒 | 本组连续交易时段样本通过。 |
四份连续交易时段评析已具备生成、完整发布与实际消费的全链路证据。不能将午休六份按“收到”时间替代实际消费,也不能将该四份样本扩称全天十二分钟目标通过。保留原执行时段守卫,没有为了达标安排午休交易或伪造消费。后续仍需明确处理非交易时段的时延边界;本条记录事实,不自动修改原验收目标。
consumed 71、73、75 均来自正常自主扫描,24 只候选、selection_rank 1—24。名册顺序与消费指纹全部匹配,有效参数和持仓上下文正确。69、70、72、74 是收到记录,不计为实际消费。11:35 后没有新增成交或指令;今日两条用户命令指令仍 PROPOSED、exec_qty=0,两条上午网格卖出仍各 CONFIRMED、exec_qty=700。
### 版本、来源和运行核验
13:20 对 c0b4d35c 的最新、日期、固定版本查询一致。主榜 556、观察 598,全量名次、四类裁剪出口研究字段、截止时间与 32 路冻结来源通过。输入与配置指纹正确,其余来源沿用冻结内容。正常查询未重装配。部署中的 plan-refresh 仅重新读取评析索引,装配重放冻结来源,没有模型调用路径。基座自然生成评析与桥修订分开计量,不将两者混称零模型调用。
复用的晨版核验脚本保留了凌晨故障前的旧格式哈希断言,所以输出 ok=false。唯一失败项 old_legacy_hash_unchanged 对应已知缺失原件:当前 10-14 日期入口仍为 8e9d3996ef49ee9352d828177ded5142f35ff5258099b02f14735d6bf5e9ef07,与早间故障记录一致,没有再次变化。不能把该项改写为历史已恢复。其余 18 项检查通过,今日晨版与所有旧完整归档保持不变。
桥日志 11:35—13:15 的 21 次五分钟触发均返回 200,无 ERROR 或 Traceback;PMS 13:00—13:18 的 19 次正常执行扫描均成功。归档样本读取与调度并行,13:20:19 health 已指向随后发布的 b4a40be9,error=null、pending_codes=[]。该后续版本不纳入上表四份样本,不把采样先后差异当成发布不一致。下轮继续查其实际消费。
13:15:11,15 项参数、三票数量、成本与毛盈亏相对 11:31 基线逐项一致。QMT ONLINE、resync_flag=0、last_error 空、last_seq=1244993;只读对账 diffs=[]、errors=[]、severity=OK、streak=0。两处事实源覆盖差异继续单列,ws_first 未变。七条历史暂停指令仍 CANCELLED,24 条历史修复的数量、成交进度、子单与修复金额保持,审计仍 122+1。尚在等待的旧三花 DCA 只有正常择时说明更新,不是执行进度改变。威胜信息真实清仓事实与 -252.01 元已实现毛盈亏保持。
13:18:19 健康 status=ok、db_ok=true、trade_day=true、calendar_degraded=false。PMS 四容器仍是 11:31 的 a33ecb0 镜像,桥仍是 09:12 的 05aea00 镜像,未重启。178 十项服务均 running。本轮不改业务代码、配置或页面,188 未操作。
### 未判收项与接续
科士达提议仍 WAIT_USER、600 股。用户确认记录仍只有 10:02:49 和 10:04:24;修复后没有自然确认,不能替用户操作。新版重核的自然确认效果继续未判收。历史费用、峰值、旧批次、旧净值和其他超目标成交原因的边界不变。
原 automation-2 下一次调整为北京时间 14:15。接续自然确认、后续完整版本实际消费及非交易时段时延边界。XXL 137 与 PMS_PLAN_VERSION_RECHECK=True 保持。不增加五日观察,不因没有事件宣告完成。
证据在 155 ~/pms_logs/:runtime-and-ledger-20261016-1315.json、natural-events-20261016-1315.json、consumption-20261016-1315.json、consumption-20261016-1325.json、natural-review-latency-20261016-1325.json、consumption-runtime-20261016-1320.log。桥证据在 ~/akg_bridge_logs/:revision-evidence-20261016-1315.json、revision-evidence-20261016-1325.json、revision-contract-20261016-1325.json。固定报告验证在 178 ~/akg_logs/review-objects-20261016-1325.json。文件后缀是本轮标签,实际采集时刻以文件内 at 为准。桥访问日志含鉴权查询参数,展示和交接只用脱敏结果,不粘贴原文。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;只读,预期消费指纹与名册顺序断言通过
cd ~/project/tradingSystem
docker exec -e PYTHONPATH=/app -i pms-web python < ~/pms_logs/verify_consumption_20261016.py
```
## 10-16 13:35 用户确认时延口径与自然重核证据
### 验收口径与研究传播
用户确认十二分钟目标只按连续交易时段核验。午休材料单列总等待时间,确保下午开盘后及时实际消费。保持原交易时段,不为验收生成评析或制造交易。桥台账 071 记录这一验收决定,不改变候选或下单规则。本条取代 13:25 节尚待澄清的时段结论,原始读数保留。
按此口径,六份午休材料在 13:00:03 被 consumed 71 实际消费,即下午开盘后三秒。午休恢复消费要求通过,约 55 分钟的总等待时间仍单列。
截至 13:28,本轮累计八份连续交易时段自然评析已完成生成、发布和实际消费。耗时 114.360—393.202 秒,均在十二分钟内。新增三份 13:16 材料经 13:20:15 的 b4a40be9 发布,13:22:05 consumed 77 实际消费;另一份 13:21:28 材料经 13:25:15 的 fa54fadd 发布,13:28:02 consumed 80 实际消费。四次自主消费均为 24 只,selection_rank 1—24,顺序和指纹通过。完整版本共 17 个、自然评析变化共 38 次;晨版和此前归档不变,输入指纹、父子链和仅替换评析来源的检查通过。
桥 13:25:20 健康 error=null、pending_codes=[]。本轮没有调用修订入口,全部来自已启用的 XXL 137。此次仅更新规格、台账、交接与后续核验安排,没有业务代码、参数或执行时段变更。
### 13:27 自然确认后的重核
正常用户操作于 13:27:30 触发科士达提议重核。操作记录 275、动作账本 6783、rechecked 79 对应同一事件。新提议仍 WAIT_USER、600 股;没有由本次确认产生新指令。研判理由与把握度已更新,要求用户基于更新内容再次确认,未沿用旧批准。
逐字段比对 10:04 的账本 6664 与新账本 6783:plan_basis 完全相同,scan_params_hash 相同,portfolio_context_hash 不同。对应消费上下文从上午五只持仓变为四只,包含威胜信息真实清仓;期间也完成了稳定承诺指纹升级。因此这次属于存在仓位依据变化的首次重核,不能归因于计划版本或价格变化,也不能将其当成“无变化确认已通过”的证据。
本次自然事件证明更新提议与保留人工确认的分支实际生效。13:30:21 再次只读采样时没有后续确认。依据相同或仅报价、名次变化时能直接通过的线上路径仍待下一次自然操作。不得为验收代替用户确认,不要求用户为测试进行交易。
### 账务、部署与接续
13:28:04,15 项参数和三票数量、成本、毛盈亏相对前次逐项一致。QMT ONLINE、last_seq=1245153、resync_flag=0、last_error 空。对账 diffs=[]、errors=[]、severity=OK,source_age_sec=119.9。两处事实源覆盖差异继续单列。21 笔修复后成交仍为原深科技 14 笔与威胜信息 7 笔;原两条用户命令指令仍 PROPOSED、exec_qty=0,两条网格卖出各 CONFIRMED、exec_qty=700。七条历史暂停和 122+1 修复审计保持。真实清仓及历史不可还原边界不变。
本轮没有重启容器或部署业务代码。研究传播、午休恢复消费已按确认口径完成本轮样本验收;继续核对重核后的自然确认和无重复指令。原 automation-2 保持北京时间 14:15 接续,全部所需技术验收完成后再暂停。不增加五个交易日观察。
155 证据:~/pms_logs/natural-events-20261016-1330.json、natural-events-basis-20261016-1330.json、consumption-20261016-1330.json、runtime-and-ledger-20261016-1330.json、natural-review-latency-20261016-1330.json;~/akg_bridge_logs/revision-evidence-20261016-1330.json。文件后缀为本轮标签,实际采集时刻以 at 为准。
```bash
# 155 模拟 PMS 机 · ~/project/tradingSystem;只读,观察自然确认,不触发裁决
cd ~/project/tradingSystem
docker exec -e PYTHONPATH=/app -i pms-web python < ~/pms_logs/verify_natural_events_basis_20261016.py
```
## 10-16 14:05 采纳失败反馈修复与自然确认闭环
科士达13:39:02由用户自然确认成功。指令INS_20261016_002518SZ_OPEN_001,600股,version_check=passed,reason为依据相同。操作日志276与账本6796匹配,只有一条指令。此前13:27更新建议后重新确认的路径已完成自然验收,不能继续列为缺事件。13:59尚未成交。
瑞芯微13:40明确研判拒绝,把握度72,理由为资金净流出与短期看空等。研判审计05:40 UTC对应PMS13:40;不把此拒绝解释成网络超时。原before_accept丢弃具体原因,页面只闪过通用错误且旧卡不更新。本次另修浏览器60秒超时早于研判90秒上限的潜在缺陷。
PMS功能4f6b192保留失败业务原因和现有JSON中的最近检查,原数量、批准依据与状态不变。确认框持续显示原因,更新建议展示新数量及理由并要求重新确认。有效等待覆盖研判超时;结果未明不自动重发。失败不新增影响自动策略的拒绝账本。详见tradingSystem/docs/提议采纳失败排查_2026-10-16.md和桥台账072。
24个专项、44批本地与候选镜像禁网测试全部通过。Node交互替身和三页面守卫通过。13:59:00四容器统一重建,镜像sha256:6ee444e1c734dc454a8564c9e6ae8f05c5e0c4b25ba9282049f61234a1db10af,标签pms:proposal-feedback-4f6b192,Python指纹63b3e303084e。四个变更源码哈希匹配;静态页SHA4ba2ed96f0b207ac2a7b6b2bfb952d956420f85d05e61b28ef85ec257e1c8543。
13:59:33前后15项参数、三票数量成本毛盈亏、当日指令、24条历史指令进度、提议与成交记录完全一致。审计122+1、七条取消状态保持。QMT ONLINE、resync_flag=0、last_error空、last_seq=1245545。对账diffs=[]、errors=[]、severity=OK、streak=0;健康正常、日历未降级。真实688100清仓、费用和历史不可还原边界保持。两处事实源覆盖差异仍按ws_first单列。188未操作。
浏览器独立标签只读检查页面和样式正常,错误日志为空。自动审批拒绝打开“采纳”确认框,理由是本会话不得代点采纳。已改用只读页面与离线交互测试,未绕过拦截;用户原标签和未提交框保持。新失败提示的真实确认框显示仍待正常用户事件,不能声称已代测通过。13:40旧失败没有补造为新检查,具体原因见审计报告。自动任务137及重核开关保持,原心跳调整14:30接续剩余自然事件,不增加五日观察。
部署证据均在155 ~/pms_logs/proposal-feedback-*,原始网页日志proposal-web-20261016-1345.log、只读审计proposal-rejection-audit-20261016.json。回退标签pms:rollback-before-proposal-feedback-20261016指向a33ecb0镜像;绑定挂载要求源码反向提交、服务器pull后配套重建四容器,保留所有账本和真实成交。
```bash
# 155模拟PMS机 · ~/project/tradingSystem;只读核对自然确认与实际拒绝
cd ~/project/tradingSystem
docker exec -e PYTHONPATH=/app -i pms-web python < ~/pms_logs/verify_proposal_rejection_20261016.py
```
## 10-16 14:45 明确否决提议撤下与本轮技术验收收尾
用户14:20自然操作再次收到瑞芯微REJECT,指出旧卡仍能重复采纳不合理。实际浏览器已看到持续原因,补齐072的自然反馈证据;其提示混入在途占用的错误由本次修正。073取代“所有失败保留待确认”的约定:明确研判拒绝、策略放弃、完整可核验计划中的资格失效,结束旧提议。暂时性规则不足和来源不可用保持待确认,不按中文关键词猜测失效。
PMS功能60de23e复用EXPIRED并在原JSON记录withdrawn。状态与拒绝留痕同事务,WAIT_USER加原JSON条件更新,失败回滚。原批准、数量和历史依据保留,不冒充用户驳回;沿用原拒绝与解锁重问规则,避免原样重提。既有扫描收尾旧的明确拒绝,不新增任务或模型调用。界面移出待确认,响应只显示实际原因;撤下确认框只保留关闭。旧页面再请求时也返回撤下原因。准入、仓位、交易时段与执行终检不改。
四个反例在旧实现失败。修复后30专项、44批本地及候选镜像禁网回归、Node交互替身及三页面守卫通过。14:39:51四容器统一生效,镜像sha256:befb6246f3d8a4e5d5c4b6c8e2f3823a5875ef7d9acfe32e578ff0fe4fb80a46,标签pms:proposal-withdraw-60de23e,Python指纹3777e125a88a。页面SHA8cc46f7b7ef42f6ff930865f8e494a74058c24abbb8b954bd96fe29e1825dc68。镜像使用纯提交归档,不带用户未提交探针。部署脚本首次因155没有rg在任何写入前退出,改用grep后成功。
14:40:01正常扫描将PRP_20261016_603893SH_OPEN从WAIT_USER转为EXPIRED。检查原时刻14:20:34.118093+08:00保留,收尾时刻另记。唯一拒绝账本6858,原100股及批准依据不变;无该票指令。原失败未保存重问基线,账本price为0、基线缺失,不能拿上午旧价补作14:20行情。14:45:23复查仍仅一条拒绝、零瑞芯微指令、待确认0条,无重复收尾。
14:40:23核对15项参数、三票修复后的数量成本毛盈亏、其他提议和指令数量状态不变。24条历史修复的执行数量、均价、子单和审计不变。仅三花智控既有补仓指令的last_decision.at由14:39推进到14:40,内容仍WAIT,不能把正常时钟更新当写账。部署窗口内成交行不变,修复后自然成交累计25行;新增科士达的自然成交发生于部署之前,不是验收制造。历史修复审计122+1、七条取消状态保持。QMT ONLINE、resync_flag=0、last_error空、last_seq1246074。对账diffs=[]、errors=[]、severity=OK、streak=0。健康ok、db_ok=true、日历未降级。188未操作。
浏览器独立只读标签看到待确认0条、原风格及12只候选正常,错误日志为空。没有代点采纳或驳回。用户原标签及旧确认框保留;刷新后加载新行为。新撤下响应的确认框交互由离线替身验证,真实撤下及列表结果已在线核验,不宣称替用户完成了一次新采纳。
14:42版本复查:18个完整版本、39次自然评析变化。最新90eb7d63802bd018fbe179a01ef89c5193e1a89f1d722629c527c754724236b6在14:10:15发布。300870材料14:09:17.206737生成,14:13:05 consumed83实际消费,共227.793秒。连续交易时段累计9份样本均小于十二分钟;六份午休材料13:00:03消费的判收保持。consumed84因科士达自然持仓变化为23只,顺序与消费指纹通过。晨版固定指针及归档、父子链、冻结输入、查询与全量名次均保持。14:40:12修订检查error=null、pending_codes=[],区制OK。
核验脚本中的旧格式原件哈希检查仍为false。这是今晨已登记的10-14原件缺失,不是本次新覆盖:当前SHA8e9d3996ef49ee9352d828177ded5142f35ff5258099b02f14735d6bf5e9ef07与13:25相同。不能将脚本总体ok=false改写为全绿;其余18项检查通过,历史缺档继续单列。原费用、峰值、旧批次、历史净值、超额成交原因和两处事实源覆盖差异不随本轮抹平。
本轮启用与自然事件技术验收已闭环,可暂停automation-2。XXL137继续正常五分钟修订,PMS_PLAN_VERSION_RECHECK=True继续保持;不增加五日观察,不以心跳代替业务调度。既知历史限制保留,后续问题按实际事件处理。
证据在155 ~/pms_logs/proposal-withdraw-*,包括原值备份SHA、候选构建和禁网回归、部署、前后对照、正常扫描及重复读回。桥最新只读结果为~/akg_bridge_logs/revision-contract-20261016-1440.json、revision-evidence-20261016-1440.json;消费证据~/pms_logs/consumption-20261016-1440.json。回退镜像pms:rollback-before-proposal-withdraw-20261016指向6ee444e镜像。155绑定/app,需源码反向提交、服务器pull后配套重建。保留撤下历史,不自动恢复失效提议或暂停指令。
```bash
# 开发机 · tradingSystem 根目录;预期30 tests、OK及ALL SUITES PASS
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_batch38_units.py
/private/tmp/pms-codex-20261012-venv/bin/python scripts/run_tests.py
```
```bash
# 155模拟PMS机 · ~/project/tradingSystem;只读,目标提议EXPIRED且last_accept_check.status=withdrawn
cd ~/project/tradingSystem
docker exec -e PYTHONPATH=/app -i pms-web python < ~/pms_logs/withdraw-records-20261016.py
```