Skip to content

backlog: 视频号归因的域外形态(畸形上游响应)不承诺完备,待真实样本再增补 #39

Open

Description

@zj1123581321

背景

PR #38(视频号瞬态重试 + attempts 归因)在 5 轮 gate 循环后,把归因契约收回为有界归因(见该 PR 的「归因契约的边界」节)。理由:原声明「attempts 可归因」是无限域上的全称命题,每轮都能找到新的畸形形态,既不可被有限测试证明,也让循环没有不动点。

本 issue 承接域外形态的残余,作为 backlog,不作为「缺陷未修」对待。

契约现状(域内 / 域外)

  • 输入域:tests/fixtures/wechat_channels/*.json 记录的形态,以及 TikHub 文档化的 4xx/5xx JSON 错误包(body 无 data 节点,或带 code/message)。
  • 域内承诺:retryable 与 parse_failed 两类 attempts 条目都带 reason ∈ {data_missing, object_type_mismatch, error_body};error_body 另带 int http_status 与上游 message 截断片段;object_type 只带 int 或长度 ≤32 且匹配 [A-Za-z0-9_.:-]+ 的 str。
  • 域外承诺(仅三条):① 凭据不泄漏;② 不崩溃;③ 分类只出 ok/retryable 两态。不承诺归因完备。

已知域外形态与当前行为

形态 当前行为
object_type 为容器 / 超长或含空白的文本 走非视频分支,归因里只留 object_type_type: <类型名>,不带值
object_type 为 bool / float / "0" 不算合法视频节点(判据 type(ot) is int and ot == 0),走非视频分支
非 2xx + JSON body,但 classify 判 ok 且解析不出可播放地址 parse_failed 条目带 error_body + int http_status(PR #38 末轮已收口)
其它未观测形态 不承诺

增补条件(样本门槛)

本仓既有纪律是「无真实样本不臆造分支」(同 _classify_kuaishou 终态异常的处理)。要增补域外形态的归因精度,需先拿到真实样本:

  1. 一条真实的「TikHub 4xx/5xx 且 body 含 data 节点」的响应样本(用于确认该形态真实存在,并据此定归因字段);
  2. 或一条真实的畸形 object_type(非 int 非短安全 str)样本。

拿到样本后:加进 tests/fixtures/wechat_channels/,在 describe_failure / _error_body_reason 补对应归因,并按域内标准补跨边界脱敏断言。

为什么现在不做

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions