diff --git a/docs/04-current-state.md b/docs/04-current-state.md index 88891d9a..1ec1409f 100644 --- a/docs/04-current-state.md +++ b/docs/04-current-state.md @@ -12,11 +12,17 @@ Inalpha 是 AI agent 编排与多 Python kernel 的量化实验框架。D-12 因 最新事件审核发布(2026-10-14):[PR #238](https://github.com/mirror29/inalpha/pull/238)已合并,仅Data/Research固定`9fdb8b8a` healthy,schema0069,其余八容器ID未变。精确head/main CI、七镜像成功,评审与合并tree相同。最终自动CR先因GitHub GraphQL500未评审,重跑仍无有效正文,不能算自动CR通过;此前具体发现已修复/回应,专项增量复核无确认新增阻断。五轮空闲检查通过,配置/DB备份600、TOC可读,未做恢复演练。独立SSH复查DBinalpha/0069、审计0、375v2与35v3版本、Loop/campaign0,新接口未登录401,公共登录200。真实原文在部署Research helper经正常Data服务鉴权预览为监管→监管、未写入;不是认证Research入站HTTP或owner审批验收,不能一概撤回含bank原文。见 [生产回执](validation/event-fact-review-deployment-2026-10-14.json)。 +2026-10-14 后续生产单条纠正验收:正常 Research helper 经 Data 服务鉴权逐条预览31条有效v2监管事实,15条变为other、16条仍监管,预览全部未写入。明确阅读 Kraken SoFiUSD 科普归档537字符后,仅纠正其中因bank误命中ban的一条:数据库时间03:05:54.098265UTC追加撤回与other替代,原始摘要/证据/有效时间保留。第二个独立helper进程显式重发同一请求,created=false、审计/替代/撤回各1且ID不变;独立只读查询确认纠正前仍见原监管事实,之后仅见other。这里是单条SQL可见性与helper→Data生产证据,不是认证Research入站HTTP、服务重启、响应丢失或owner E2验收。其余30条未纠正;375v2版本保留,38v3含持续抽取与纠正版本,不等于独立覆盖。Loop/campaign仍0。Chrome旧页点击免费盘点后未见新结果,刷新暂空白,不能认定当前覆盖或产品故障。见 [单条生产回执](validation/event-fact-single-production-2026-10-14.json)。 + +同轮后续已定位并明确检查BTC两条旧监管事实:CoinDesk归档仅76字符标题含SEC批准(无完整正文),Cointelegraph归档547字符含德国监管拒绝MiCA与停牌。两者保留监管分类,各经正常Research helper→Data追加v3同类确认,03:31:19.864993/03:31:24.446412UTC,未撤回;原哈希/证据/有效时间保留,独立只读审计各1、总审计3。不是全部语义质量通过;此前31预览中余28条本轮未主动写入。旧快照不变,确认后正常owner新预检尚未取得:用户切换Chrome至其他项目,导航已停止,不改该标签。不能由这些确认宣称当前质量守卫解除或覆盖达标。见 [BTC确认回执](validation/event-fact-btc-confirmation-2026-10-14.json)。 + +正常owner最近一次免费盘点(2026-10-14T03:14:24.850UTC,早于上述两条确认):Chrome新标签明确导航后恢复,BTC/ETH/SOL选择段事实22/0/1、独立上界**3/8、0/8、1/8**,全部不足,不启动任何资产;BTC还提示完整发现上下文2条旧监管事实风险(不等于2条已确认错误)。三者最新闭合1h末根开盘与要求均02:00UTC,差值0;收盘03:00距采样14分24.850秒,不是墙钟年龄0。英文SOL准备页保留targetKind/targetId,建议窗口仍1/8;截止小时03→02的实际键盘操作使旧结果隐藏,恢复建议窗口03后重新检查仍1/8,原策略窗口显示未变。切回中文URL也保留目标。中文矩阵与英文桌面免费准备通过该范围;移动视口、服务端旧审批失效、费用审批与搜索仍待验收。运行镜像现场SSH仍Dashboard/Mastra/Evolver76727f6d、Data/Research9fdb8b8a;未独立核对客户端bundle摘要。见 [最新owner回执](validation/e2-owner-matrix-language-2026-10-14.json)。 两次窗口不可直接比较:10月13日BTC/ETH选择10/8T02至10/10T14、SOL 10/8T13至10/10T20;10月14日BTC/ETH为10/8T16至10/11T09、SOL 10/9T03至10/11T14。建议截止推进导致自然分段移动,快照和守卫发布版本也不同;逐事件差异尚未对账,不能据上界变化宣称数据退化或守卫过滤。当前守卫仅追加质量阻塞,不扣减原始上界。 + 此前质量守卫发布(2026-10-13):[PR #236](https://github.com/mirror29/inalpha/pull/236) 已合并,Dashboard / Mastra / Evolver 固定 `76727f6d`,独立 SSH 核对镜像与 healthy;其余七容器未变,schema0068不迁移。精确 head / main CI 与七镜像成功、tree一致。两次连接守卫拒绝均未替换服务,随后四轮空闲检查通过;配置/DB备份600、部署脚本TOC可读,不等于恢复演练。最新自动CR有3项MEDIUM,按实际调用链与子交付边界回应,独立静态增量复核无确认新增阻断,不能称零发现。独立复查公开登录最终200;Mastra与Evolver的容器内准备接口未登录401,不代表公开准备API路径验收;备份600/TOC可读、DB0068/Loop0/campaign0。Chrome刷新与导航后内容空白,后续焦点切至其他项目;曾短暂SSH超时已恢复,正常owner界面结果未可靠读取,原因未确定;不因这个现象重复部署。见 [质量守卫部署回执](validation/e2-event-quality-deployment-2026-10-13.json)。 此前覆盖矩阵发布(2026-10-13):PR #231 已合并,Dashboard 与 Mastra 固定部署 `3c8aa389`,均 healthy;其余八容器未变,Evolver 保持 `655e2179`,schema `0068`。精确评审 head 与合并版本差异为空,main CI / 镜像构建成功。四次任务与连接检查均为0,配置/数据库备份权限600,归档目录可读;未进行完整恢复演练。自动 CR 的两项 MEDIUM 已按实际 Paper limit 源码和用户指定三资产范围逐项复核,不能称自动 CR 零发现。见 [生产覆盖与部署回执](validation/e2-coverage-matrix-production-2026-10-13.json)。 -正常 owner 已在中文桌面免费盘点 BTC / ETH / SOL:同一采样时点 `2026-10-13T04:46:26.189Z`,独立事件上界分别 **6/8、3/8、2/8**,均不满足必要输入,**首轮选择结果为不启动任何资产**。三者最新闭合1h末根开盘时间与要求均为03:00 UTC,距要求末根差值0;其收盘为04:00,距采样约46分26秒(开盘距采样约106分26秒),差值0不等于墙钟年龄0;BTC选择段48条事实不等于48个独立事件。未提交审批、未调用模型,生产 Loop / campaign 仍为0。语言切换修复已随此版本部署,英文/移动交互与查询参数保留仍待浏览器验收。 +历史正常 owner 中文桌面免费盘点 BTC / ETH / SOL:同一采样时点 `2026-10-13T04:46:26.189Z`,独立事件上界分别 **6/8、3/8、2/8**,均不满足必要输入,**首轮选择结果为不启动任何资产**。三者最新闭合1h末根开盘时间与要求均为03:00 UTC,距要求末根差值0;其收盘为04:00,距采样约46分26秒(开盘距采样约106分26秒),差值0不等于墙钟年龄0;BTC选择段48条事实不等于48个独立事件。未提交审批、未调用模型,生产 Loop / campaign 仍为0。语言切换修复已随此版本部署,英文/移动交互与查询参数保留仍待浏览器验收。 此前 PR #229 仅 Evolver 发布与响应 checkpoint 边界见 [部署回执](validation/e2-proposal-response-deployment-2026-10-13.json);PR #223 的旧 Dashboard `12ac65d5` 已被上述发布替换。不能因文档 SHA 变化重建服务。 @@ -60,10 +66,10 @@ PR #219(业务 `ab5fd15b`)的本地测试边界:Evolver 335 通过 / 1 跳 ### P0 · 新入口生产验收 - 覆盖矩阵子交付已完成代码、自动化与部署,并取得正常 owner 中文桌面结果;固定每资产最早运行中的受支持策略,统一采样,只比较正常建议窗口的输入覆盖。源码与自动化历史见 [本地回执](validation/e2-coverage-matrix-local-2026-10-13.json),当前生产结论见 [生产回执](validation/e2-coverage-matrix-production-2026-10-13.json)。 -- BTC 6/8、ETH 3/8、SOL 2/8,全部阻塞,不选择启动资产;匹配对照、FDR与研究结果尚未评估。下一步排查资产映射、抽取与去重缺口,再据证据决定补充来源。四来源近期各8次抓取成功仅是轮询日志观察,不证明覆盖足够。后续只读审计371任务全部completed,无原文漏建任务/完成无事实;三资产已标注事实无空asset_ids,但语义映射、抽取质量与跨来源去重仍待核查,不能据此认定全部数据质量通过。 +- 最新10月14日BTC 3/8、ETH 0/8、SOL 1/8(此前10月13日6/8、3/8、2/8来自不同选择窗口,不是同一冻结输入的回归对照),全部阻塞,不选择启动资产;匹配对照、FDR与研究结果尚未评估。下一步排查资产映射、抽取与去重缺口,再据证据决定补充来源。四来源近期各8次抓取成功仅是轮询日志观察,不证明覆盖足够。后续只读审计371任务全部completed,无原文漏建任务/完成无事实;三资产已标注事实无空asset_ids,但语义映射、抽取质量与跨来源去重仍待核查,不能据此认定全部数据质量通过。 - 已确认的P0数据质量缺陷:v2监管规则直接匹配 `ban` 子串,17条监管事实只命中这类非独立词匹配。[PR #233](https://github.com/mirror29/inalpha/pull/233) 已将后续抽取修正并部署为v3;17条历史事实保持不可变,未从原统计中追溯排除;上述覆盖矩阵仅是现有输入的观察,不能据其上界认定语义质量合格或直接启动付费搜索。后续需区分历史v2与修复后的证据,不能重写旧事实时间以通过验收。结构化质量阻塞、listing/SEC规则与不同URL同事件审计追踪于 [#234](https://github.com/mirror29/inalpha/issues/234),部署前后续只读观察已出现5条真实v3事实(最新available_at09:57:24.843018UTC),375条v2不变;不等于独立覆盖、语义或正式评估通过。 - 本地已补已知旧版质量诊断:免费准备和模型凭据访问前检查v1/v2监管事实与缺失/未知抽取版本;覆盖模型实际读取的完整发现上下文(包括窗口前事实),保留原始上界和事实。双语页面显示潜在风险数量、版本与下一步;355项Evolver隔离数据库测试通过/1跳过、208项Dashboard与16项相关编排测试通过(最终错误契约另有20项Python回归)。完整测试曾有一次五代候选状态断言失败,单独复现与最新完整重跑通过,原因尚未确认并保留回执。**质量守卫已随PR #236部署,正常owner界面验收仍待完成**;不提供对同一历史快照的人工放行接口,新增v3不会自动解除旧上下文阻塞。见 [本地质量回执](validation/e2-event-quality-local-2026-10-13.json)。 -- 来源轮询健康的结构化展示、英文/移动交互、语言切换保留目标与正常 owner 审批执行仍待办。中文矩阵可见及数据阻塞已验证,不等于整个第一阶段完成。 +- 来源轮询健康的结构化展示、移动交互与正常owner审批执行仍待办。10月14日正常owner英文桌面准备与语言切换保留目标已取得上述局部证据;中文矩阵及数据阻塞已验证,不等于整个第一阶段完成。 1. PR #219 的精确 head CI、主分支 CI、镜像构建、专项审查与三个服务部署已完成;保留旧镜像1dc8fa78和备份,Chrome 正常 owner 连接已恢复,已观察到免费准备与不足提示;尚无绑定版本的完整验收。 2. 待验收:冻结费用、单次批准、刷新和响应丢失后的原操作恢复,以及英文与移动页面。中文桌面免费准备、结构化阻塞、UI 参数修改使旧结果隐藏已由 Chrome 辅助功能操作既有 owner 会话验证,不代表用户手工验收。 @@ -75,9 +81,9 @@ PR #219(业务 `ab5fd15b`)的本地测试边界:Evolver 335 通过 / 1 跳 2026-10-13 正常 owner 后续读取:SOL 建议窗口 10/1T14 至 10/13T01 UTC,165/55/55 bars,选择段 10/8T12 至 10/10T18,3事实、独立上界2/8,未展示审批;后续截止时间已显示02时,上界仍2。日期控件操作未可靠生效,不能新增“参数失效验收通过”结论;Chrome截图与AX内容不一致,内置标签连接20秒超时。未提交模型请求。见 [后续读取边界](validation/e2-owner-preflight-followup-2026-10-13.json)。 -历史事实纠正基础接口已实现(原本地`e8365aa9`,现已随PR #238合并部署):普通 owner 无写权限,沿用可信抽取服务身份;跨分类原子撤回旧规范键并追加替代事实,纠正可见时间由数据库当前时钟生成,审计绑定原事实摘要、操作和服务身份。33项新隔离库回归通过,Data非集成回归通过;实际有审计记录的降级被拒绝;两项并发/降级审查发现已修复,增量静态复核无新增确认阻断。此处是数据库与路由测试,不是完整服务或生产纠正验收;Research 正常审核调用入口现已补齐代码和自动化,历史事实逐项审核和生产实测仍待完成,不自动批量改写。已拆分本地代码/文档提交;10月14日已合并并仅部署Data/Research;生产历史纠正写入仍未验收。本地历史回归见 [纠正本地回执](validation/event-fact-corrections-local-2026-10-13.json),当前发布状态以 [生产部署回执](validation/event-fact-review-deployment-2026-10-14.json)为准。 +历史事实纠正基础接口已实现(原本地`e8365aa9`,现已随PR #238合并部署):普通 owner 无写权限,沿用可信抽取服务身份;跨分类原子撤回旧规范键并追加替代事实,纠正可见时间由数据库当前时钟生成,审计绑定原事实摘要、操作和服务身份。33项新隔离库回归通过,Data非集成回归通过;实际有审计记录的降级被拒绝;两项并发/降级审查发现已修复,增量静态复核无新增确认阻断。此处是数据库与路由测试,不是完整服务或生产纠正验收;Research 正常审核调用入口现已补齐代码和自动化,历史事实完整逐项审核仍待完成,单条生产证据见上述回执,不自动批量改写。已拆分本地代码/文档提交;10月14日已合并并仅部署Data/Research;单条helper→Data生产纠正及显式重发已验证,完整入站授权与服务恢复仍待验收。本地历史回归见 [纠正本地回执](validation/event-fact-corrections-local-2026-10-13.json),当前发布状态以 [生产部署回执](validation/event-fact-review-deployment-2026-10-14.json)为准。 -2026-10-14 已补可信 Research 审核调用(`b7a247b1`):默认只预览,执行绑定并重算审核摘要,沿用现有服务用途鉴权;不向普通 owner 开放全局事实写权限。完整解析关联审计/事实回执,未知响应不自动重发。相关52项、Research非集成257通过/3数据库跳过/4联网排除,最新Data新隔离库40通过,优化模式另40通过;后续完整本地Data/Research进程经真实HTTP验证:预览0写、执行1审计/3事实版本,Research重启后同请求返回同一事实、owner拒绝。使用临时探索脚本与合成服务授权,不等于同镜像或生产纠正验收。[PR #238](https://github.com/mirror29/inalpha/pull/238)已合并并仅部署Data/Research;新增原文版本在抽取前也阻止重新确认旧原文,只允许显式撤回旧分类。旧head自动CR3项MEDIUM已按实际规范化/固定服务身份逐项核对,内部校验错误已修为脱敏500,冲突409与多资产回归补齐;最终追加专用源缺失异常与显式审计事务检查,防止KeyError误报404和优化模式跳过保护;40项普通/40项优化回归通过。自动审查各head的发现已保留,不记为最终head审查通过。精确head/main CI、审查证据核对及Data/Research部署已完成;下一步逐项审核历史事实并验证正常服务申请/写入/恢复;不自动解除旧快照阻塞或运行付费搜索。历史自动化及隔离进程证据见 [可信审核本地回执](validation/event-fact-review-local-2026-10-14.json),当前发布与生产预览范围见 [部署回执](validation/event-fact-review-deployment-2026-10-14.json)。 +2026-10-14 已补可信 Research 审核调用(`b7a247b1`):默认只预览,执行绑定并重算审核摘要,沿用现有服务用途鉴权;不向普通 owner 开放全局事实写权限。完整解析关联审计/事实回执,未知响应不自动重发。相关52项、Research非集成257通过/3数据库跳过/4联网排除,最新Data新隔离库40通过,优化模式另40通过;后续完整本地Data/Research进程经真实HTTP验证:预览0写、执行1审计/3事实版本,Research重启后同请求返回同一事实、owner拒绝。使用临时探索脚本与合成服务授权,不等于同镜像或生产纠正验收。[PR #238](https://github.com/mirror29/inalpha/pull/238)已合并并仅部署Data/Research;新增原文版本在抽取前也阻止重新确认旧原文,只允许显式撤回旧分类。旧head自动CR3项MEDIUM已按实际规范化/固定服务身份逐项核对,内部校验错误已修为脱敏500,冲突409与多资产回归补齐;最终追加专用源缺失异常与显式审计事务检查,防止KeyError误报404和优化模式跳过保护;40项普通/40项优化回归通过。自动审查各head的发现已保留,不记为最终head审查通过。精确head/main CI、审查证据核对及Data/Research部署已完成;下一步继续逐项审核历史事实,补认证入站服务申请与故障恢复;不自动解除旧快照阻塞或运行付费搜索。历史自动化及隔离进程证据见 [可信审核本地回执](validation/event-fact-review-local-2026-10-14.json),当前发布与生产预览范围见 [部署回执](validation/event-fact-review-deployment-2026-10-14.json)。 ### P0 · 可靠性与真实五代搜索 diff --git a/docs/validation/e2-owner-matrix-language-2026-10-14.json b/docs/validation/e2-owner-matrix-language-2026-10-14.json new file mode 100644 index 00000000..220f4e4e --- /dev/null +++ b/docs/validation/e2-owner-matrix-language-2026-10-14.json @@ -0,0 +1,158 @@ +{ + "date": "2026-10-14", + "status": "normal_owner_free_matrix_and_english_preparation_verified_inputs_insufficient", + "sampled_at": "2026-10-14T03:14:24.850Z", + "access": "Existing logged-in Chrome owner session; native CUA controls; no credentials read or fabricated.", + "runtime_image_check": { + "dashboard_mastra_evolver": "76727f6d7a77d3015d6e9a604e11874b3caf3b0d", + "data_research": "9fdb8b8aa0d49a36eddc344c0955b41e28cd9848", + "scope": "Independent SSH image/health observation during UI acceptance, not client bundle digest verification." + }, + "assets": [ + { + "asset": "BTC", + "timeframe": "1h", + "target_id": "8ec05df8-522b-48b6-9dc5-fdd45aba0205", + "suggested_from": "2026-09-30T10:00:00Z", + "suggested_to": "2026-10-14T03:00:00Z", + "bars": [ + 197, + 66, + 66 + ], + "selection_from": "2026-10-08T16:00:00Z", + "selection_to": "2026-10-11T09:00:00Z", + "selection_facts": 22, + "independent_upper_bound": 3, + "required_threshold": 8, + "upper_bound_by_type": { + "other": 2, + "exploit": 1 + }, + "legacy_regulatory_risks": 2, + "quality_inspected_facts": 91, + "quality_versions": { + "deterministic-event-extractor-v2": 91 + }, + "snapshot_fact_versions": 120, + "first_snapshot_available_at": "2026-09-30T10:36:41.860008Z" + }, + { + "asset": "ETH", + "timeframe": "1h", + "target_id": "33ef02a0-dcf7-47a3-a708-9d4ca1433860", + "suggested_from": "2026-09-30T10:00:00Z", + "suggested_to": "2026-10-14T03:00:00Z", + "bars": [ + 197, + 66, + 66 + ], + "selection_from": "2026-10-08T16:00:00Z", + "selection_to": "2026-10-11T09:00:00Z", + "selection_facts": 0, + "independent_upper_bound": 0, + "required_threshold": 8, + "upper_bound_by_type": {}, + "quality_inspected_facts": 10, + "quality_versions": { + "deterministic-event-extractor-v2": 10 + }, + "snapshot_fact_versions": 13, + "first_snapshot_available_at": "2026-09-30T10:36:41.887149Z" + }, + { + "asset": "SOL", + "timeframe": "1h", + "target_id": "7c09cdb0-cd8a-43b6-8e66-787eb9f7aaed", + "suggested_from": "2026-10-01T14:00:00Z", + "suggested_to": "2026-10-14T03:00:00Z", + "bars": [ + 180, + 60, + 61 + ], + "selection_from": "2026-10-09T03:00:00Z", + "selection_to": "2026-10-11T14:00:00Z", + "selection_facts": 1, + "independent_upper_bound": 1, + "required_threshold": 8, + "upper_bound_by_type": { + "upgrade": 1 + }, + "quality_inspected_facts": 5, + "quality_versions": { + "deterministic-event-extractor-v2": 5 + }, + "snapshot_fact_versions": 6, + "first_snapshot_available_at": "2026-10-01T14:37:01.079456Z" + } + ], + "all_assets_latest_bar_open_and_required": "2026-10-14T02:00:00Z", + "freshness_caveat": "UI reports zero difference from the required closed final bar opening timestamp, not wall-clock age. bars[-1].ts is 02:00, 4464.850 seconds before sampled_at; this 1h bar closes at 03:00, 864.850 seconds before sampled_at. Continuous bars were reported by normal preparation, not independently re-audited here.", + "selection": "No asset selected: all independent upper bounds below 8; BTC also blocked by legacy quality. No comparison of returns or alternate windows to obtain eligibility.", + "english_preparation": { + "url": "https://dashboard.inalpha.dev/evolution/prepare?targetKind=paper_runner&targetId=7c09cdb0-cd8a-43b6-8e66-787eb9f7aaed", + "query_parameters_preserved": true, + "suggested_window_preflight": "blocked 1/8, same SOL bars and window as matrix", + "configuration_ui_invalidation": "Cutoff hour changed 03 to 02 using native Down then Tab; old result disappeared. Use suggested window restored 03 and 1/8 result. AX setValue alone did not visibly change the value; not counted.", + "original_strategy_window_display": [ + "2025-10-09T06:00:00Z", + "2026-10-09T06:25:54.528Z" + ], + "return_to_zh_url_preserved": true, + "no_old_approval_server_rejection_proven": true + }, + "mobile": "Attempted DevTools toggle, but no reliable mobile viewport dimensions/rendering obtained; not passed. DevTools closed afterward.", + "initial_browser_issue": "Old tab AX stale, refresh blank. New tab with explicit address-bar navigation rendered and completed the free checks. This supersedes the earlier browser-blocked observation; cause not diagnosed.", + "new_model_calls": 0, + "approval_submitted": false, + "e2_search_started": false, + "boundaries": [ + "Normal owner free matrix, English desktop preparation and UI invalidation only.", + "No matched-control/FDR evaluation, frozen approval, five-generation execution, response-loss/service recovery, champion, Forward or holdout.", + "BTC legacy risk two is provenance guard output, not proof both facts are semantically wrong.", + "No manual evidence exclusion or change to original frozen window." + ], + "comparison_with_october_13": { + "historical_receipt": "e2-coverage-matrix-production-2026-10-13.json", + "same_frozen_input": false, + "old_sampled_at": "2026-10-13T04:46:26.189Z", + "old_dashboard_mastra_release": "3c8aa3898491d9034162049cd2c5e069e2283021", + "new_dashboard_mastra_evolver_release": "76727f6d7a77d3015d6e9a604e11874b3caf3b0d", + "old_selection_windows": { + "BTC": [ + "2026-10-08T02:00:00Z", + "2026-10-10T14:00:00Z" + ], + "ETH": [ + "2026-10-08T02:00:00Z", + "2026-10-10T14:00:00Z" + ], + "SOL": [ + "2026-10-08T13:00:00Z", + "2026-10-10T20:00:00Z" + ] + }, + "new_selection_windows": { + "BTC": [ + "2026-10-08T16:00:00Z", + "2026-10-11T09:00:00Z" + ], + "ETH": [ + "2026-10-08T16:00:00Z", + "2026-10-11T09:00:00Z" + ], + "SOL": [ + "2026-10-09T03:00:00Z", + "2026-10-11T14:00:00Z" + ] + }, + "interpretation": "Normal suggested-window cutoff advanced, moving the natural 60/20/20 selection segments. These are different snapshots and release versions, not a controlled coverage regression comparison. Exact per-event contributions to the count difference were not reconciled.", + "guard_behavior": "Current inspect_event_coverage calculates the raw independent upper bound before adding quality blockers; known legacy risk does not subtract facts from that bound. The quality guard was added after the October 13 matrix release.", + "event_provenance": "Both recorded contexts contain v2 evidence; different windows, evolving snapshots and guard release must be distinguished." + }, + "all_assets_lag_vs_required_bar_open_seconds": 0, + "all_assets_bar_open_age_at_sample_seconds": 4464.85, + "all_assets_bar_close_age_at_sample_seconds": 864.85 +} diff --git a/docs/validation/event-fact-btc-confirmation-2026-10-14.json b/docs/validation/event-fact-btc-confirmation-2026-10-14.json new file mode 100644 index 00000000..2d738e3e --- /dev/null +++ b/docs/validation/event-fact-btc-confirmation-2026-10-14.json @@ -0,0 +1,83 @@ +{ + "date": "2026-10-14", + "status": "two_explicit_same_class_regulatory_reviews_applied", + "business_commit": "9fdb8b8aa0d49a36eddc344c0955b41e28cd9848", + "database": "inalpha", + "schema": "0069", + "source_identification": "Read-only candidate query for the two BTC legacy regulatory risks, bounded to the owner matrix selection-context time. Not a replay of the entire snapshot API.", + "reviewed_sources": [ + { + "source_fact_id": "6fdea295-f3d6-4363-a5a2-c08edd2256f6", + "source": "coindesk", + "archived_evidence_characters": 76, + "body_archived": false, + "decision": "Keep regulatory: archived title explicitly describes SEC approval; full article truth not certified." + }, + { + "source_fact_id": "9979f51b-304a-4993-bbf2-05aa7cbb94dd", + "source": "cointelegraph", + "archived_evidence_characters": 547, + "decision": "Keep regulatory: archived title and summary describe regulator rejecting MiCA authorization and trading suspension." + } + ], + "apply_acknowledgements": [ + { + "source_fact_id": "6fdea295-f3d6-4363-a5a2-c08edd2256f6", + "reviewed_type": "regulatory", + "created": true, + "correction_id": "d4900d62-141e-4409-9938-52f65d29e5c8", + "corrected_fact_id": "24d77317-0067-4c8d-b966-c55a1d5113f7", + "retired_fact_id": null, + "available_at": "2026-10-14T03:31:19.864993Z", + "source_hash_matches_frozen_request": true + }, + { + "source_fact_id": "9979f51b-304a-4993-bbf2-05aa7cbb94dd", + "reviewed_type": "regulatory", + "created": true, + "correction_id": "6d9a9e2f-de4c-435a-b69f-3bf2fdf6887c", + "corrected_fact_id": "a22d2eb1-e170-466b-bcec-b0fb57a18bce", + "retired_fact_id": null, + "available_at": "2026-10-14T03:31:24.446412Z", + "source_hash_matches_frozen_request": true + } + ], + "independent_read_only_checks": [ + { + "source_fact_id": "6fdea295-f3d6-4363-a5a2-c08edd2256f6", + "audit_count": 1, + "same_fact_key": true, + "evidence_preserved": true, + "effective_time_preserved": true, + "available_after_source": true, + "no_retirement": true + }, + { + "source_fact_id": "9979f51b-304a-4993-bbf2-05aa7cbb94dd", + "audit_count": 1, + "same_fact_key": true, + "evidence_preserved": true, + "effective_time_preserved": true, + "available_after_source": true, + "no_retirement": true + } + ], + "global_audit_count_after": 3, + "same_class_confirmation_no_retirement": true, + "frozen_source_hashes_verified_via_authenticated_Data_GET": true, + "original_evidence_and_effective_time_preserved": true, + "availability_current_database_time_not_original_firstseen": true, + "remaining_original_31_previews_not_intentionally_written_this_run": 28, + "new_e2_model_calls": 0, + "loops": 0, + "campaigns": 0, + "owner_matrix_before_these_reviews": "e2-owner-matrix-language-2026-10-14.json", + "owner_preflight_after_these_reviews": "Not yet obtained. User changed the foreground Chrome tab to another project; navigation was halted without changing that tab.", + "boundaries": [ + "Deployed Research maintenance helper via normal Data service token, not authenticated incoming Research HTTP or normal owner E2 approval.", + "No production service restart, response-loss injection or replay test for these two new confirmation operations.", + "Old immutable snapshots retain old versions. New confirmation does not establish coverage, matching, FDR or a qualified champion.", + "Only explicit archived sources reviewed; no blanket reclassification or manual quality-guard bypass.", + "No claim that the current BTC guard is cleared until normal owner re-preflight is observed." + ] +} diff --git a/docs/validation/event-fact-single-production-2026-10-14.json b/docs/validation/event-fact-single-production-2026-10-14.json new file mode 100644 index 00000000..11621143 --- /dev/null +++ b/docs/validation/event-fact-single-production-2026-10-14.json @@ -0,0 +1,314 @@ +{ + "date": "2026-10-14", + "status": "single_real_correction_and_explicit_replay_verified_not_complete_E2", + "business_commit": "9fdb8b8aa0d49a36eddc344c0955b41e28cd9848", + "schema": "0069", + "production_target_database": "inalpha", + "preview": { + "preview_only": true, + "count": 31, + "type_counts": { + "other": 15, + "regulatory": 16 + }, + "rows": [ + { + "fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "source": "kraken_blog", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "84bb2f18-6246-4431-a037-0a4a3d417595", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "3f107d19-9f8d-4375-864c-6dbc2022f46f", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "ceac2b04-cfec-43fb-a406-dff4234a6f56", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "a35320f4-8583-4609-8e5a-ef3295e0edfa", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "393b45eb-c45c-4d50-b0b8-55e6a3f66235", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "6fdea295-f3d6-4363-a5a2-c08edd2256f6", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "98bdc49e-e510-40ff-9c02-7c17a98aa987", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "b62100d3-2446-4506-ac69-a8a19f0009be", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "7b99f9dc-4d72-47ad-a789-1624d1d010a5", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "8feb3a7d-aed2-4e9c-8a6e-89bb048e4dd7", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "b56bd3ce-83fe-42e3-8070-9bf655f607cf", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "6cb9f96a-13a8-48c2-b127-fe63b0d602fb", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "9733ccf1-18c7-4c58-aef9-587f89c2b903", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "d98dd784-2679-4f8d-8254-c2fe3635c0c7", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "264eb6a9-3b95-480f-aaf1-e74ed150e543", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "9979f51b-304a-4993-bbf2-05aa7cbb94dd", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "dc74fb9c-2565-4e16-9366-8bc979eebe7f", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "0dbbf44f-5a87-4ed5-b179-67b317972f65", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "b5768c2a-e964-4756-86dc-39c3cc6f8e4c", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "c8b414ce-8e10-4e74-bde0-176d5a10e265", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "0d99a9da-e479-44ca-93f2-00b316efa5d1", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "81c935fb-4bd0-4899-bc02-00ebf4bd864b", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "03cf4d2e-d1cd-437e-ac03-8e00ad593527", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "bdb8cf6b-3d09-43d0-be19-a3b09e791fbf", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "bd44ece3-fa5e-4879-8ddc-ef3d421f461b", + "source": "coindesk", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "28a0b5a1-f884-4082-8d39-60cad1256e3d", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "6c5af6c8-22c8-477d-8b9d-714eb1ade596", + "source": "cointelegraph", + "reviewed_type": "regulatory", + "applied": false + }, + { + "fact_id": "0d0633c1-2da5-4df4-897f-325960e356aa", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "45ec5698-69c3-4b07-9317-2009333a1b7a", + "source": "coindesk", + "reviewed_type": "other", + "applied": false + }, + { + "fact_id": "10e12030-90f2-4a12-8c3b-44dfcbf2e0f6", + "source": "cointelegraph", + "reviewed_type": "other", + "applied": false + } + ], + "public_metadata_scope": "Fact IDs, source names, deterministic classifications and write status only; archived titles/content not republished. The individually inspected correction source is identified separately." + }, + "reviewed_source": { + "fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "source": "kraken_blog", + "title": "Token Spotlight: What is SoFiUSD (SOFID)?", + "archived_evidence_characters": 537, + "cause": "v2 regulatory ban substring matched bank in an educational stablecoin article", + "v3_classification": "other", + "no_regulatory_action_in_archived_evidence": true + }, + "apply": { + "applied": true, + "created": true, + "source_fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "reviewed_type": "other", + "correction_id": "d3a7748c-e309-4971-9298-3cedffbd3668", + "corrected_fact_id": "d3df6f9d-4cd5-4be0-99fc-317d7a5be148", + "retired_fact_id": "e8cf1c77-bf33-4544-b36c-1c5c1d4b04d6", + "available_at": "2026-10-14T03:05:54.098265Z", + "boundary": "deployed Research helper via authenticated Data API; no incoming Research HTTP or owner approval" + }, + "explicit_replay_separate_process": { + "applied": true, + "created": false, + "source_fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "reviewed_type": "other", + "correction_id": "d3a7748c-e309-4971-9298-3cedffbd3668", + "corrected_fact_id": "d3df6f9d-4cd5-4be0-99fc-317d7a5be148", + "retired_fact_id": "e8cf1c77-bf33-4544-b36c-1c5c1d4b04d6", + "available_at": "2026-10-14T03:05:54.098265Z", + "boundary": "deployed Research helper via authenticated Data API; no incoming Research HTTP or owner approval" + }, + "verification": [ + { + "source_hash_matches_frozen_request": true, + "source_fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d" + }, + { + "before_correction_active_facts": [ + { + "fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "event_type": "regulatory", + "retracted": false + } + ], + "after_correction_active_facts": [ + { + "fact_id": "d3df6f9d-4cd5-4be0-99fc-317d7a5be148", + "event_type": "other", + "retracted": false + } + ] + } + ], + "audit_count_for_source": 1, + "replacement_count_for_source": 1, + "retirement_count_for_source": 1, + "effective_time_raw_id_and_evidence_preserved": true, + "availability_generated_by_database_after_original": true, + "original_v2_versions_preserved": 375, + "observed_v3_versions_after": 38, + "version_count_caveat": "Initial deployment observation: 35 v3 versions. One subsequent completed normal extraction added 1 version, and the single cross-class correction atomically appended 1 retired version plus 1 replacement version, yielding 38. The explicit replay appended 0. These are fact versions, not correction operation counts or independent evaluable events.", + "saved_review_request_mode": "600", + "service_container_ids_unchanged_during_acceptance": true, + "loops": 0, + "campaigns": 0, + "new_e2_model_calls": 0, + "boundaries": [ + "Authenticated deployed Research helper to Data API, not authenticated incoming Research review HTTP or normal owner E2 approval.", + "Two short-lived maintenance helper processes, not a restarted production Research service, not in-flight response-loss fault injection.", + "PIT query verifies the single corrected logical source before/after audit cutoff, not a complete immutable snapshot API acceptance.", + "31 previewed classifications are deterministic rule results, not 31 semantically validated or corrected facts.", + "Only the explicitly inspected SoFiUSD article was prospectively corrected; all other previewed records remain unmodified.", + "Chrome old page AX remained stale after free-check click; refresh showed blank content. No current coverage result or product failure conclusion obtained.", + "No paid E2 search, champion, Forward, holdout or adoption started." + ], + "version_count_reconciliation": [ + { + "cutoff": "2026-10-14T03:05:55.098265+00:00", + "v3_count_at_cutoff": 38, + "this_operation_retirement_versions": 1, + "this_operation_replacement_versions": 1, + "other_v3_versions": 36 + }, + { + "normal_fact_id": "697872c9-f3c3-4ffe-b640-77699fd3fc5a", + "source": "cointelegraph", + "extractor_version": "deterministic-event-extractor-v3", + "created_at": "2026-10-14T02:31:07.616934+00:00", + "extraction_completed": true + } + ], + "observation_scope": "Initial single-correction evidence before the two later BTC confirmations documented separately in event-fact-btc-confirmation-2026-10-14.json.", + "retirement_version_semantics": { + "meaning": "source_fact_id identifies the preserved immutable original row; retired_fact_id identifies a newly appended retracted version under the same logical fact_key, not a mutation of source_fact_id. Both are market_event_facts.fact_id UUIDs. Active before/after listings intentionally exclude retracted versions.", + "independent_read_only_mapping": { + "source_fact_id": "8a0ef52e-0a94-4552-8973-367f7a86719d", + "source_version": 1, + "source_retracted": false, + "retirement_version_fact_id": "e8cf1c77-bf33-4544-b36c-1c5c1d4b04d6", + "retirement_version": 2, + "retirement_retracted": true, + "same_source_retirement_key": true, + "same_raw_id": true, + "same_evidence": true, + "same_effective_time": true, + "replacement_fact_id": "d3df6f9d-4cd5-4be0-99fc-317d7a5be148", + "replacement_type": "other", + "replacement_distinct_key": true + } + } +} diff --git a/services/data/README.md b/services/data/README.md index 36c8bfd6..7f5000ac 100644 --- a/services/data/README.md +++ b/services/data/README.md @@ -63,7 +63,7 @@ worker 执行。不同来源可能报道同一事件,原文数量不能直接 `accepted_at`,也不能补齐旧验收窗口。新增来源的未来覆盖需要另行观察,既有验收口径不随 来源扩展静默改变。真实验收与下一步统一见 [当前状态](../../docs/04-current-state.md#未完成--下一步)。 -## 历史事件纠正(已部署,生产纠正写入未验收) +## 历史事件纠正(已部署,单条生产写入与显式重发已验证) `POST /events/facts/{fact_id}/corrections` 沿用 `event_extract` 服务鉴权,普通用户 JWT 不能修改平台事实。请求绑定纠正 UUID、原事实哈希、审核理由与 v3 分类结果;仅接受活动的 @@ -73,9 +73,13 @@ v2 监管事实,保留资产、行动、证据与有效时间,不接收客 追加规范替代键;同类确认追加一个版本。可见时间来自锁内数据库时钟,旧版本及冻结快照 保留。重复请求返回同一审计结果,输入或身份变化、来源已有新版本、替代分类已存在时拒绝; 已有替代分类需显式审核撤回旧事实,不能覆盖替代事实。存在审计记录时迁移拒绝降级。 +`source_fact_id` 是保留的原始不可变行;`retired_fact_id` 是同一逻辑键下新追加的撤回版本ID, +不是把原始行改成撤回。二者都是事实行UUID;纠正后的活动列表不显示撤回版本。 -这不是自动历史重抽取:Research 默认预览/摘要绑定执行的审核入口已有代码和自动化,生产逐项审核尚待验收,不会追溯补齐 +这不是自动历史重抽取:Research 默认预览/摘要绑定执行的审核入口已有代码和自动化,完整生产逐项审核尚待验收,不会追溯补齐 旧实验窗口。局部验收与下一步见 [当前状态](../../docs/04-current-state.md)。 -2026-10-14 Data/Research已固定部署`9fdb8b8a`,schema0069;未登录读取/纠正401, +2026-10-14初次部署回执:Data/Research已固定部署`9fdb8b8a`,schema0069;未登录读取/纠正401, 审计仍0。真实预览未写入,不等于生产纠正通过。见 [发布回执](../../docs/validation/event-fact-review-deployment-2026-10-14.json)。 + +后续已核实并纠正一条Kraken科普误分类,第二个独立Research helper进程显式重发返回同一审计/替代ID,未重复写入;原摘要与纠正前可见性保留。不是认证Research入站HTTP或生产服务重启验收。见 [单条生产回执](../../docs/validation/event-fact-single-production-2026-10-14.json)。 diff --git a/services/research/README.md b/services/research/README.md index 3dd80c8b..351a5fe5 100644 --- a/services/research/README.md +++ b/services/research/README.md @@ -121,7 +121,7 @@ For offline evidence preparation and #206 adapter contracts, see [Unified model usage](../../docs/usage/README.md). These tools do not authorize paid runs or establish real-data pilot readiness. -## 旧版事件事实审核(已部署,生产写入链路未验收) +## 旧版事件事实审核(已部署,helper→Data单条写入已验证) `POST /event-facts/review` 沿用 `event_extract_request` 平台服务鉴权,不接受普通 owner 修改全局事实。请求指定原事实 ID/哈希、纠正 UUID 和审核理由;`dry_run` 默认 true, @@ -141,5 +141,9 @@ Data 原子追加撤回/替代版本,生成当前数据库可见时间,并 v3 规则确认不等于语义审核、匹配对照或 FDR 通过,不能借此补齐旧冻结窗口。 状态及实测证据见 [当前状态](../../docs/04-current-state.md)。 -2026-10-14正常Research服务helper经Data服务鉴权完成一条真实原文预览,保留监管分类、 +2026-10-14初次部署回执:正常Research服务helper经Data服务鉴权完成一条真实原文预览,保留监管分类、 无写入;这不是认证入站HTTP或owner授权验收。详见 [发布回执](../../docs/validation/event-fact-review-deployment-2026-10-14.json)。 + +后续逐条预览31条旧监管事实,只在明确阅读原文后纠正一条SoFiUSD科普文章;同一冻结请求由第二个独立helper进程重发,复用原审计和替代事实。剩余30条仍未纠正,不能把v3规则输出当成完整语义审核或解除E2输入门槛。认证入站HTTP、完整服务恢复与正常owner搜索待验证。见 [单条生产回执](../../docs/validation/event-fact-single-production-2026-10-14.json)。 + +同轮后续对两条BTC旧监管事实明确检查归档后保留监管分类,各追加一个v3确认版本,无撤回;其中SEC事实仅有标题,不能宣称完整正文审核。确认后的owner预检仍待读取,不宣称质量守卫已解除。见 [确认回执](../../docs/validation/event-fact-btc-confirmation-2026-10-14.json)。