Skip to content

ActionEngine 的 event-mapping(addMapping / dispatch)零生产调用方,且 condition 求值与 visible 契约不一致 #3368

Description

@yinlianghui

Filed unassigned,来自 #3314 的只读排查(为定 visible 归一化判据而通读 ActionEngine)。只记录发现。

现象

packages/core/src/actions/ActionEngine.ts:

1. 这条 API 是 dormant 的。 git grep addMapping -- packages apps examples(排除
CHANGELOG)只命中定义处与 packages/core/src/actions/__tests__/ActionEngine.test.ts
里的 4 处测试调用 —— 没有任何生产代码注册过 event→action 映射,dispatch() 也就
没有真实调用方。

2. dispatch() 的 condition 求值与 visible 的契约有两点不一致:

if (mapping.condition) {
  const evaluator = this.runner.getEvaluator();
  const shouldRun = evaluator.evaluateCondition(mapping.condition);
  if (!shouldRun) continue;
}

为什么是 observation-class

零生产调用方,今天没有用户能碰到这两点中的任何一个。把它当缺陷直接「修」反而是给
一条没人用的 API 增加行为面;真正要先回答的问题多半是这条 event-mapping API 要不要留
(留 → 契约对齐 visible:throwOnError + 接受 Expression 信封;不留 → 按
enforce-or-remove 退役,连同 ActionMapping 类型与那 4 个测试)。

所以只记录,不带 pm:queue,留给 triage 决定方向。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions