Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f878ac9
Fix held AFD knowledge rules with versioned owner evidence
tzhouam Oct 9, 2026
e4f9583
knowledge: resolve Jiuwen source holds with owner-scoped rules
tzhouam Oct 9, 2026
8be77eb
Preserve intake source branches and scope new rule IDs
tzhouam Oct 9, 2026
7892557
knowledge(vllm-omni): resolve reviewed owner knowledge holds
tzhouam Oct 9, 2026
95472b5
knowledge: publish reviewed Jiuwen swarmchat shadow contract
tzhouam Oct 9, 2026
5c33e28
Resolve verified hold alerts and enable owner-authorized gated public…
tzhouam Oct 9, 2026
4fa13eb
knowledge(vllm-omni): cover reviewed nightly shadow sources
tzhouam Oct 9, 2026
2b113bd
Trace calibration calls and retain gate-equivalent diagnostics
tzhouam Oct 9, 2026
8b1800b
Audit calibration evidence against complete pinned upstream sources
tzhouam Oct 9, 2026
aedd5e1
knowledge(minicpm): separate audio and vision graph contracts
tzhouam Oct 9, 2026
6439a25
Document calibrated publication and diagnostic parity
tzhouam Oct 9, 2026
2be57cc
Correct source claims and converge overlapping LoRA rules
tzhouam Oct 9, 2026
489ce41
Keep suggested intake rule IDs within parser limit
tzhouam Oct 9, 2026
1da3d53
knowledge(vllm-omni): resolve speech cache scope conflict
tzhouam Oct 9, 2026
a1ccfcc
Keep new owner routes readable and knowledge anchors valid
tzhouam Oct 9, 2026
09818b1
knowledge(vllm-omni): resolve generic realtime hold with scoped legac…
tzhouam Oct 9, 2026
09d1c5c
knowledge(vllm-omni): cite current realtime context cursor contract
tzhouam Oct 9, 2026
1468558
Merge remote-tracking branch 'origin/main' into agent/knowledge-holds…
tzhouam Oct 9, 2026
3bc3797
fix(kb): authorize purpose-bound orphan hold receipts
tzhouam Oct 9, 2026
3a7a94d
docs(kb): verify orphan receipt signing contract
tzhouam Oct 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions adapters/afd_plugin/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -237,11 +237,10 @@ push:
protected_branches: [main, master]
allowed: false

# Knowledge service: declared but disabled until afd-plugin has its own
# calibration set and has run through a shadow period (rollout stage P3b).
# Owner-authorized automatic publication after its calibration and shadow period.
knowledge_lifecycle:
enabled: true
mode: shadow
mode: auto_merge
knowledge_dir: repos/afd-plugin
release:
trigger: none
Expand Down
4 changes: 2 additions & 2 deletions adapters/jiuwenswarm/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ push:
protected_branches: [develop, main, master]
allowed: false

# Knowledge service runs in shadow after reviewed initialization.
# Owner-authorized automatic publication after reviewed initialization.
knowledge_lifecycle:
enabled: true
mode: shadow
mode: auto_merge
knowledge_dir: repos/jiuwenswarm
release:
trigger: none
Expand Down
25 changes: 22 additions & 3 deletions adapters/vllm_omni/kb-calibration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,30 @@ shadow mode only when every `reject` case is caught and at most 20 % of the
`pass` cases are rejected; re-run it whenever the judge model or version
changes.

- `good-*`: the eight human-approved rules of InferMatrixCopilot #202, each
replayed as an `add` against its page as it was before the merge.
- `good-*`: the eight human-approved rules of InferMatrixCopilot #202, replayed
against their pages before the merge. DIFF-2ag4 explicitly replaces its
zero-binding predecessor DIFF-2ag2, retaining the old text as retired and
preserving its guards in the stronger successor; the other cases add a rule.
- `bad-*`: mutations the gate must reject (reversed claim, optional enforcement,
restated PR description, contradiction of BENCH-1a, unjustified retirement,
an edit that changes meaning, an invented API) and the historical bot-written
MMH3-4e that contradicted MMH3-4a (folded by a human in 03b0b62a2).

Evidence is the real upstream PR (title, body, bounded diff excerpt).
Evidence is the real upstream PR, pinned by merge commit: complete title/body
and per-file diff, plus exact source-line context where a rule depends on
unchanged behaviour (runner schema filtering, prefix-cache source planning,
speech exception handling). Positive and negative mutations of the same PR
receive identical evidence. The historical MMH3 case retains its original
evidence. None of the expected labels or scoring thresholds changed.

The 2026-10-09 source audit also corrects two assertions in the good fixtures
and canonical owner rules: SCHED-1c names `OmniPrefixCacheManager`, and SERV-9d
preserves engine-exception propagation instead of claiming all engine errors
are HTTP 400. Its `ValueError` 400 and generic internal-error 500 expectations
remain intact.

Recorded rerun reasons also correct BENCH-1h to the actual schema predicate
complement and scope its artifact example to NPU, DIST-1m to exact caller-key
cleanup without an invented pending-key ownership guard, and QOMNI-1i to the
real `async_chunk` symbol with honest existing-test coverage. Negative rule
mutations, labels, source evidence and scoring remain unchanged.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

39 changes: 37 additions & 2 deletions adapters/vllm_omni/kb-calibration/cases/bad-invented-api.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

43 changes: 39 additions & 4 deletions adapters/vllm_omni/kb-calibration/cases/good-BENCH-1h.json

Large diffs are not rendered by default.

15 changes: 14 additions & 1 deletion adapters/vllm_omni/kb-calibration/cases/good-COSMOS-7a.json

Large diffs are not rendered by default.

13 changes: 11 additions & 2 deletions adapters/vllm_omni/kb-calibration/cases/good-DIFF-1ak.json

Large diffs are not rendered by default.

19 changes: 15 additions & 4 deletions adapters/vllm_omni/kb-calibration/cases/good-DIFF-2ag4.json

Large diffs are not rendered by default.

21 changes: 17 additions & 4 deletions adapters/vllm_omni/kb-calibration/cases/good-DIST-1m.json

Large diffs are not rendered by default.

15 changes: 12 additions & 3 deletions adapters/vllm_omni/kb-calibration/cases/good-QOMNI-1i.json

Large diffs are not rendered by default.

65 changes: 62 additions & 3 deletions adapters/vllm_omni/kb-calibration/cases/good-SCHED-1c.json

Large diffs are not rendered by default.

25 changes: 22 additions & 3 deletions adapters/vllm_omni/kb-calibration/cases/good-SERV-9d.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions adapters/vllm_omni/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -401,10 +401,10 @@ push:
signoff: {name: tzhouam, email: tzhouam@connect.ust.hk}

# Knowledge service (doc/features/knowledge-service.md). Human-only section:
# switching `mode` to auto_merge is a reviewed code change, never an agent write.
# Publication policy changes require owner authorization and reviewed code.
knowledge_lifecycle:
enabled: true
mode: shadow # shadow | auto_merge
mode: auto_merge # owner-authorized; current calibration and both gates still required
knowledge_dir: repos/vllm-omni
intake:
merged_prs: true
Expand Down
10 changes: 9 additions & 1 deletion doc/architecture/SPEC/kb_service.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# kb_service/ —— 规范

<!-- verified-against: 2026-10-08 -->
<!-- verified-against: 2026-10-09 -->

`知识服务核心:仓库配置、账本、outbox、CLI · refactor-status: new`

Expand All @@ -27,6 +27,9 @@
- `cli`:`infermatrix-copilot kb keygen|status|pause|resume|control`。
- `reconcile`:负责人已合并的初始化/管理知识历史的显式接收;固定目标与 active、GitHub PR/merger/当前检查、
完整 first-parent 提交清单、目标树的两个校验器及真实快照验证,签名计划经重新验证后才安装不可变回执。
scheduler 仅在签名回执重新验证且提交已进入 active ancestry 后解决对应历史 provenance 告警;
外部 PR 告警仅在 live API 证明同仓库、同 PR、同 head 已关闭且未合并时解决。
两类解决均由租约栅栏事务保留原告警与证据,不修改原模型判定或授予新知识信任。

## 不变量
- 模块不出现任何仓库名;仓库差异只来自 adapter 配置。
Expand Down Expand Up @@ -88,6 +91,9 @@ stdlib + PyYAML + `cryptography`(`kb` extra)+ `.adapters` + `.knowledge_serv
候选改动经 improve 引擎配对实验 + 生产校准集双重把关。
- `sources`:知识仓库克隆的只读读取(`knowledge_files`、`external_texts`)、只读 GitHub 客户端
(合并 PR、PR 证据有界摘录、release/tag)、本机 Copilot 运行经验收件目录。
PR 证据保留 base/head 分支与 head SHA;intake 区分分支能力与当前默认分支事实,
新规则上下文包含完整已占用 ID(含退役与 tombstone),建议按源 PR 和 owner/topic 命名,
最终唯一性仍由操作应用和批次合并校验强制保证。
- `intake`:每个事件由生成器起草类型化操作(只允许 add/edit_same_meaning/replace/retire),
`apply_operations` 必须接受,最多两轮带精确错误的修复;多事件合并为一个变更集。
系统提示明确操作字段的字符串类型;未用可选字段省略或为空字符串,`new_page` 是目标路径而非布尔标志。
Expand All @@ -96,6 +102,8 @@ stdlib + PyYAML + `cryptography`(`kb` extra)+ `.adapters` + `.knowledge_serv
外部引用、protected、熔断(按仓库计算)、任何不确定 → human;L1 失败不调用模型。
- `runtime`:collect → intake → gate → publish;shadow 只记录;变更集文件存 `changesets/<id>.json`。
- `calibration`:按仓库的校准集评分(坏样例须全部拦下、好样例误拒 ≤ 20%)。
一致性检查沿用生产门禁的 changed-rule 归属,既有冲突单独保留;报告保存逐块原因和一致性详情。
CLI 校准模型调用写入 replayable trace,按仓库、case 和 judge/consistency 步骤标记。
- `runner`:经标准 executor 运行 `kb-*` playbook。CLI 新增 `kb run`、`kb calibrate`。

## 2026-09-28 合并流程、激活、巡检与调度
Expand Down
8 changes: 6 additions & 2 deletions doc/architecture/SPEC/knowledge_service.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# knowledge_service/ — provider curation components

<!-- verified-against: 2026-10-08 -->
<!-- verified-against: 2026-10-09 -->

Pinned source identities and depth markers accept full SHA-1 or SHA-256 Git
commits. Evidence bodies, stored hashes and native approval semantics remain
Expand Down Expand Up @@ -52,7 +52,11 @@ outbox item, control record, publisher ack, reconciliation plan, supervised
reconciliation receipt) never verifies for another. Plans use
`kb-reconciliation-plan`; only revalidated receipts use the distinct
`kb-reviewed-reconciliation` purpose, and neither can be replayed as an
automatic gate verdict or publisher action. It
automatic gate verdict or publisher action. A separately reviewed historical
hold uses `kb-reviewed-orphan-hold`, binding its exact queue row, original
settled sources and active canonical rules without changing model verdicts or
granting publication trust. Its signature cannot be replayed as an event
settlement or reconciliation, including by relabelling the envelope. Signing
needs only `cryptography`.

`containment` implements the opt-in consumer protocol independently of knowledge
Expand Down
4 changes: 2 additions & 2 deletions knowledge/repos/afd-plugin/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "AFD plugin 仓库知识入口"
created: 2026-08-05
updated: 2026-08-06
updated: 2026-10-09
type: index
tags: [afd-plugin]
sources:
Expand Down Expand Up @@ -44,7 +44,7 @@ sources:
| 核对 connector/graph/DBO 当前支持组合 | [execution-platforms](components/execution-platforms/architecture.md) | v0.26 CUDA/Ascend 平台现状 |

默认 briefing 只加载本入口和仓库规则;深层 owner 页面由 changed-file route 或 `doc_search` / `doc_read` 按需读取。
- [AFD plugin 仓库规则](rules-init.md)
- [AFD plugin 初始化与 E2E 门禁规则](rules-init.md):保留 AFD-I8 的文档/平台边界,GPU MRV2 DBO 按目标版本转入平台规则。
- [上游 API 漂移与兼容边界(afd-plugin)](rules-seed-vllm-omni-rebase-upstream-api-drift.md)
- [每次审查 AFD PR 都先套用的通用审查规则。AFD 特有的门禁再看本仓库的规则页。](../../general/review/rules.md)
- [以下情况先读这页,判断是否应该先改上游:新增或刷新 compat patch、从 vLLM/vLLM-Ascend 复制函数,或在插件里重写上游逻辑(MoE routing、DP metadata、graph capture、EngineC](../../general/review/guides/upstream-first-for-algorithm.md)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "AFD Attention runtime 入口"
created: 2026-08-06
updated: 2026-08-06
updated: 2026-10-09
type: index
tags: [afd-plugin, components, attention-runtime]
sources:
Expand Down Expand Up @@ -36,4 +36,4 @@ sources:
| 理解初始化、请求和 control metadata 流 | [architecture](architecture.md) | v0.26 当前运行实现 |
| 调查模型内 handoff | [model-integration](../model-integration/architecture.md) | 角色感知层构造和 metadata consumer |
| 调查 graph/DBO | [execution-platforms](../execution-platforms/architecture.md) | 平台 wrapper、capture 和 replay |
- [afd_plugin/v1/worker 审查规则:AFD 事务元数据、控制面发送与 runner 生命周期](rules.md)
- [afd_plugin/v1/worker 审查规则:AFD 事务元数据、控制面发送与 runner 生命周期](rules.md):包括 v0.30 GPU MRV2 的实例 prepare seam 与每 stage 控制;不扩大 v0.26 基线支持。
31 changes: 29 additions & 2 deletions knowledge/repos/afd-plugin/components/attention-runtime/rules.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
---
title: "afd_plugin/v1/worker 审查规则:AFD 事务元数据、控制面发送与 runner 生命周期"
created: 2026-09-30
updated: 2026-09-30
updated: 2026-10-09
type: rule
tags: [afd-plugin]
sources: []
sources:
- "afd-plugin@4c98691501be37f21735725f7429715ae98b603b:afd_plugin/v1/worker/attention_model_runner_v2.py"
- "afd-plugin@4c98691501be37f21735725f7429715ae98b603b:afd_plugin/v1/worker/attention_metadata.py"
- "afd-plugin@4c98691501be37f21735725f7429715ae98b603b:tests/unit/v1/worker/test_model_runner_v2.py"
---

# afd_plugin/v1/worker 审查规则:AFD 事务元数据、控制面发送与 runner 生命周期
Expand Down Expand Up @@ -63,10 +66,34 @@ sources: []

- hook 只在 `cudagraph_mode == CUDAGraphMode.FULL_DECODE_ONLY` 且 `cudagraph_manager` 存在时启用。它用 `MethodType` 覆盖单个 manager 实例的 `run_fullgraph`,用 `_AFD_FULLGRAPH_HOOK_MARKER` 防止嵌套。退出时恢复之前的实例覆盖,或者 `del` 掉实例属性。不要改成修改类属性。
- replay 的 metadata 先用真实的 `real_tokens`(`scheduler_output.total_num_scheduled_tokens`)构建,再把 `tokens_lens` 改成 padded 的 `desc.num_tokens`;DP 控制同样用 padded 数。`tokens_unpadded_lens` 保持真实值,两者不要合并成一个。
- 上述构建和发送描述适用于单 stage。v0.30 GPU MRV2 多 stage 的控制已经由 native prepare seam 发布,FULL replay 必须复用,按 [stage metadata 规则](#gpu-mrv2-dbo-stage-metadata--原生-stage-只附加隔离的-afd-元数据) 检查,不能再发送单 stage payload。
- hook 自己只恢复 `_afd_is_graph_replaying`。`_afd_pending_metadata`、`_afd_suppress_metadata_send`、`_is_warmup`、`_afd_is_graph_capturing` 都靠外层 `_use_afd_execution_context` 的 `finally` 恢复,所以不能在这个作用域之外单独使用 hook。

<!-- kb:rule status=active since=init-9cae2d2ddaae -->

## gpu-mrv2-instance-seam — GPU MRV2 prepare 包装只覆盖当前实例并恢复方法

- 触发:修改 v0.30 GPU MRV2 的 `_use_afd_ubatch_preparation` 或接入同一 native `UBatchRunner.prepare` 边界;本节适用于包含该升级实现的 checkout,不扩大 v0.26 基线的支持范围。
- 必须:记录当前实例是否已有 `prepare` 覆盖及原覆盖值,在 `finally` 中恢复原覆盖或删除临时实例属性。委托原绑定方法完成 native 输入切片、Attention metadata 和线程/stream 准备;注释写明缺少回调的原因、上游签名、delegation 例外以及上游提供 prepared-state 回调后的移除条件。
- 禁止:为此替换 runner 类或模块全局函数、复制重写 native 准备逻辑,或把恢复方法覆盖误写成恢复所有 runner 状态。pending metadata 和执行标志仍由外层 execution/capture 作用域恢复。
- 验收:无预存覆盖、有预存覆盖和异常退出都恢复 `prepare`;native 准备仍调用一次,外层状态恢复测试覆盖 pending、suppress 和 capture/replay 标志。

^[PR #424]

<!-- kb:rule status=active since=r2026-10-09 -->

## gpu-mrv2-dbo-stage-metadata — 原生 stage 只附加隔离的 AFD 元数据

- 触发:修改 v0.30 GPU MRV2 的 stage 准备、`install_mrv2_ubatch_metadata`、capture 或多 stage FULL replay。
- 必须:保留 native slices 的传输长度和全 batch 偏移;为每个 stage 克隆 metadata,保留 `stage_idx` 并只附加该 stage 的 `tokens_start_loc`、`requests_start_loc`、`tokens_lens`、`tokens_unpadded_lens`。未填充长度按 `max(0, min(stop, num_tokens_unpadded) - start)` 与真实输入求交。
- 必须:由调用方在微批线程执行前发布完整控制;多 stage FULL replay 核对 pending metadata 存在且 stage 数等于 descriptor 的 `num_ubatches`,然后复用已发布控制。capture 按 `(num_reqs, num_tokens, num_ubatches)` 匹配事件,不匹配或事件数不完整必须报错。
- 禁止:重新切片 native input views、Attention metadata 或 worker contexts;从微批线程发送控制;多 stage replay 再发送旧的单 stage payload。
- 验收:stage metadata 修改互不污染;padding 范围之外的 stage 未填充长度为零;控制发送次数和 descriptor 三个维度的负例都有 focused tests,正常退出和异常退出保留外层状态恢复保证。

^[PR #424]

<!-- kb:rule status=active since=r2026-10-09 -->

## AFD-I43 — NPU Async CAM stage 构建必须把 builder 0 留给全批次,并保持单 stage 的 AFD 事务

- 全批次 metadata 已由 builder 0 构建,并在 stage 执行期间一直存活。因此 Async CAM stage 构建时用 `ASYNC_MOE_STAGE_METADATA_BUILDER_OFFSET + ubid` 选 builder。native DBO(`is_async_moe_stage_build=False`)的 offset 保持为 0。改动 offset 或 builder 的选择方式,会让 stage metadata 覆盖全批次 metadata 正在使用的可复用缓冲。
Expand Down
4 changes: 2 additions & 2 deletions knowledge/repos/afd-plugin/components/connectors/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "AFD connectors 入口"
created: 2026-08-06
updated: 2026-08-06
updated: 2026-10-09
type: index
tags: [afd-plugin, components, connectors, distributed]
sources:
Expand Down Expand Up @@ -36,4 +36,4 @@ sources:
| 理解 factory、拓扑、payload 和生命周期 | [architecture](architecture.md) | 三类 connector 当前合同 |
| 核对 role runtime 如何消费 control/work item | [Attention](../attention-runtime/architecture.md) / [FFN](../ffn-runtime/architecture.md) | caller 生命周期 |
| 核对平台支持组合 | [execution-platforms](../execution-platforms/architecture.md) | graph/DBO/quantization 矩阵 |
- [NPU connector(CAM async / CAMP2P)review 规则](rules.md)
- [NPU connector(CAM async / CAMP2P)review 规则](rules.md):含 Legacy DBO 物理计数与 opaque op 动态 padding 的分支限定合同。
24 changes: 22 additions & 2 deletions knowledge/repos/afd-plugin/components/connectors/rules.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,34 @@
---
title: "NPU connector(CAM async / CAMP2P)review 规则"
created: 2026-09-30
updated: 2026-09-30
updated: 2026-10-09
type: rule
tags: [afd-plugin]
sources: []
sources:
- "afd-plugin@036640618fc6df6f2c44c67979b91c5c66b0b5a0:afd_plugin/connectors/npu/camp2p.py"
- "afd-plugin@036640618fc6df6f2c44c67979b91c5c66b0b5a0:tests/unit/connectors/test_camp2p_connector.py"
---

# NPU connector(CAM async / CAMP2P)review 规则

## AFD-CAMP-430-counts — Legacy DBO 的真实 Attention 长度与物理 wire 长度必须分开

- 触发:修改 `codex/v030-main-integration` 分支中 PR #430 引入的 Legacy NPU CAMP2p 多 stage、Attention ranks 大于 FFN ranks 的传输;该规则不声明此分支能力已经进入 main。
- 强制:control plane 使用独立物理 payload,先将 DP counts 展开到 TP peers,再按 `(ratio, ffn_size)` 的 strided 接收组取每列最大值并重复;本地 connector state 与发送的 control payload 必须使用同一物理计数,原始 Attention payload 保持真实 query 长度。
- 禁止:原地覆盖 Attention 元数据,或把各 rank 总体最大值当成每个 FFN 接收组的长度;ratio≤1 或单 stage 时保持原 payload 行为。
- 验收:覆盖 2A1F、4A2F、DP→TP 展开和等量 ranks;逐 stage 核对发送与本地物理计数一致、输入 counts 不变。真实 native A2E/E2A 检查 wire rows 与 control counts 相符,返回前缀仍使用原始长度。 ^[PR #430]

<!-- kb:rule status=active since=pr-430 -->

## AFD-CAMP-430-padding — 动态 CAMP2p padding 必须在 opaque runtime op 内读取当前 stage

- 触发:修改 PR #430 的 Legacy NPU CAMP2p split-stage send 路径;作用域为 `codex/v030-main-integration` 中该修复,GPU 与新 NPU MRV2 DBO 不在此规则范围。
- 强制:仅在 `attn_size > ffn_size` 且 connector 有多个 stage 时,从当前 forward context 的 `ubatch_idx`、`additional_kwargs["afd_metadata"].connector` 读取本 rank 物理 token 数;在 opaque op 内按差值为 hidden states 补零,只有 expert IDs 存在且需要 padding 时才同时补齐 IDs/scales。进入该多 stage 路径后,即使 padding 为零,也必须把 transfer batch size 更新为物理计数。
- 禁止:在 op 外按 profile/warmup 元数据预先 padding,让编译图冻结动态分支;禁止用物理长度替换 E2A 接收的原始长度 reference,或合并不同 stage 的 transfer state。
- 验收:同一 runtime op 在切换实时 stage metadata 后正确处理无 padding 与有 padding,参数化覆盖 IDs 缺失/存在;断言 native send 张量与 batch size 的物理长度、原始前缀与零尾部,以及每 stage 独立状态。native 观测必须核对实际 wire rows,不能只检查 host 计数。 ^[PR #430]

<!-- kb:rule status=active since=pr-430 -->

## AFD-I58 — async CAM FFN 侧:`token_nums_rankid_layeridx` 必须原样回传,真实层号和 token 数只来自 CAM 元数据

- `afd_async_dispatch_recv` 返回的 `batch_info` 存为 `states.token_nums_rankid_layeridx`,`send_ffn_output` 必须把它原样传给 `afd_async_combine_send`。
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "AFD execution platforms 入口"
created: 2026-08-06
updated: 2026-08-06
updated: 2026-10-09
type: index
tags: [afd-plugin, components, execution-platforms]
sources:
Expand Down Expand Up @@ -34,5 +34,6 @@ sources:
| 遇到什么 | 查看哪里 | 说明 |
|---|---|---|
| 理解 CUDA/Ascend、graph/DBO、MLA 和 native op | [architecture](architecture.md) | v0.26 当前平台矩阵 |
| 核对版本化 MRV2 DBO 校验或 DSV4 本地 NPU E2E 环境 | [rules](rules.md) | v0.30 GPU 升级实现与 v0.26 基线分开;设备和 NIC 按场景校验 |
| 调查 connector state 来源 | [connectors](../connectors/architecture.md) | control/data plane 和资源 owner |
| 审查 Ascend global patch | [compatibility](../compatibility/rules.md) | upstream-first 与 non-AFD 回归 |
Loading
Loading