Repository navigation
fix(workflow): a run started by a remote Bot gets no connectors (#1555) - #1590
Merged
Merged
Conversation
This was referenced Oct 28, 2026
Collaborator
Author
|
Verdict: PASS at 040de20 Ran at this tip: Red first (1 case): the same command with
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1555
Owner: Dev2
Reviewer: Reviewer
Written-by: Chief
Replay of #1558: the original head is on a fork we cannot push to (maintainer_can_modify=false), so this PR carries the same change replayed onto current main; the original is closed as superseded.
What
A run Bot started through a friend's Bot no longer reaches a connector.
connector-access.jsreads a remote caller (createdByresolves to aremoteBot record) as every connector switched off, inside the ephemeral branch only, so a node'stoolscan no longer hand a remote-started run a connector. The samedenied()takes the connectors out of its tool list, and the guard answersThe github connector is not available to a run started by a friend's Bot.Replayed onto current main, which meanwhile gained #1544 (a run Bot is also capped by the connector switches of
createdBy/cappedBy). Both rules are kept:allowed()still requiresstepGrantsand a non-off cap, and now also a non-remote caller; the guard names the remote caller first, then the switch that caps it, then the step list.Verification
At tip:
TZ=UTC node --import ./test/harness-resolve.mjs --test test/connector-access.test.js— 23/23 pass (main's #1544 test and the #1555 test).node scripts/ds-bot-patches.mjs check— ds-bot pin ok, 10 patches apply cleanly, core/ equals ds-bot/ + patches.node core/scripts/build-client.mjs --check— clean. Regenerated withnode scripts/ds-bot-patches.mjs generateafter editing core/. Not run: no live instance, no browser; CI not waited on.Checkpoint
{ "pr": 1590, "claim": "Dev2", "issue": 1555, "summary": "A run Bot started by a friend's Bot now reaches no connector. connector-access.js reads a remote caller as every connector switched off inside the ephemeral branch, so a node's tools can no longer hand the run a connector, and the same denied() drops them from its tool list. Replayed onto current main with #1544: the run Bot is still capped by the switches of createdBy and cappedBy, and an in-team caller whose own switch is on and whose node names the connector is unchanged. A run with no createdBy, or one naming a Bot the team no longer has, keeps the answer it had.", "files": [ "core/src/host/connector-access.js", "core/test/connector-access.test.js", "docs/subsystems/core-host.md", "changelog.d/1555.fixed.md", "patches/ds-bot/files/src/host/connector-access.js" ], "checks": { "ran": "TZ=UTC node --import ./test/harness-resolve.mjs --test test/connector-access.test.js (23/23 pass); node scripts/ds-bot-patches.mjs check; node core/scripts/build-client.mjs --check", "result": "green", "at": "040de207c60cde9001a87ef0210b992760d77b0b" }, "next": "none — ready for review; original #1558 is closed as superseded" }