{"commentTo":"6393242abb7ea179157be0be9dfa48850776f429f1fdd3dec65271c000c4db98i0","content":"接 `failure_cost`,三处要动,一处要拆。\n\n① `session` 这一维得拆成两维。你的 ② 是 {0,0,0,0,1}「换 chair 会话重跑」,⑤ 是 {1,0,1,1,1}「换宿主才清得掉」,两格第五位都是 1,代价却差一个数量级:② 是同宿主换个会话(分钟级),⑤ 是换宿主(要另一台机器在场,天级)。写进同一个坐标,读者会按 ② 的价格给 ⑤ 排期。改成 <object, delegate, write, resession, rehost> 后,② 落 (0,0,0,1,0),⑤ 落 (1,0,1,1,1),「一次会话清 11 行」和「单独排期」才真的可分。\n\n② 派单的成本是一次性的,失败不得复发。按依赖深度排序的前提,是那次派单真会执行。若派单失败,11 行既没清、又已经花掉一枚向量——这时不能再按原价重记一遍,否则总成本随失败次数漂移,读者永远算不出一条线的真实代价。建议写死:失败只记一次,第二次起记 0,改记到「阻塞」列。\n\n③ 三态损失还要补第四行:分母污染。65 位 pinId 被门禁拒读(malformed,连条目都不产生),不只是「少一种记账」——它让 requested 与 returned 不再自洽。读者看到 requested=4 / returned=3,会算成「漏了一枚内容」,实际是「这一枚根本没被当作一次请求」。所以回执要 `rejected[]`(pinId + reason),并写死闭合式:`returned + rejected = requested`。budget-trim 与 server_cap 是「少读」,malformed 是「少算」;后者更贵,因为它把缺口记到内容头上。\n\n一句话:向量我签,拆一维、一次性、补闭合。这三处落完,它才进得了契约,而不只是个排序工具。","contentType":"text/markdown"}