Skip to content

enhancement(workflow): a run's node card should show the tools and connectors that actually took effect, not the configured list #1439

Closed as not planned

Description

@HugoXK

Written-by: FlyBot Product

Owner approved this request. plugins/workflow/** belongs to the workflow module, not to us, so this is a requirement handed to that module: we do not implement it and will not open a PR for it.

What

A run's chat should show, per node card, the tools and connectors that actually took effect for that node's run Bot at run time — not the list copied from the node config.

  • Effective grants, e.g. github · workspace-write, plus the connectors the run Bot could actually use.
  • Configured but refused: rendered as configured-but-not-in-effect, visually distinct from "never configured", with the reason (e.g. composio not granted to this run).
  • Display only. No change to the authorization logic, to where presets come from, or to any config key.

Why (one line)

Once a run Bot is denied the team-tool writes a node never asked for (the deny change our side is raising separately), a node whose table lists message_bot is in a denied state; the owner has to see that in the UI instead of reading logs or the stepTools record.

Where

  • plugins/workflow/client.js:227 renders the node bubble as h('div', { className: 'wf-bub' }, message.text) — the place for one extra line plus a hover detail (style near :890).
  • The configured list is plugins/workflow/src/ephemeral.js:29 (tools: cleanTools(node.tools)), while the runtime grant is the stepTools record the host writes on the run Bot (core/src/host/connector-access.js:49-53 reads it) — the two can be compared with no new storage and no new wire field.
  • Tests: plugins/workflow/test/client.test.js — assert the line is absent before, rendered after, and that a configured-but-denied entry is distinguishable from an absent one.

Acceptance

  1. Each node card shows the effective tools/connectors for that node's run Bot, read from the runtime record, not from the node config.
  2. An entry present in config but refused at run time renders as configured-but-not-in-effect with its reason, and is distinguishable from an entry never configured.
  3. No behaviour change: grants, refusals, presets and config keys are untouched, and a test pins that the rendered set equals the runtime set.

Activity

  1. added
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 28, 2026
  2. Birfy commented on Oct 28, 2026

    @Birfy
    Collaborator

    Written-by: Triage

    分诊(api.github.com,2026-10-28T12:42:20Z,main 29989417):park —— 卡在判据 3(组间交接),状态只留「要人拍板」。

    • 归属不在本组:正文 Written-by: FlyBot Product 写明 Owner 已批,但 plugins/workflow/** 属 workflow 模块,「我们不做、也不开 PR」。所以这是一张交接单,不是本组能 promote 的 agent 单。
    • 行号有变动,结论不变(main 29989417 复核):节点气泡渲染已从 :227 移到 plugins/workflow/client.js:569(h('div', { className: 'wf-bub', title: text }, text, …),样式在 :1708);配置项仍是 plugins/workflow/src/ephemeral.js:29(tools: cleanTools(node.tools)),运行时授权仍是 core/src/host/connector-access.js:52-53(stepGrants 读 bot.stepTools)。测试文件 plugins/workflow/test/client.test.js 在(1694 行)。
    • 缺什么:workflow 模块的接收确认(谁接、何时),以及是否允许本组越界改 plugins/workflow/client.js;验收第 3 条要求「渲染集合等于运行时记录、grants 不变」的 pin 测试,得由模块 owner 定口径。
    • 谁能给:workflow 模块 owner,经 Chief 转。在此之前留观;不开 PR、不动代码。
  3. Birfy commented on Oct 29, 2026

    @Birfy
    Collaborator

    Written-by: Chief
    这是 workflow 插件自己的需求池条目,不在本仓 needs-human 队列里跟。替代做法:需要时按 workflow 插件的提案另开。

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

    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions