mirror of
https://github.com/sinanyuntu/trade-message-center.git
synced 2026-09-17 13:22:11 +08:00
3.0 KiB
3.0 KiB
执行计划:从 OneTalk 图片链路移除宽高
1. 锁定共享 v6 无宽高合同
- 在写任何 symbol 前,对
OneTalkImageContent、normalizeImage、metadataFrom、createSendObservationCorrelator和 protocol version 分别执行 GitNexus upstream impact,审查 HIGH/CRITICAL 结果后再改。 - 修改 shared image type、exact key list 和 guard,删除 image-dimension constant;把 v5 wire version 统一提升为 v6。
- 更新 contract fixtures:无宽高图片有效,带任一 canonical width/height key 无效;移除 dimension bounds cases,保留 size/URL/nullable metadata 边界。
2. 收敛 MAIN 发送、live decode 与确认
- 删除 raw image decoder 对 width/height 的读和校验;测试 raw image 缺字段、单字段、错误值和正常值都产出相同的无宽高 canonical content。
- 删除上传 metadata 与 correlator expected/match 中的 width/height;保留
tmpKey隔离、候选 ID 优先、unique composite fallback、账号/目标 fence、45 秒 timeout 和 ambiguous failure。 - 更新 extension test fixtures、WebSocket tap / decoder / image-send / send-observation tests;新增“无宽高 live sent image 使实际 pending send 得到 confirmed_sent”的特征测试。
3. 清理读模型、支架和持久化数据
- 更新 server read-projection / websocket test images,使 v6 public result/read payload 不含 dimensions;断言旧 canonical dimensions 被 strict guard 拒绝。
- 更新 harness validator 与 image display,删除 dimensions 输出;只以 shared content contract 验证 v6 frames。
- 用 Drizzle custom migration 新增
0009数据迁移和 journal entry:仅移除 image JSONB 顶层 dimensions。更新必要的 migration/read tests;有TEST_DATABASE_URL时以 60 秒硬超时运行 integration test,断言升级前数据被清理并可读。
4. 文档、质量门和真实联调
- 更新当前 docs 的 normalized image contract/confirmation fingerprint,明确 raw dimensions 被忽略;不重写 raw capture 或归档任务记录。
- 运行 targeted contract, decoder/websocket/image-send/send-observation, server read/WS tests;随后
pnpm typecheck、pnpm build、pnpm test、pnpm format:check、pnpm --filter @trade-message-center/server db:check、git diff --check。 - 执行 GitNexus
detect_changes({scope:"all"}),检查变更仅落在 shared contract、MAIN observer/send、server migration/read tests、harness 与相关 docs。 - 在 v6 维护窗口按“停旧 server → migrate → v6 server → v6 extension/Mind client”运行。使用 Chromium 发送一张无敏感测试图片,确认 trace 经 live observation 到
confirmed_sent;没有该窗口时记录为未验证。
Rollback point
在执行 production migration 前,可回滚工作树和 release artifact;migration 执行后不回填尺寸。若要恢复旧客户端,必须先停止 v6 流量,再发布一个新的、显式记录的数据/协议迁移,不能修改或撤销已执行 migration。