diff --git a/docs/evidence/intraday-clock-20260914/acceptance.json b/docs/evidence/intraday-clock-20260914/acceptance.json new file mode 100644 index 0000000..3087a78 --- /dev/null +++ b/docs/evidence/intraday-clock-20260914/acceptance.json @@ -0,0 +1,258 @@ +{ + "verified_at": "2026-09-13T20:22:24.750379+00:00", + "tag": "v2026.9.14.4", + "processes": { + "fidc-backtest-service-highmem177.service": { + "pid": 3612875, + "sha256": "4e9f142be0ae3f9ca8e1c126507d4a9905cde4b69859df4544472afd1bda1ff2", + "journal_since": "2026-09-13T20:14:17.444770+00:00", + "journal_lines": 54, + "error_lines": 0 + }, + "fidc-trading-control-highmem177.service": { + "pid": 3617963, + "sha256": "cd587928591fef952f2e98b47aa338a1702def5edf016a7da9751296667f6674", + "journal_since": "2026-09-13T20:19:57.821843+00:00", + "journal_lines": 5, + "error_lines": 0 + }, + "fidc-market-data-highmem177.service": { + "pid": 3617964, + "sha256": "2efb1d3ad7d510cf85e6047dd6d1981d0a30d768ff3d33c842adc52211002bdc", + "journal_since": "2026-09-13T20:19:57.821843+00:00", + "journal_lines": 5, + "error_lines": 0 + }, + "fidc-strategy-runtime-highmem177.service": { + "pid": 3618140, + "sha256": "3d7f3f2e8756e7f3439075344fe9c8bc0b55df33e7e6f251282712274c00339d", + "journal_since": "2026-09-13T20:19:57.821843+00:00", + "journal_lines": 5, + "error_lines": 0 + }, + "fidc-paper-trading-highmem177.service": { + "pid": 3618260, + "sha256": "0383b1d6cc7b3c48c6902dd7fd4760a38698c1916e0eaff63be26fe3f6b1a2ab", + "journal_since": "2026-09-13T20:19:57.821843+00:00", + "journal_lines": 6, + "error_lines": 0 + }, + "fidc-live-trading-highmem177.service": { + "pid": 3618246, + "sha256": "583f52e204aeb416574ee17daa20cebed49e0659a194c81e8072a9249824e48e", + "journal_since": "2026-09-13T20:19:57.821843+00:00", + "journal_lines": 6, + "error_lines": 0 + } + }, + "source": { + "commit": "d5b682c6d097", + "pid": 1700096, + "loaded_at": "2026-09-12T03:57:06.665536+00:00", + "source_stale": false, + "loaded_server_sha256": "ef827ce6b95e0ea63047a0068af2677633716e0a5d63cf350de6c91a3413e352" + }, + "source_checkouts": { + "fidc-backtest-engine": { + "head": "9a54156df94cfbf11a1e6335ec6ef5449bd6ac17", + "runtime_commit": "237ee15a518a668297959509daffc4b88995f310", + "tracked_dirty": false + }, + "fidc-backtest-service": { + "head": "5ec8dc86d99736a0c0140440bd039d11e118c1c6", + "runtime_commit": "e81bf47806f5ac4ae4798bb5f5955a56638f754c", + "tracked_dirty": false + }, + "fidc-trading-platform": { + "head": "dab98e0cc09793df15b8c72841a6dc7e9a58a208", + "runtime_commit": "dab98e0cc09793df15b8c72841a6dc7e9a58a208", + "tracked_dirty": false + }, + "omniquant": { + "head": "6a2b2604b40505fa754453307c517fef60743426", + "runtime_commit": "6a2b2604b40505fa754453307c517fef60743426", + "tracked_dirty": false + } + }, + "ui_unchanged": { + "commit": "6a2b2604b40505fa754453307c517fef60743426", + "pid": 3089476 + }, + "http_cases": [ + { + "name": "manual_first", + "run_id": "btr_req_60612ec2af9f97df26a81c13448aec7d95b23a93f824c303", + "status": "succeeded", + "canonical_sha256": "0830216850b64d6e83291e072b31a9989f179915ee3341a75a77c73d1f9081a3", + "trade_count": 10, + "holding_count": 4, + "final_equity": 9706248.648662, + "old_result_unchanged": true + }, + { + "name": "automatic_first", + "run_id": "btr_req_373da23c5ea5aaf4e59c38fbe37d663ae37731aeed8cc054", + "status": "succeeded", + "canonical_sha256": "c75cabcc03760f415bb664d20060e81c620d7a0201dd348ea71f75c932571de7", + "trade_count": 10, + "holding_count": 4, + "final_equity": 9706248.648662, + "old_result_unchanged": true + }, + { + "name": "stock24", + "run_id": "btr_req_5bb965ea83e047c998ec16be656f40ec28a4e5d870aa6d74", + "status": "succeeded", + "canonical_sha256": "270b403542ab41290c3d6e027b89cdab24dd41a8e2851d8786b33daa51e0051f", + "trade_count": 51, + "holding_count": 21, + "final_equity": 9685563.876924999, + "old_result_unchanged": true + } + ], + "durable_events": [ + { + "run_id": "btr_req_60612ec2af9f97df26a81c13448aec7d95b23a93f824c303", + "count": 27, + "unique_keys": 27, + "days": 5 + }, + { + "run_id": "btr_req_373da23c5ea5aaf4e59c38fbe37d663ae37731aeed8cc054", + "count": 18, + "unique_keys": 18, + "days": 5 + }, + { + "run_id": "btr_req_5bb965ea83e047c998ec16be656f40ec28a4e5d870aa6d74", + "count": 32, + "unique_keys": 32, + "days": 5 + }, + { + "run_id": "btr_req_a3c3dfe5cd81e27e565064a65665f561c60adebdc6c9c9b4", + "count": 27, + "unique_keys": 27, + "days": 5 + } + ], + "trading_state": { + "paper": { + "configuration": { + "count": 3, + "hash": "93f3224edef59c381164e0236529dacc" + }, + "active": { + "claims": 0, + "orders": 0 + } + }, + "live": { + "configuration": { + "count": 0, + "hash": "d41d8cd98f00b204e9800998ecf8427e" + }, + "active": { + "claims": 0, + "orders": 1, + "today_orders": 0, + "orders_hash": "d4b56fbf3a541a41a383ad4e48891bb8", + "route_mode": "disabled" + } + } + }, + "manual_facts_unchanged": { + "paper": { + "shadow_configurations": 0, + "shadow_runs": 0, + "manual_count": 3, + "manual_hash": "82572901ac0b5fdb4d8b984f71e1763d", + "migrations_hash": "21d711b2ee52d2d66a8be4e99b179190", + "new_orders": 0 + }, + "live": { + "shadow_configurations": 0, + "shadow_runs": 0, + "manual_count": 0, + "manual_hash": "d41d8cd98f00b204e9800998ecf8427e", + "migrations_hash": "610528d4f350309379c9398c4ea43f66", + "new_orders": 0 + } + }, + "broker_submission": false, + "linux_core_tests": { + "passed": 822, + "failed": 0, + "ignored": 9, + "log": "/srv/fidc/canonical/run/fidc-private/evidence/clock-candidate-gqx8g70l/linux-core-tests.log" + }, + "cleanup": { + "apply": true, + "deleted": [ + { + "path": "/srv/fidc/canonical/build/holding-protection-stage-wywd2682/fidc-trading-platform/debug/incremental", + "kind": "incremental_compiler_state", + "bytes": 9553190912, + "device": 2101, + "inode": 39877787, + "mtime_ns": 1789318996850462500, + "links": 176, + "size_bytes": 12288 + }, + { + "path": "/srv/fidc/canonical/build/target-backtest/debug/incremental", + "kind": "incremental_compiler_state", + "bytes": 2103459840, + "device": 2101, + "inode": 29904450, + "mtime_ns": 1789318494701447400, + "links": 46, + "size_bytes": 4096 + }, + { + "path": "/srv/fidc/canonical/build/target-backtest/debug/deps/fidc_backtest_service-46310ff8aeeb4040", + "kind": "superseded_test_binary", + "bytes": 398401536, + "device": 2101, + "inode": 29934330, + "mtime_ns": 1789117975169420000, + "links": 1, + "size_bytes": 399242488 + }, + { + "path": "/srv/fidc/canonical/build/target-backtest/debug/deps/fidc_core-18c9b2429fdf6026", + "kind": "superseded_test_binary", + "bytes": 207015936, + "device": 2101, + "inode": 29918792, + "mtime_ns": 1789166943885717800, + "links": 1, + "size_bytes": 207144208 + }, + { + "path": "/srv/fidc/canonical/build/target-backtest/debug/deps/fidc_core-42f704a330411730", + "kind": "superseded_test_binary", + "bytes": 191205376, + "device": 2101, + "inode": 29933759, + "mtime_ns": 1789117542401109800, + "links": 1, + "size_bytes": 191333360 + } + ], + "reclaimed_allocated_bytes": 12453273600, + "before": { + "total": 1749269057536, + "used": 1659299954688, + "free": 1035599872 + }, + "after": { + "total": 1749269057536, + "used": 1647166930944, + "free": 13168623616 + }, + "observed_free_change": 12133023744 + }, + "scope": "Intraday clock release verification; historical simulation only, not a performance or real broker liquidity acceptance.", + "native_replays": 6 +} diff --git a/docs/intraday-clock-causality-20260914.md b/docs/intraday-clock-causality-20260914.md index 5ff96c1..7fd58ec 100644 --- a/docs/intraday-clock-causality-20260914.md +++ b/docs/intraday-clock-causality-20260914.md @@ -1,6 +1,6 @@ # 日内时钟与手工回放前置问题 -2026-09-14。本轮时钟与工作中算法单候选已完成本机回归,尚未部署。177仍运行Engine c98bcc3 / Service e81bf47;完整手工影子回放尚未实现。 +2026-09-14。本轮日内时钟与工作中算法单修复已配套发布177,annotated tag `v2026.9.14.4`。当前Engine237ee15 / Service e81bf47 / Trading dab98e0;完整手工影子回放尚未实现,不据本阶段关闭Goal。 ## 已复现的精确反例 @@ -43,6 +43,28 @@ 代码修复已推送Engine `237ee15a518a668297959509daffc4b88995f310`;官方复用审计确认target-backtest无运行引用,新一轮仍保留1GiB余量保护,并独立保存重建前的旧二进制及SHA。实际构建读取只读Git archive快照237ee15与生产Service e81bf47,不夹带尚未生产验收的并行缓存规划代码,不覆盖维护工作树。 -还需完成Linux精确提交构建、固定历史合同回放及配套发布;通用process-event回调的完整时间/订单观察、盘前调度普通意图、显式手工委托/撤单回放和所有剩余参数矩阵继续跟踪,不以当前核心测试声明完整Goal完成。当前不解除手工影子拒绝门禁,不修改既有任务配置、Source冻结和研究/信号暂停。 +Linux精确快照Core822、Trading613通过。首次配套优化构建276.06秒成功,但收据写入因/tmp的跨用户既有文件保护失败;改为原子替换收据后,重新核对同一快照/测试/制品,未把日志缺失或异常算通过。前一轮日志及旧二进制仍保留,最终收据`/tmp/fidc-clock-candidate-20260914.json`。 + +## 发布与真实合同验收 + +Engine `237ee15a518a668297959509daffc4b88995f310`、Service `e81bf47806f5ac4ae4798bb5f5955a56638f754c`、Trading `dab98e0cc09793df15b8c72841a6dc7e9a58a208`均有已推送annotated tag `v2026.9.14.4`。API/Runner于04:14:17 CST切换,五交易服务于04:19:57切换;04:22只读复验实际SHA、迁移、旧单及配置。 + +| 已冻结原合同 | 原生A/B | 生产HTTP | 成交 / 期末持仓 | 期末权益 | +| --- | --- | --- | --- | ---: | +| 手选优先四证券 | 完整Canonical及四类逐行导出相同 | btr_req_60612ec2af9f97df26a81c13448aec7d95b23a93f824c303 | 10 / 4 | 9706248.648662 | +| 自动优先四证券 | 完整Canonical及四类逐行导出相同 | btr_req_373da23c5ea5aaf4e59c38fbe37d663ae37731aeed8cc054 | 10 / 4 | 9706248.648662 | +| 许总24只原v3 | 完整Canonical及四类逐行导出相同 | btr_req_5bb965ea83e047c998ec16be656f40ec28a4e5d870aa6d74 | 51 / 21 | 9685563.876924999 | + +共六次独立原生执行、三次持久幂等HTTP提交,旧请求/旧结果未改写。候选顺序、父订单及卖后续买合同保持;重复目标委托0。三条新记录各有5个交易日事件,持久事件总数27/18/32、唯一键数完全相等;旧流式样本仍27条/5日。上述数据来自原历史合同,仍属日终容量审计,不证明实时盘口容量;1秒样本与首轮12秒Source准备不作为性能提速证据。 + +API二进制SHA `4e9f142be0ae3f9ca8e1c126507d4a9905cde4b69859df4544472afd1bda1ff2`,Runner `8b98a2ae9a13899e87d9931162d1637de7e9ab81844c284e00135904cda7b0e4`,运行实现身份 `96cf0dcfcec94c6f7e2a9fc64ba8b8e8547b12c869ad6a61a0e492f6c76b5d57`。当前不可变API目录`/srv/fidc/canonical/run/backtest-api/releases/clock-237ee15-c37rs7zq`,回退目录`/srv/fidc/canonical/run/build/clock-rollback-7qnhgco7`;交易回退目录`holding-protection-rollback-dkd1njej`。 + +五交易服务逐一核对实际文件SHA与manifest,新增ERROR日志0;3Paper/0Live、配置、旧活动委托、3个未确认Paper预览、迁移、shadow配置0及disabled均未变化,发布后Paper/Live新订单0。Source d5/PID1700096、UI6a2/PID3089476未重启,研究/信号暂停保持。177维护中的Engine9a54156工作树完整保留,不把该未部署候选冒充本次运行代码;实际编译来自237/e81和237/dab只读快照。 + +完整原始回放与HTTP收据:`/srv/fidc/canonical/run/research/stock-pool-clock-20260914/`。发布/审计收据:`/tmp/fidc-clock-{api-release,trading-release,final-audit}-20260914.json`。非敏感汇总已归档`docs/evidence/intraday-clock-20260914/acceptance.json`。 + +## 下一步 + +通用process-event回调的完整时间/订单观察、盘前调度普通意图、显式手工委托/撤单回放和所有剩余参数矩阵继续跟踪,不以当前阶段声明完整Goal完成。下一轮直接处理这些缺口,不重新做已通过的金额、页头、流式及本轮三组回放;当前仍不解除手工影子拒绝门禁,不修改既有任务配置、Source冻结和研究/信号暂停。 Live取消请求另有待核对项:`CancelRequested`当前在网关返回后才持久化,不能不加说明就把回报时间当最初请求时间。完整手工回放需要验证并补齐真实意图/提交/成交/取消关联,当前生产手工影子仍保持明确拒绝纯比例模拟。