Repository navigation
feat(runs): submit as yourself or as the project's team - #2943
Merged
Merged
Conversation
🎩 PreviewA preview build has been created at: |
This was referenced Oct 22, 2026
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 23, 2026 22:58
5c3a238 to
ce77b75
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 23, 2026 23:50
ce77b75 to
346ee1f
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 26, 2026 21:56
346ee1f to
4b425f5
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 27, 2026 00:59
4b425f5 to
a97d58c
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 27, 2026 17:33
a97d58c to
9efd86b
Compare
1 of 3 tasks
camielvs
force-pushed
the
cvs/submit-as-team
branch
2 times, most recently
from
October 28, 2026 23:11
1dbed14 to
b5b9cef
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 29, 2026 01:32
b5b9cef to
52ca37c
Compare
1 of 3 tasks
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 29, 2026 02:42
52ca37c to
eda0e2c
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 29, 2026 19:45
eda0e2c to
4d2acdc
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 29, 2026 20:21
4d2acdc to
6c8f7c8
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 29, 2026 20:42
6c8f7c8 to
a4059ac
Compare
camielvs
commented
Oct 30, 2026
camielvs
commented
Oct 30, 2026
camielvs
commented
Oct 30, 2026
camielvs
commented
Oct 30, 2026
camielvs
commented
Oct 30, 2026
camielvs
commented
Oct 30, 2026
1 of 3 tasks
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 30, 2026 02:02
f603166 to
edb0d51
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 30, 2026 18:51
edb0d51 to
8b280d3
Compare
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 30, 2026 20:35
8b280d3 to
3fa4e73
Compare
1 of 3 tasks
camielvs
marked this pull request as ready for review
October 30, 2026 21:23
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 30, 2026 21:46
3fa4e73 to
d2a2c2d
Compare
maxy-shpfy
reviewed
Oct 30, 2026
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 30, 2026 23:50
d2a2c2d to
8fdeb0b
Compare
maxy-shpfy
approved these changes
Oct 31, 2026
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 31, 2026 00:08
8fdeb0b to
3c9e5d3
Compare
A run uses the secrets of whoever submits it, so in a team's project it can go as you or as the project's team. It goes as you by default, and as the team when that's chosen or needed: - With no secrets, or only secrets you have, a run goes as you. The arguments dialog's Run as control can pick the team. A choice holds for the team it was made for, so switching the dialog to a project on another team starts from that team's default. - When it needs secrets only the team has, it goes as the team, and the control says which secrets force it. - When some secrets are only yours and others only the team's, neither works, and the dialog says which are where. runIdentity checks the run's secrets against your list and the team's. `useRunIdentity` is compiled by the React Compiler, since it walks the whole pipeline spec for secret references. The submit button, the arguments dialog and a project's Run pipeline button all follow it. They send the team header when the run goes as the team, and write the run's notes and tags as whoever submitted it, since the backend only lets a run's creator annotate it. The secret picker opened from the dialog starts its "Save to" choice on the identity the run goes as. The quick submit button opens the arguments dialog instead of submitting when the run would fall back to you (you're not in the team, the team can't be acted as, or the team couldn't be checked), when a secret is missing for the identity it would go as, or when its secrets are split. The dialog says who the run goes as, explains a fallback, and names the missing secrets, in bold after a lock icon, and who has them. Missing secrets warn rather than block: the list can lag behind a secret added elsewhere. The button's "as <team>" suffix shows only when the run goes as the team. Submit waits while the team resolves and while the secrets are checked, and is refused for projects on different teams. The arguments button stays available in that case, so another project can be chosen for the run. Workspace names in the submit button and the dialog carry the workspace icon. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A run an agent submitted from a team's Tangent project was always created as the user, so a team secret failed at launch. The Tangent editor and run view agents submit through the tool bridge, which filed the run under the project but never sent the team header. The bridge now takes the project's team from the same `useTeamForSubmission` the submit button uses, and follows the same rule: - submit_pipeline_run goes as the user unless it's asked to act as the team (asTeam), or the run needs a secret only the team has. It decides with the same runAsFor as the UI. The result's actingAsWorkspace names the workspace it went as and actingAsTeam is that workspace's team id, and its warning says when a team-only secret forced it. - asTeam is refused, with nothing submitted, when the user can't act as the team: there's none, they're not in it, the backend refuses it, or it couldn't be checked. - A run whose secrets are split between the user and the team is refused unless asTeam is set, saying which are where. - While the team is resolving, or for projects on different teams, the submission is refused with the reason, so the agent can retry or explain. - A secret missing for the identity the run went as comes back as a warning. The tool's description and results call the team the workspace, as the UI does, so agents use the user's word for it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The editor's Quick Run button clicks a hidden submitter, so the submitter's "as <team>" suffix never shows and a run went as the team with no sign of it. The button now carries a badge with the workspace icon, and its tooltip names the workspace, whenever the page's run would go as the team by default, as it does when only the team has a secret the pipeline uses. The hidden submitter also waits while the page's team resolves or the run's secrets are checked, and refuses projects on different workspaces, and a click on Quick Run then did nothing. Quick Run is now disabled in those cases too, and its tooltip says what it's waiting for. The menu bar button keeps having no accessible name of its own: giving it one would collide with the hidden submitter's "Submit Run" in role-based lookups. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
camielvs
force-pushed
the
cvs/submit-as-team
branch
from
October 31, 2026 00:12
3c9e5d3 to
6888d85
Compare
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.
Description
A run uses the secrets of whoever submits it, so in a team's project it can go as you or as the project's team. It goes as you by default, and as the team when that's chosen or needed:
runIdentityapplies that rule, anduseRunIdentitylists your secrets and the team's to feed it. The editor's Submit Run button, the arguments dialog and a project's Run pipeline button all follow it. They send the team header only when the run goes as the team, and write the run's notes and tags as whoever submitted it, since the backend only lets a run's creator annotate it.The UI says who a run goes as before you submit:
Agents in Tangent's editor and run view submit through the tool bridge, which follows the same rule.
submit_pipeline_rungoes as the user unless it's asked to act as the team (asTeam) or a team-only secret forces it, and it decides with the samerunAsForas the UI. Its result'sactingAsWorkspacenames the workspace it went as, andactingAsTeamis that workspace's team id. It refusesasTeamwhen the user can't act as the team, and refuses a run whose secrets are split unlessasTeamis set. While the team is resolving, or for projects on different teams, the submission is refused with the reason. The tool's description and results call the team the workspace, as the UI does.Submit waits while the team resolves and while the secrets are checked. It's refused for projects on different teams. The arguments button stays available in that case, so another project can be chosen for the run.
Related Issue and Pull requests
Type of Change
Line Breakdown
Checklist
Screenshots (if applicable)
None yet.
Test Instructions
With the same setup as #2941, plus a secret of your own and one of the team's:
master.Additional Comments
useRunIdentityis added toreact-compiler.config.js, since it walks the whole pipeline spec for secret references.🤖 Generated with Claude Code