Skip to content

[coordination][security] Supervision must not escalate authority — a delegation lends a goal, never privileges #185

Description

@serge-ivo

Design: docs/supervision.md. Companion to #183. Security-critical.

The risk

Under configurable multi-layer supervision (#183), if a subordinate executed with its supervisor's tools — or with the union of both — then supervision becomes a consent bypass: wire a low-trust agent beneath a high-trust one and it inherits reach it was never granted.

The platform has a real consent boundary today (write-consent gate, migration 0051; capabilities.tools allowlist gating via toolNamesFor). Multi-layer delegation is a new path that could route straight around it, and it would do so by configuration — no code change, no review.

The rule

A delegation carries the owner's authority plus a goal. It lends nothing else.

  • A subordinate executes with its own consent-gated tools and its own guardrails — never the supervisor's, never a union.
  • Both instances already belong to the same owner (as agent_connections enforces); that ownership is the authority, not the supervisor's tool grants.
  • A supervisor cannot widen a subordinate's reach by delegating to it, and cannot borrow a subordinate's reach by delegating through it.

This is the same boundary #142 draws for creators declaring runtime/workflow capabilities.

Scope

  • Explicit non-inheritance at the delegation boundary: the subordinate's tool resolution ignores the supervisor entirely.
  • Consent checks evaluate against the executing instance, not the originating one.
  • Tests as the contract: a supervisor with a write-consented connector delegating to a subordinate without it must not enable the write.
  • Audit: the trace records which instance's authority each tool call ran under.

Acceptance

  • A subordinate cannot perform an action it lacks consent for, regardless of its supervisor's grants.
  • A supervisor cannot reach a connector it lacks consent for by delegating to a subordinate that has it.
  • Trace attributes every tool call to the instance whose authority ran it.
  • Tests cover both escalation directions (down-lending and up-borrowing).

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendBackend / Worker / API workcoordinationAgent coordination / delegation primitivessecuritySecurity hardening / audit finding

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions