Skip to content

Phase 2: delegated Manage cannot add members #171

Open

Description

@dezren39

member() checks membership access only, so a delegated Manage cannot add members. Default kept; confirm the design wants delegated management to add members.

Activity

  1. dezren39 commented on Oct 24, 2026

    @dezren39
    MemberAuthor

    id train triage (2026-10-24): needs-decision — project owner: delegated Manage add members (default kept; confirm the design wants delegated management to add members).

  2. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), lane D shift
    • Session / ID: queue task 2018 (repo-health-code-pilot)
    • Found via: queue claim
    • Task: Triage issue Phase 2: delegated Manage cannot add members #171 — verify on current main whether a delegated Manage holder still cannot add members (member() checking membership access only), and what the design says delegated management should be able to do; then route as a scoped follow-up packet or close with evidence.
    • Expectation: effort s — done = triage verdict posted with code/design evidence at HEAD, follow-up packet enqueued if confirmed, labels synced.
    • Links: queue task 2018
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane D shift
    • Session / ID: queue task 2018 (repo-health-code-pilot, triage)
    • Found via: queue claim
    • Task: Triage verdict for Phase 2: delegated Manage cannot add members #171 — CONFIRMED on current main (26221fcc77952cc672f8960bfd997a795b1167ca, 2026-10-29T01:13:30Z), including the design-intent question in the issue body. Routed as a scoped follow-up fix packet; this issue stays open as the tracking issue.
    • Expectation: done = verdict + evidence below, follow-up packet enqueued, labels synced.

    Evidence (all at HEAD above):

    • pkgs/id/src/groups/fold.rs, judge() (~line 617): Body::Member(op) is judged by member() first; delegation::manage_chain runs only on an Ok decision — a refusal from member() ends the event.
    • fold.rs member() (~lines 884–895): is_manager = author_role >= Role::Manage, and Add with !is_manager returns Refusal::NotManager (line 892; same gate for removing another member, line 922).
    • That author_role comes from effective_author (lines 1050–1078), which takes it from the admins set or access() (lines 985–993) — and access() reads only self.membership.members(group), the p2panda-auth membership access level. The delegation grant graph is never consulted on this path. So an account whose Manage comes from a grant chain, with membership access below Manage, is refused before the chain machinery can speak.
    • Design intent (the issue's "confirm the design wants this"): yes. pkgs/id/src/groups/delegation.rs — authorized() is documented "Whether actor may exercise scope in group at the causal position after (design §7.2)… a grant may reach an account that is not a member", manage_chain() exists to judge "a manager's membership change" for chain-holders, and Refusal::NoChain's own doc reads "A manager acts only through a grant that reaches it from an owner". Delegated managers are an intended actor class for membership changes; the fold's first gate just never lets them reach the chain check. (holds() at delegation.rs:274 is explicitly "by membership" — a separate additional gate for Delegate/Veto judging, not this path.)

    Route: follow-up packet enqueued to repo-health-code-pilot — kind small_fix, dedupe key repo-health:v1:fix:developing-today/code:issue:171, priority 40: satisfy member()'s manager gate via delegation::authorized(author, Role::Manage, event.after) when membership access alone is below Manage, keeping the Admin gates and the manage_chain NoChain check intact, with tests for delegated add/remove and the cut-chain refusals.

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Oct 29, 2026
  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), OpenChamber scheduled lane
    • Session / ID: queue task 5538 (repo-health-code-pilot)
    • Found via: queue claim
    • Task: Re-triage issue Phase 2: delegated Manage cannot add members #171 against current main; check current implementation/design and any superseding work, then route confirmed work to a fix task or record why it is already resolved.
    • Expectation: triage verdict with current evidence, correct follow-up routing if still live, and labels synced.
    • Links: queue task 5538
  6. 191 remaining items

  7. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 2, 2026
  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  9. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  10. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · state: picked up

  11. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · state: blocked (escalated to Drew)

  12. added
    queue/blockedQueue or user escalation state
    status/blockedQueue or user escalation state
    user/escalatedQueue or user escalation state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 2, 2026
  13. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1

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

Metadata

Metadata

Assignees

Labels

queue/blockedQueue or user escalation statequeue/queuedHas a queued task in the Supabase agent queuestatus/blockedQueue or user escalation stateuser/escalatedQueue or user escalation statework/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions