mirror of
https://github.com/sinanyuntu/trade-message-center.git
synced 2026-09-17 13:22:11 +08:00
3.4 KiB
3.4 KiB
统一 OneTalk React 卡片 reader 实施计划
Preconditions
- 在修改 shared symbols 前,对 contract normalizer、rendered-card validator 和 card observer entry 执行 GitNexus upstream impact;若 risk 为 HIGH/CRITICAL,先向用户报告 blast radius。
- 读取
trellis-before-dev和受影响 layer 指南,确认当前 worktree、contract build 输入与现有测试命令。
Ordered implementation
- 以 failing storage test 复现
listPending的缺失 helper,并覆盖 v9→v10 record 保留、账号/status scope 与禁止getAll()。 - 仅新增 rendered-card ledger 的
[channelAccountId, status]与[channelAccountId, conversationId]indexes,升级 IndexedDB 到 v10;将listPending改为必填账号的 indexed read,并让既有clearConversationHistory以第二个 index 删除精确会话;不改变 ledger record、ACK 或其它清理语义。 - 提取 contract-owned product URL canonicalizer,使基础 product content 与 rendered-product validator 共享同一 host/path/ID 规则;保留基础 product 行为的回归。
- 收窄
OneTalkRenderedProductContent:删除storeImageUrl,改 rendered product URL 校验为 canonical product reference + exactproductId,更新 export/types/contract fixtures/fingerprint assertions。 - 将 card observer 重构为 common bounded identity/Fiber helpers、strict classifier 和三种 typed reader。保持 observer lifecycle、selected conversation before/after check 和 base evidence 原样。
- 扩展 shared product item projection 以接受
productName;实现 order、inquiry、product 的 exact template predicates 和白名单 projection。商品仅写product.imageUrl,不读取或输出hsfImg。 - 为三类 reader 添加真实形状 fixture,覆盖 valid path、every classifier false path、缺失/unsafe fields、会话失配与 exact output schema;更新 contract and observer targeted tests。
- 运行 extension/contract focused tests,然后 format/typecheck/build。检查 bridge/coordinator regressions,确认无协议、ledger 状态机、server schema 或 migration diff。
- 在本地 diff review 后,用 Chrome 只读探针验证三类 runtime predicate;若需要 reload extension/reopen OneTalk tab,先取得用户授权。仅在基础 message candidate 已确认且 Bright 已认证时验证 ledger/DB 后续边界。
Validation
pnpm --filter @trade-message-center/onetalk-contract testpnpm --filter @trade-message-center/chrome-extension test -- onetalk-rendered-card-observer- 相关 contract/extension test files 的 Node test 命令(单次 backend command 如需运行,上限 60 秒)
pnpm format:checkpnpm typecheckpnpm buildgit diff --check,GitNexusdetect_changes(),并复核所有 changed symbols/flows- Chrome read-only runtime probes;可用时再报告 ledger/ACK/DB 证据,不能以 bundle 或单元测试替代。
Rollback and risk controls
- 在 shared contract validation 失败或 contract build 不一致时,不加载新 extension bundle;修正 contract parity 后再验证。
- 不引入 URL fallback、通用 props crawl、DOM text inference 或自动点击来提高命中率;任何未知模板继续拒绝。
- 只允许 rendered-card ledger 的 v10 index-only 迁移。若后续发现外部环境已有携带
storeImageUrl的 rendered-product rows,停止部署并另建兼容/数据迁移任务,不能在本 task 中静默接纳旧 shape。