Skip to content

fix(workflow): name the connectors the node's Tools field selects - #1523

Closed
HugoXK wants to merge 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev3/fix/p68-node-tools-notes
Closed

HugoXK wants to merge 1 commit into
ThinkFlowLab:mainfrom
HugoXK:dev3/fix/p68-node-tools-notes

Conversation

@HugoXK

@HugoXK HugoXK commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #1520

Owner: Dev3
Reviewer: Reviewer
Written-by: Dev-3
Base: 496ff1d2c637ee3f2a55b869a6cb755b91777b41 (main, #1425)
Tip: fca85c374cc66d9b0eff70daae181d799885f6ac
Tree: e65f8c9fb5d4c9161dfdd7c758867a25e5a6cc69

#1512 made node.tools documentation and gave every Workflow node Bot the normal-Bot permission (permissionFor() returns danger-full-access, and fb.bot.create is called without a tools field). The owner then decided that a node's tools should name which connectors its run Bot may use while file and shell access stays full for every node: tools selects stepTools, so github reaches mcp__github__* and composio reaches the Composio connector, and a node that names no connector gets none. This pull request changes only copy and docs so they match that model; the spawn change that applies tools is Dev-1's and is not merged here.

The inspector keeps its editable Tools field and gains one sentence under it: "Names the connectors this run Bot may use: github grants mcp__github__, composio grants the Composio connector. File and shell access is always full, like a normal Bot. A node that names no connector gets none. Until the spawn change that passes these tools to the host lands, every connector is still refused."* The placeholder changes from github, bash, read, edit... to github, composio, because only connector names take effect. The Details Permissions row reads Full access, same as a normal Bot instead of Each Bot's own permission.

The three texts an agent or the UI reads directly carry the same caveat, so none of them reads as a connector that already works: the inspector note, the define_workflow description, and its nodes parameter each say the spawn change that passes tools to the host is not merged and every connector is refused until it lands. The README and docs/subsystems/workflow.md say the same and mark the spawn change as pending. Those caveat sentences are removed by that spawn change, which edits the same fb.bot.create region and is not part of this branch.

What changed

  • plugins/workflow/client.js — the Tools note (English and Chinese, with the pending sentence), the connector-only placeholder, and the Details Permissions row.
  • plugins/workflow/index.js — the define_workflow description (line 123) and its nodes parameter (line 127) say tools picks connectors, the permission is always full, an undeclared connector is refused, and the spawn change is not merged yet.
  • plugins/workflow/README.md — lines 23, 37, 56 and 82 say the same and mark the spawn change pending.
  • docs/subsystems/workflow.md — the ephemeral.js row, the client.js row, rule 6 and rule 12; rule 6 carries the stepTools sentence and the pending note.
  • plugins/workflow/test/client.test.js — one new test.
  • changelog.d/1520.fixed.md — one fragment.

No behaviour change: permissionFor(), nodeConfig(), the spawn path, src/ephemeral.js and core/src/host/ are untouched. The node Bot's file and shell permission is the same as a normal Bot; only the connector source changes, and that change is not in this branch.

Red, then green

Measured on this pull request's base 496ff1d2, plugins/workflow:

  • Baseline on 496ff1d2: 93 tests / 93 pass / 0 fail.
  • 496ff1d2 plus the new test file only: 94 / 93 / 1 — the only red is the node inspector keeps the Tools field and explains what it selects, on assertion the Tools field explains it selects connectors, not the permission ('' !== 'Names the connectors … still refused.'). The field-exists and write-back assertions are green on 496ff1d2 too, because the field was never removed.
  • At this tip: 94 / 94 / 0.

Verification at this tip

TZ=UTC ARCH_DOCS_BASE=496ff1d2 npm run verify at this tip — exit 0: core 1853/1853, social 527, tree 125, timeline 125, workflow 94, .github 548, interop 37, live-e2e 24, every suite # fail 0; lint 0 errors; arch-docs: OK (6 changed file(s)) against 496ff1d2. Also node .github/scripts/changelog.mjs check → 48 fragments well formed, and node .github/scripts/check-mojibake.mjs --check → ok (0 U+FFFD).

Base 496ff1d2 and the branch was rebased onto it because main moved past 92a6aabd; the shared doc file merged without a conflict and the diff is still 6 files, +48/−19.

Not run: no smoke or test-bench run (no host or spawn path moved) and no browser check; the inspector is covered by the unit renderer.

Test placement

The new test sits directly after settings and the flowchart save a node prompt and a link on the same graph, in plugins/workflow/test/client.test.js. #1519 touches the same file at mount() and the stage-chat tests and plugins/workflow/client.js at 384–398; this branch touches client.js only in the i18n table, the Details row and the inspector block, so no hunk overlaps. docs/subsystems/workflow.md is touched by both, so a rebase may be needed if #1519 lands first.

Checkpoint

{
 "pr": 1523,
 "claim": "Dev3",
 "issue": 1520,
 "summary": "#1512 left node.tools as documentation, so the inspector no longer said what it does. The Tools field stays editable; its note, the define_workflow description and its nodes parameter name the connectors the run Bot may use and say the spawn change that passes tools to the host is not merged yet, so every connector is still refused until it lands. README and the subsystem doc say the same. Only copy and docs change; the spawn path and core/src/host are untouched.",
 "files": [
  "plugins/workflow/client.js",
  "plugins/workflow/index.js",
  "plugins/workflow/README.md",
  "plugins/workflow/test/client.test.js",
  "docs/subsystems/workflow.md",
  "changelog.d/1520.fixed.md"
 ],
 "checks": {
  "ran": "TZ=UTC ARCH_DOCS_BASE=496ff1d2 npm run verify; node .github/scripts/changelog.mjs check; node .github/scripts/check-mojibake.mjs --check; the plugins/workflow suite at 496ff1d2 plus the new test file only",
  "result": "green",
  "at": "fca85c374cc66d9b0eff70daae181d799885f6ac"
 },
 "next": "none — ready for review. The caveat sentences are removed by the spawn change that passes tools to the host (Dev-1), which edits the same fb.bot.create region."
}

@HugoXK
HugoXK force-pushed the dev3/fix/p68-node-tools-notes branch 2 times, most recently from f55f8d3 to 143a52b Compare October 28, 2026 02:08
@HugoXK HugoXK changed the title fix(workflow): the node inspector still offers an editable Tools field that no longer limits anything fix(workflow): name the connectors the node's Tools field selects Oct 28, 2026
The inspector note and the define_workflow descriptions read as if the
connectors already work. The spawn change that passes spec.tools to
fb.bot.create is not merged, so the host records no stepTools and
connector-access refuses every connector. Say so in the three texts an
agent or the UI reads directly.
@HugoXK
HugoXK force-pushed the dev3/fix/p68-node-tools-notes branch from 143a52b to fca85c3 Compare October 28, 2026 02:23
@HugoXK

HugoXK commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

@Birfy tests-ok is green at fca85c374cc6 and this PR has no review yet. Could you review this tip?

@HugoXK

HugoXK commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Closing this one as superseded — no code in it is wrong, it is the timing that no longer works.

#1523 writes the C contract as "spawn does not pass tools yet, so connectors are still refused" — nine caveat sentences across docs/subsystems/workflow.md:32/:52, plugins/workflow/README.md:23, plugins/workflow/index.js (spawn comment, define_workflow description and nodes parameter), client.js (i18n note at :101, field note at :938) and client.test.js:375. #1535 (tip aa0d21ae38ca) is the change that makes those sentences false: it passes tools: spec.tools and folds the same three files' text to the C contract at the same lines. Merging this first would either conflict with #1535 or ship text that contradicts it one merge later.

So the ordering is: #1535 lands, and this pull request does not.

Its unique content is not lost. Written-by: FlyBot Lead, three items go into one follow-up pull request after #1535:

  1. plugins/workflow/client.js — the Tools field still has placeholder: 'github, bash, read, edit...' and no note; bash/read/edit are not connector names.
  2. plugins/workflow/client.js:681 with the i18n key Each Bot's own permission — a node Bot is danger-full-access, so "follows each Bot's permission" no longer describes it.
  3. plugins/workflow/README.md:37 — Its Coder and Tester carry a bash note, and its Coder, Reviewer and Deployer carry a github note reads as if bash were a live grant; plus src/template.js:20/:34 still list bash/read/edit inside a connector list.

Nothing is pushed and no tip moves: the #1523 head stays at fca85c374cc6 in case a reviewer wants to read it before it disappears.

@HugoXK

HugoXK commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Replacement link, added for the owner's PR-closure audit, so the closure above is traceable in both directions.

Classification: exception 1 (superseded by a live replacement) plus exception 3 (the substance is already on main). The PR stays closed; nothing of it is lost.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(workflow): the node inspector's Tools field selects connectors, but nothing on screen says so

1 participant