Skip to content

Multi-member deployments: nobody can administer the deployment Agent (all six Agent endpoints return bot/blocked-shared) #614

Closed as not planned

Description

@Birfy

Summary

After #612, when a deployment has more than one member, nobody can administer the deployment's own Agent or its Session: all six Agent endpoints (add-agent and the five owner-scoped ones) answer bot/blocked-shared. This is the add-agent rule applied consistently — but the agent is one per deployment and carries no owner, so with two members the "owner" check has nothing to match and the default is deny.

Evidence

  • Fix owner-scoped access for Agent endpoints and delete answers #612 (fix/agent-endpoints-signed-in, T3, PASS) puts the six endpoints in SHARED_BLOCKED; the Reviewer's read of the tip: with more than one member all six return bot/blocked-shared (core/src/host/authz.js).
  • add-agent already had this rule, so this is consistent rather than a regression: the DSH Agent is one per deployment and has no owner, exactly like add-agent.
  • Single-member deployments are unaffected (the owner matches); the block only appears with 2+ members.

Expected behavior (needs a product decision)

Either:

  1. Only one member is supported — say so explicitly: the Agent and its Session are owner-only, and a multi-member deployment shows "this deployment's Agent is managed by its owner" instead of a bare bot/blocked-shared; or
  2. Multi-member deployments make the Agent manageable — an explicit rule (e.g. the deployment owner from config, or a signed-in member the owner promoted) may add/adopt/archive/rename the Agent and remove agents, with the rule written down and a test for the denied cases.

Whichever is chosen, the failure should be a readable message, not a permission code, and docs/subsystems/team.md / the authz rules should state who manages the deployment Agent.

Change scope

core/src/host/authz.js (the SHARED_BLOCKED handling for the Agent endpoints, and the message), the client path that surfaces bot/blocked-shared, core/test/authz.test.js, the docs that describe owner-scoped access.

Blocking

The ball is with the user (through the Chief): is a single-member deployment enough, or must a multi-member deployment's Agent be manageable? The answer decides which of the two shapes above is built. No code change should guess it.

Why

It is not a security hole — it is the consistent application of a real rule — but a team deployment today has an administratively unreachable Agent, which will bite the moment team mode is used.

Activity

  1. added
    bugSomething isn't working
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    area:automationScheduled tasks and automation
    area:securityAuth, grants, approvals, secrets
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    and removed
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 21, 2026
  2. Birfy commented on Oct 21, 2026

    @Birfy
    CollaboratorAuthor

    Owner decision (2026-10-21): option ① — single-member deployments only.

    A multi-member deployment returns a human-readable "not supported" error instead of bot/blocked-shared; team-mode multi-member Agent administration is explicitly out of scope until team mode ships. Acceptance: a rejection test (multi-member → refused) and the message present in the client; docs team-mode section states the limitation.

    Label state set by: Chief on behalf of Triage (Triage session was credential-blocked). No further status notes needed on this issue.

  3. Birfy commented on Oct 21, 2026

    @Birfy
    CollaboratorAuthor

    Closing as not planned — multi-member deployments are not a supported configuration today (team mode stays disabled), so the gap cannot be reproduced by a user and does not meet the admission line for a reproducible defect. Per the owner decision: do not implement option ②, no new permission rules, no new branches in authz.js.

    Recorded as an explicit follow-up for the team-mode design work (not "to be documented later"):

    • Before team mode can be enabled, decide who administers deployment-level shared resources — the Agent, secrets and connectors — in a deployment with more than one member. Until that is decided, multi-member deployments may keep returning bot/blocked-shared, and single-member deployments are unaffected (the owner path works).

    Re-open this issue when that design work starts.

  4. removed
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 21, 2026
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

    area:automationScheduled tasks and automationarea:securityAuth, grants, approvals, secretsbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions