Files
Jyotisha/docs/tasks/PROGRESS-rectification-midnight-date-anchor-20260920.md
T
jesse-ux b85c4a686a
Independent Staging Quality Gate / validate (push) Successful in 13m27s
Independent Staging Quality Gate / publish (push) Failing after 1h0m1s
fix(rectification): anchor candidate windows to civil dates across midnight
Carry explicit local date intervals instead of inferring the day from clock
order. Cluster width, delivery, adoption, and reports keep the actual civil
date; adopted date is stored separately from the reported birth_date.

Algorithm identity is scoring-9 / spec-v5. Scoring weights, confirmation
thresholds, and Skill version are unchanged. Isolated Linux final-3 gates
passed; four pre-existing Python failures remain. This is not a production
release.
2026-09-21 02:55:00 +08:00

242 lines
29 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.
# PROGRESS · 跨午夜日期锚点与分段跨度(2026-09-20)
## 基线与边界
- 实际基线 `3be740f84d12b098b27b88105a88b5e2d8dd0ead`,指定工作树开工干净;任务书基线的后代。
- 核心代理整合日期窗口/D1/D2/报告与记录;D4 代理独占采用迁移及外围同源读取;transition 代理独占 transition 构建/符号查找/相关专用测试,交回后核心整合消费端。均在指定工作树执行,不 commit/push;主会话负责预检、基线全量/build、独立验收。
- D1/D2/D3 已批准,后续真实用户 D4 明确授权跨日采用及向后兼容新迁移(20000/30000);覆盖原本轮不改 DB 的限制,仅限任务所需。旧迁移不改,历史不猜补。不改分数/权重/阈值、Skill、workflow。历史结果不重标、不删除。
- 请求 `candidate_intervals[{start_at,end_at}]` 明确本地日历日期。候选 `window_index` 是稠密采样序号,`window_offset_minutes` 是相对首段起点的真实分钟,`segment_index` 区分声明的不连续段;`candidate_date` 保留实际日期。粗采样不以序号差冒充分钟,分段不以 min/max 填平。
## T1 修前红测(实现前实跑)
| 套件 | pass | fail | 事实 |
| --- | ---: | ---: | --- |
| Python `test_rectification_midnight_date_anchor.py` | 3 | 3 | 申报中心落次日、late_night 含次日、跨午夜簇倒序 |
| TS `rectification-midnight-date-anchor.test.ts` | 0 | 3 | 请求无日期字段、credible union 钟点 min/max、plateau 1≠3 |
原始日志位于本工作树 `artifacts/midnight-date-anchor/red-python.txt``red-frontend.txt`。核心失败输出:
```text
assert datetime(2000, 6, 15, 0, 10) in moments # 实际从申报日23:55开始
Extra items in the left set: '2000-06-16'
At index 0 diff: ['00:00', '23:58', '23:59'] != ['23:58', '23:59', '00:00']
request candidate_intervals: actual undefined
credible union: actual ['00:00','23:59'], expected ['23:58','00:00']
plateau: 1 !== 3
```
前端首次仅是依赖缺失(zod),不计为业务红测;在本树建立 node_modules junction 只读复用主仓依赖后,重跑得上述真实断言失败。未安装或修改共享依赖。Windows symlink 缺权限,使用目录 junction;不用于 build。
## 开工核对
- 已完整读 AGENTS/CLAUDE、前端 AGENTS/DESIGN/VOICE、日期任务、研究定论§6、错误台账;按模块/接口/午夜词检索并完整读 BUG-098/981/982/983/984/985。
- 旧防复发仍存在:981 候选日期 helper984 `readV9EngineScoringIdentity` 完整 pair 与写入前 `assertV9ResultWritable`985 同机 native/legacy 严格字节比较。098 枚举兼容未覆盖日期锚点/后续宽度,故不能代替本轮回归。
- 主会话预检:remote verifiedfragment/adapters okfocused 23 pass / 1 fail;失败为既有 `.workbuddy` 镜像路径断言,不伪造路径、不修改测试。
- 主会话公开 healthweb/API 均 `8d0359fc62d525e2b7c1e5c7fe6df37f57833ad4`migration `20260920010000`,status ok。仅证明前置部署,不代表本轮已部署或真人通过。
- 实际 python 3.11.7python3 launcher 不可用;Docker 29.8 可用。Linux完整基线由独立验收代理负责。
## 执行状态
| 项目 | 状态 |
| --- | --- |
| T1 红测 | 已完成首批,边界用例随实现补充 |
| T2 日期契约与 D1 | 本地实现,真实schema/动作/DB与首次HTTP opening测试已过;受控浏览器pending |
| T3 三处跨度与分段投影 | 本地实现及定向通过;最终全量待独立快照 |
| T4 交付说明及异日采用安全 | D4 迁移真实 DB43/43,实际日期/前一天/后一天交付与 native SSR 贯穿通过 |
| 同机公开 AA A/B、真实 golden | 独立子进程三 AA × 七投影逐位相等;原生 golden 已重新生成 |
| T5 最终记录及真人清单 | 已更新本地记录;真人/部署及最终门禁 pending |
所有未实跑项均不计通过,不提前标 resolved。
## 定向收口证据(2026-09-20
| 证据 | 实跑结果 | 日志(本树 artifacts/midnight-date-anchor 下) |
| --- | --- | --- |
| Python 核心日期、transition、VedAstro、growth 四文件 | 68 passexit 0 | `final-python-targeted-68.txt` |
| TS 日期15、transition、engine contract、range delivery、adopted date 五文件 + tsc | 61 pass / 0 fail / 0 skiptsc exit 0 | `final-frontend-targeted-61-tsc.txt` |
| 最终 D4 与窗口迁移(含widen/pending guard)标准真实 PostgreSQL | 56 pass / 0 fail / 0 skipexit 0 | `core-widen-db-final/database-tests-final-3.log`;早期43/43仍留 `dated-window-adoption-db-final.txt` |
| 三公开 AA 同机独立子进程 A/B | 3×7 相等,numeric tolerance=0 | `delivery-native/independent-process-aa-ab.json``delivery-native-generation.txt` |
| 主会话独立 VedAstro + growth | 21/21 | 主会话原始日志 |
| 固定 VedAstro1.23.26 基线 | quick0Python891/1skip、前端3588、lint0error/119warning、首页Static;宽glob296pass/4既有fail | 主会话 fixed126 原始证据,不替代实现门禁 |
精确收口命令(cwd 为本树或 frontend):
- `python -m pytest tests/test_rectification_midnight_date_anchor.py tests/test_rectification_dated_transitions.py tests/test_rectification_v5_vedastro_validation.py tests/test_api_server_growth_contract.py -q`exit0。
- `node node_modules/tsx/dist/cli.mjs --test tests/rectification-midnight-date-anchor.test.ts tests/rectification-dated-transitions.test.ts tests/rectification-v9-engine-contract.test.ts tests/rectification-range-delivery-20260907.test.ts tests/adopted-birth-date.test.ts`exit0;随后 `node node_modules/typescript/bin/tsc --noEmit --incremental false`exit0。
- `python scripts/research/midnight_date_anchor_regression.py --baseline <独立基线树> --output artifacts/midnight-date-anchor/delivery-native --golden --golden-path frontend/tests/fixtures/rectification-midnight-date-anchor.delivery.native.json`exit0。旧 native/final.native 保留过程证据并纳入源码快照(无当前测试消费者;native仍是生成器默认目标,open(x)防覆盖),不删除或伪作最终响应;最终贯穿测试读取delivery.native。所有fixture原生生成,未手改响应。生成器 open(x) 不覆盖旧证据。
身份为 scoring-9;显式区间 calculation-spec-v5,缺字段 legacy 保留 v4 硬 hash。首次 `green-python-targeted.txt` 实为 81pass/3faillegacy spec误变),不得当作绿日志;修复 explicit-only v5 后重跑已过,旧日志保留。首版 same-process A/B 有裸模块缓存风险,只引用 independent-process 证据。VedAstro 曾1.23.25→1.23.26漂移已记 ERR-107,不声称全程 pin。
### D1 四层证据与限制
1. 真实 `expectedAnswerSchemaFor` 首跑5绿4红,原因是新选项含 HH:MM 被原 `serverOwnedChoiceCopy` 禁止;只改中文钟点,未放宽过滤,原断言保留,随后9/9。
2. `applyRectificationChoice` 的 A/B/C/skip 真实服务动作进 dated RPC,一次写入;fakeAccounting不是浏览器/真实DB。
3. 标准 PostgreSQL 独立A/B/C/skip选择与reload pending=false;服务测试reload后不重问。首次HTTP opening→persisted focus独立1/1通过,真实300分钟窗、`probe:block_scan.midnight_side` ID,四选项消费真实persisted schema,不含次日;HTTP依赖隔离测试不等于受控真人。
4. 真人浏览器缺受控登录态,BLOCKED;不能由前三层冒充通过。
### 红线与既有断言变更
| 文件 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| `account-api.test.ts` | `birthTime: resolveAppliedAccountBirthTime(...)` 源码断言 | spread 同源返回,新增 activeDate/activeTimezoneOffset 断言 | D4 同源 hydration,未删旧行为测试 |
| `consultation-route-service.test.ts` | select 仅 birth_date 与 time | select 增 active_birth_date/active_birth_timezone_offset/active_birth_provenance | D4 咨询 date/time/offset 读取 |
| `server-owned-birth-profile.test.ts` | ACCOUNT_BIRTH_SELECT 原字面量 | 增同三字段,其他保持 | daily/synastry 共用服务端同源资料 |
| `test_rectification_v5_vedastro_validation.py` | 单一 happy-path | dated false/true 参数化,新增真实候选日期断言 | 不增 handler/__new__ 点,不变通过和 can_confirm=false 断言 |
| `rectification-engine-version-cross-midnight.test.ts` | live default/Python 源码也用历史 CURRENT=8;混合身份将旧无日期响应标为9/10 | 独立 LIVE_CURRENT=9,历史 CURRENT=8/PREVIOUS=7 与 golden 不改;新增8失效/9命中;9/10混合测试改用真实 dated delivery golden10仅模拟滚动身份 | 本轮日期契约可靠升级;不能把历史 fixture 重标或将无日期响应冒充9 |
| `rectification-v9-case-service.test.ts` | deepEqual仅 start/end clocks | 原clock与stage断言保留,expected显式增加实际日期;late_night同日两段与pending=true | 新开案日期契约,不用被测helper生成expected,不放宽成subset断言 |
| `rectification-window-widen-20260907.test.ts` | stub/调用名为旧case_window RPC;返回仅clock | dated_window RPCstub返回日期区间且reload parser额外断言日期 | 对齐已批准RPC;原半径30、source、snapshotCurrent=false、不重写probe/inference断言全部保留;不代表生产跨日widen语义已过 |
三文件定向重跑55/55、tsc exit0,原日志 `three-legacy-contract-tests-tsc-green.txt`。前次54/55红日志 `three-legacy-contract-tests-tsc.txt` 保留:旧混合身份测试把算法8无日期响应标成9,触发日期覆盖校验;改用真实算法9 golden后通过。精确命令为 frontend 下 `node node_modules/tsx/dist/cli.mjs --test tests/rectification-engine-version-cross-midnight.test.ts tests/rectification-v9-case-service.test.ts tests/rectification-window-widen-20260907.test.ts`,随后 `node node_modules/typescript/bin/tsc --noEmit --incremental false`
主会话阶段红线审计及最后限定复核 `independent-redline-late-prefreeze-review.json`:真实Home `(app)/page` states34/refs37/lines1826、API lines10931/methods218/__new__ hits31均不变;无Skill/workflow/deploy/依赖声明/旧迁移diff;评分/权重/确认门未改,仅algorithm/spec日期身份升级。最终AA与全量仍待验。新文案已对照 VOICEDESIGN 同批记录 chart-library 与 range-delivery 行为,无新状态/入口/动画。
## 限定收口与最终待验边界
- 实现快照最终 quick、前端全量、lint、build与首屏gzip,由独立验收负责,不争抢 .next。
- widen复核发现真实缺陷:旧30000只依baseline+新clock重算,丢持久绝对日期/已选side。新增真实DB红测后仅改本单30000:普通分钟基于持久日期扩窗;D1首次A/B/C/skip建立服务端 `midnight_allowed_intervals`,后续narrow保留允许集合,不把C缩单段误认选侧;请求无法满足side/containment/strict-width/max-width时整事务回滚,case/result全行(含时间戳与invalidation)不变。普通advance不物化pending=false。旧无allowed provenance不猜扩宽,保留原段。
- DB→reload→request builder覆盖普通前日、A/B、C/skip与双段;另有真实SQL dossier/compute→scoreAndPersistCurrentEvidence→minute `/score` fetch捕获,断言stage=minute与同日两段;网络在捕获后故意400终止,仅证明请求链,不虚报真实engine执行或结果写入。首次HTTP opening链主会话独立1/1,真人仍pending。
- widen定向DB已绿;标准套件首跑53/54archive副本无.git导致git check-ignore环境红),隔离快照git init后前版55/55、exit0。最终限定复核又补pending guard:显式NULL拒绝;pending=true只能原区间不变,缩窄/选侧必须false。新负例真实红12pass/2fail1业务+父汇总),guard后14/14;全case/result事务不变及不变true兼容都通过。最终SQL SHA256 `a18e59ad1a9ca960eab0497e47f8a6107f6e171a4f0175928a21689835dce895`,最后标准 `npm run test:db` 56/56、0fail/0skip、exit0,原日志 `core-widen-db-final/database-tests-final-3.log``.exit`;这是最终guard源码的标准DB绿,前版日志保留不替代。阶段快照从固定3be740f8 git archive保真实symlink,复制清单 `core-widen-db-1-copy-manifest.txt`,依赖在容器独立npm ci,无共享依赖修改。红日志 `core-widen-db-1-attempt-1/red-widen-2.log` 中7项业务失败+1项terminal fixture字段错误+父测试汇总失败,不把fixture错误冒充业务红;首修SQL列名歧义与fixture错误在 `green-widen-1.log` 实为红,修后 `green-widen-2.log` exit0。后续service捕获独立 `green-widen-service.log` exit0。
- saved civil 独立模块/accept route/负例测试已收口,主会话独立4/4;legacy缺字段兼容。首次相对TSX配置路径导致子进程失败,绝对配置路径重跑绿,属于命令配置,不冒充业务红绿。
- transition 代理限定三项已冻:clusterEquivalent日期等价与build-state metadata、collection active subset存活候选真实sign、Python lagna文案/TS parser/board绝对日期。Python20/20、TS81/81、tsc0、lint0,日志 `subsets-*`;新增真实native lagna fixture,旧golden与旧断言未改。DESIGN已记录完整civil日期与legacy HH:MM,无入口/颜色/状态增加。
- 上游 dossier/compute 显式畸形 interval 已 fail closed。报告链限定只读复核涵盖consult/reports/worker/longformeffective date + 实际采用offset + dated intervals未发现可达缺陷;主会话sampler41/41含闰日5点与双段31点。此为源码链+定向证据,不是受控真人或最终全量。
- 受控真人、生产迁移/部署/health 全部 pending;见 BLOCKED 与既有真人清单日期锚点补充。SQL boolean权限fixture不证明真实候选可确认。固定offset不等于IANA/DST修复。
## 统一冻结交接
核心、transition、D4及opening限定实现全部停写;本次交接包含文档冻结,HEAD仍为 `3be740f84d12b098b27b88105a88b5e2d8dd0ead`。最终核心定向70/70`core-final-targeted-70.txt`),最后guard tsc/lint各exit0`pending-guard-final-tsc-lint.txt`),标准DB56/56。独立runner内 `docker ps -a` 空,临时fixture已清理,DB runner释放给主会话统一快照验收。尚未完成的统一全量/build/gzip/最终AA以及受控真人/部署不因冻结变成通过。
新增交付清单23项(22代码/测试/native fixture + 本PROGRESS),原生native/final.native过程证据纳入快照且保持原样;artifacts日志、node_modules junction、.next不属于源码新增清单。未commit/push、未新建worktree、未改共享依赖。
## final-1 后三项 Python 合同测试限定解冻(2026-09-21
主会话 final-1 发现 Python 三个 glob 为338pass/11fail,其中原4、本轮新增7。本代理仅获准解冻下列3测试文件与本PROGRESS;其余生产、SQL、历史golden继续冻结,另4项validation integrity由其他代理处理,本代理未动。以下修正不是全量验收通过,完成定向后再次停写交回。
| 原值 | 新值 | 原因 |
| --- | --- | --- |
| `tests/test_dasha_transition_proximity_cross_midnight.py` 固定algorithm8、全局spec常量v4 | current algorithm9、常量v5;无interval请求仍逐项验证legacy spec v4及基线固定SHA256 `bfdee46405a38f2508a2071929b60d79d15a78ca0e1e81f6c7ffd1652e301a08`;显式interval验证完整v5 spec与不同hash | 日期契约合法升级不能误改legacy语义;固定hash由只读基线3be740f8实算,未用被测helper动态生成expected |
| `tests/test_rectification_relative_support.py` current algorithm8 | 仅current algorithm9及对应注释;policy3、proportional与全部数值断言原样 | 缓存身份升级,不是policy、prior或评分变更 |
| `tests/test_rectification_engine_memoization.py` live receipt与历史8 golden直接同key集合比较 | 专用跨版本helper先精确校验4个新增metadatadated-v1、原fixture同日12:0012:02绝对interval、offset8、空timezone ID),旧UUID硬值保留,新UUID独立用hashlib/json/uuid5与固定algorithm9/policy3公式校验;仅这4字段与代表UUID作比较投影,其余receipt key集合及所有candidate score仍用原严格比较器;snapshot身份分别断言8/9,余字段也严格比较 | 历史golden不重标、不重生成;未知额外key不得被泛化metadata删除吞掉;新增7项真实引擎响应变异反向断言涵盖4 metadata、UUID、未知key与confirmation_allowed。原score+1e-2/time变异测试保留,浮点容差abs2e-3/rel5e-4不变 |
定向命令(cwd为本任务工作树,实际使用可用的 `python`,非Windows不可用的python3):
```text
# 修改前原红:3 failedexit1
python -m pytest tests/test_rectification_cross_midnight_gate.py::test_fixed_scoring_identity_is_exposed_without_changing_input_contract tests/test_rectification_engine_memoization.py::test_score_candidates_matches_baseline_golden tests/test_rectification_relative_support.py::RelativeSupportScaleTest::test_holdout_gate_keeps_proportional_default -q
# 最终绿:34 passed in 11.04sexit0
python -m pytest -o addopts= tests/test_rectification_cross_midnight_gate.py tests/test_rectification_engine_memoization.py tests/test_rectification_relative_support.py -q
```
原红保留 `artifacts/midnight-date-anchor/final1-python-contract-red.txt`;最终绿为 `artifacts/midnight-date-anchor/final1-python-contract-green-final.txt`(含命令与exit)。较早的 `final1-python-contract-green.txt` 也是exit0,但未包含最后新增snapshot余字段比较,以final日志为准。34项为bridge9 + memoization21 + relative_support4;只选bridge,不同时collect源文件,未重复计算9项。`-o addopts=`仅移除仓库默认quiet参数以显示准确汇总,不改测试断言或选择范围。
最终测试SHA256
| 文件 | SHA256 |
| --- | --- |
| `tests/test_dasha_transition_proximity_cross_midnight.py` | `8e38acb8fbc747906d89eadb4a429a8fbc085e34f638c342d1f9cad8e9a1f5b4` |
| `tests/test_rectification_engine_memoization.py` | `d4f3fd4716d1c514ce443db979cd007c5a45ac0a38a7d65edb1170340c96ef97` |
| `tests/test_rectification_relative_support.py` | `068d20e52a9908e58012a261dd5bf9bc54c42d5fa7fa393f80fcbf7954181ade` |
历史 `tests/golden/rectification_engine_memoization_v1.json` 无git diffSHA256仍为 `6266e448d7dad204b264cbe8f9bcf4c36e02286794764a94edb9e2ce4d0e3015`。本次没有运行全量、quick、DB或build,没有占用runner、改生产/历史golden/共享依赖、commit/push或新建worktree。主会话报告final-1同机Linux AA为21/213×7投影)逐位相同,排除新增metadata及identity IDs;此不等于整个response无变化,也不代替最终统一门禁或真人/部署验收。
### 独立复验拦截误加 snapshot 断言与限定纠正
上述 `green-final` 34pass仅为当时默认环境实测,不是跨环境闭环。主会话独立同范围 `PYTHONUTF8=1 python` 实测26pass/8fail,真实日志 `artifacts/midnight-date-anchor/independent-python-contract-repair.txt` 原样保留。8项均在本轮误加的整snapshot比较处、进入变异前失败,首差异为 `candidate_feature_snapshot.feature_hash`:历史 `36190982db75d3c9fe7c584607f25342531049c3d751060075519dbbd68033db`,独立环境实际 `ebb4aeae08a4e643012de59d65882c01e8d8e501ba18c9fdcc0c2998b3a5e23e`。这是验收测试误加跨进程绝对hash断言被独立复验拦截,不是生产回归。
只读复核两次均为同一Anaconda Python3.11.7、swisseph2.10.03,测试及scoring模块均从本工作树导入;改变UTF8模式可复现,但随后UTF8=0子进程也产生第三个hash,因此不能把UTF8本身断言为根因。两进程payload差异定位到 `features[*].fingerprints.shadbala``static` → 外层 `feature_hash`,该次score/receipt相同。生产 `_feature_hash` 对未量化结果做JSON SHA256BUG-733/985已明确禁止跨进程固定浮点hash。原memo helper刻意仅比较candidate_scores/decision_receipt,原同进程缓存差分与反向测试均仍在。额外只读派生探针在未处理static payload后续变更时失败,不作为派生链已验证证据,也未据此修改生产或golden。
| 原值 | 新值 | 原因 |
| --- | --- | --- |
| 本轮额外新增 `_assert_tiered_equal` 整个snapshot(只桥接algorithm8/9 | 限定撤回这一个新增调用,加BUG-733/985注释;原helper、原score/time反向、原容差不动;算法8/9、4metadata、独立UUID公式及7新增反向仍全部保留 | 恢复原合同边界,避免对包含未量化浮点派生指纹的历史golden重引绝对hash不变量;不是删除既有断言、放宽评分门或修生产 |
获准仅再写memo测试与本PROGRESS,实际定向双跑:
```text
python -m pytest -o addopts= tests/test_rectification_cross_midnight_gate.py tests/test_rectification_engine_memoization.py tests/test_rectification_relative_support.py -q
# 34 passed in 11.35sexit0
PYTHONUTF8=1 python -m pytest -o addopts= tests/test_rectification_cross_midnight_gate.py tests/test_rectification_engine_memoization.py tests/test_rectification_relative_support.py -q
# 34 passed in 10.73sexit0
```
日志分别为 `artifacts/midnight-date-anchor/final1-python-contract-corrected-default.txt``final1-python-contract-corrected-utf8.txt`,均含原命令与exit;以这两份为最终定向证据,先前红绿日志不覆盖。memo测试最终SHA256更新为 `98808b8535f05f81d35a71de067928f762a6aae9fe9e8a2d9c44528f04c6b508`,上表d4f3为被独立复验拦截的中间版;另外两个测试SHA不变,历史golden SHA仍为 `6266e448d7dad204b264cbe8f9bcf4c36e02286794764a94edb9e2ce4d0e3015`。再次停写交回,未写其他文件,统一全量/quick仍由主会话负责。
## Grok 接续(2026-09-21
唯一写入执行者按 `TASK-rectification-midnight-final-grok-20260921.md` 串行完成 T1–T5。不重做已闭合功能。HEAD 仍为 `3be740f84d12b098b27b88105a88b5e2d8dd0ead`。未 commit/push/deploy,未改分数/权重/确认阈值、Skill、workflow、依赖或权限。旧 freeze/report/golden/archive 原字节保留。final-1 失败日志与过程红日志不覆盖。
### T1 三合同测试独立复验
接手 SHA 与交接一致:memo `98808b8535f05f81d35a71de067928f762a6aae9fe9e8a2d9c44528f04c6b508`PROGRESS 当时 `1c0d81d7e78da93e2b060d4095112245ea3123508fe64b693c0c3691afc485ab`;历史 golden `6266e448d7dad204b264cbe8f9bcf4c36e02286794764a94edb9e2ce4d0e3015`
```text
PYTHONUTF8=1 python -m pytest -o addopts= tests/test_rectification_cross_midnight_gate.py tests/test_rectification_engine_memoization.py tests/test_rectification_relative_support.py -q
# 34 passed in 10.84sEXIT_CODE=0
```
独占新日志 `artifacts/midnight-date-anchor/independent-python-contract-reverify-grok-20260921.txt`。原 `independent-python-contract-repair.txt` 与两份 corrected 日志保留。
### T2 扩展身份最小补齐与派生脚本审核
`PRODUCTION_FILES` 增补本轮 `candidate_window.py``decision_policy.py``refinement_packet.py``api_service.py`。legacy12 算法与旧 freeze 未改。`reported_offset_sweep` 复用 `implementation_identity()`,未改其源码。current contract / 新报告 / 归档 / 派生脚本不进入 identity。
新增 `test_midnight_date_anchor_modules_remain_in_extended_identity`(不依赖 freeze 文件),1 passed。派生脚本独立审源码:校验 report.frozen_record==freeze、freeze_record 身份、freeze≤start≤finish、20/900 完整计数、非独立/禁调参、六 runtime 键值类型、historical metrics 与 unfrozen diagnostic、previous 链、原子替换与非自引用。脚本 SHA 仍为 `c4d06bc82c7e64cf4c9a53401f126b24caa3e11225f8d8d0be9e7399a31e4dbc`,未改脚本。旧五份归档 hash 与交接清单逐字节一致。
| 文件 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| `tests/test_sealed_holdout_contract_freshness.py` PRODUCTION_FILES 最小集 | `scoring_service.py` + `dasha_transition_proximity.py` ⊆ PRODUCTION_FILES | 原断言保留;新增四模块必含、与 legacy12 不相交、禁止 contract/新报告/history/artifacts 进入 identity | 防本轮日期/回执模块再次遗漏扩展身份;不是放宽 freeze 校验 |
身份名单停写后再 freeze。evaluator `scripts/research/sealed_holdout_rerun.py` SHA `5d26d782648bbef42b5dcfe603ef2cbe697b317df6000f7c9c3fa0272504b027`
### T3 生成快照真实 freeze 与 20/900
生成包 `scratch/.../generate-bundle-1`:30 个当时已存在的新增路径(含 6 份 history 与本任务单),不含未生成报告。sourceTar `e3507fc4b903646f9bdeb16f1490d8d7119da90fb516177b57a1bb4476cffd6f`sourceIndexModified=false。restore `/work/implementation-final-2` 保真 0 差,未改 `implementation-final-1`。派生脚本单独复制到 `/work/tools`SHA 仍为 `c4d06bc8…`
首次 sealed `--freeze` 相对路径 `print(relative_to(ROOT))` 失败,但 exclusive-create 已写出完整 freeze;失败日志保留于 `/work/artifacts/generate-freeze-1`。该 freeze 通过 `verify_frozen_record`,未覆盖。续跑 generate-freeze-2 使用绝对 freeze-path。
| 步骤 | exit | 秒 | SHA256 |
| --- | ---: | ---: | --- |
| sealed freeze(保留) | 写成功 / print 1 | 0.112 | `9b9bb4b9093a9987e84f04f50b3291ceca23691f89b1d5800c81652aec13824e` |
| sealed json | 0 | 2.878 | `05458f29215d9784623f1b05f09ef590915caf46a87947f0af31dcae85808620` |
| offset freeze | 0 | 0.101 | `73848f421b133f53578dd0e0713f24fbb38a2bcf3b27609398b1ba98dbfc224c` |
| offset json | 0 | 325.993 | `093d50953d7772f037401b99517b8dcaf2a1b20aa3e8ae2e692d83c6510dd02f` |
sealed 20/20、excluded=[]、freeze≤start≤finish、`official_valid_independent_blind=false``status=blocked_independent_blind_evidence`。offset 20 cases / 900 cells / 完整网格。环境前后不变,`productionPinEquivalent=false`,history 归档字节不变。派生脚本 validate 后 `--apply`current contract SHA `731628a411b91761af4c3df8198de94b9d78edd9e25d5ae618eec23e11d8b9e0`。六 runtime 键与 `metrics_produced_by` / `current_tree_unfrozen_diagnostic` 相对旧 contract 同类型同值:`status=not_ready``confirmation_coverage_rate=0.0``top_1_rate=0.15`。四证据与获批 contract 经 scratch `generate-delivery-1` 独占回写工作树,输入输出 SHA 一致;旧归档 contract 仍 `ac81307dd3581db1e687a31100babe71cd5122781d6e5208789b5f68fb02a520`
### T4 新最终快照全门
最终包 `scratch/.../final-bundle-3`:34 新增(30+4 证据),92 既有 artifact 白名单,baselineRetained 4856sourceTar `cb7ad822d2d2a16282b121d2a02964a14912d1bdb81e6b2f2c52f84511359e3a`sourceIndexModified=false。restore `/work/implementation-final-3` 保真 0 差;身份文件与生成快照逐字节相同。独立 `npm ci`,无复用 `.next`
| 项目 | 结果 | 日志 |
| --- | --- | --- |
| tsc | 0 错误 | 容器 `implementation-final-3/frontend-tsc.log` |
| lint | 0 error / 119 既有 warning | `frontend-lint.log` |
| 前端 | 3649 pass / 0 fail / 0 skip | `frontend-tests.log` |
| 真实 DB | 56 pass / 0 fail / 0 skip | `database-tests.log` |
| build 首页 | Static `○ /` | gzip 日志 `staticHome=true` |
| JS gzip | 630727 vs 基线 626849+0.619% | `independent-final-3-gzip.json` |
| CSS gzip | 39496,不变 | 同上 |
| Python 广域 | 352 pass / 4 fail4 既存 + 0 新增 | `python-glob.log`;对照 `independent-final-3-python-failure-comparison.json` |
| quick | Quality gate passed | `python-quick.log` |
| 三公开 AA | 3×7=21/21 同机独立进程,tolerance=0 | `independent-final-3-aa-ab.json`;排除新增日期 metadata 与身份 ID,不声称整响应字节相等 |
| 环境 | 与 fixed126 基线一致;`productionPinEquivalent=false` | `independent-final-3-integrity.json` |
四既存失败逐断言对照基线 glob XML:
1. `test_long_real_conversation_reaches_vedastro_after_local_range_is_narrow`actual `04:16` 单分钟,expected `05:0705:08`,与基线同类。
2. `test_selector_changes_do_not_change_legacy_or_v5_score_bytes`actual `e20199f79f42…8edf8` vs expected `23171c47b974…e9d8f`,与基线哈希相同。
3. `test_v3_development_result_stays_shadow_only``assert 1 == 0`,与基线相同。
4. `test_frozen_implementation_hash_matches_manifest`:类别既存,expected 仍 `153fea0f69d4…528aa`actual 由基线 `f642651ef4de…cb477` 变为 `6c655b8073de…d2220`。不能称该失败字节一致。
final-1 的 338/11 与过程红日志保留,不改写成通过。容器完整产物在宿主 scratch `implementation-final-3/`
### 结论(不发布)
| 项 | 判定 |
| --- | --- |
| 隔离 Linux 最终门(tsc/lint/前端/DB/build/gzip/quick/AA/0 新增 Python 失败) | 通过 |
| 四既存 Python 失败 | 未通过(基线同类;第 4 项 actual hash 已变) |
| 受控真人 / 登录浏览器 | 环境缺口,见 BLOCKED 与既有 testing 清单 |
| 部署 / staging health | 未做;BUG-982/983 仍 investigating |
| commit / push | 未做 |
改动范围:扩展身份四模块入 `PRODUCTION_FILES`、最小身份回归、真实新 freeze/20/900/派生 contract、文档与本进度。生产评分常数与确认门未改。停止。