Skip to content

Phase 2: removal: weak is stored but not built #161

Closed

Description

@dezren39

Design section 6 defines weak removal. Only the policy field is recorded (groups track). Decide the semantics and build it, or defer explicitly.

Activity

  1. dezren39 commented on Oct 24, 2026

    @dezren39
    MemberAuthor

    id train triage (2026-10-24): needs-decision — project owner: weak-removal semantics (build it or defer explicitly); only the policy field is recorded today.

  2. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), Lane C shift
    • Session / ID: queue task 2011
    • Found via: queue claim
    • Task: Triage issue Phase 2: removal: weak is stored but not built #161 — verify on current main whether weak removal is stored-but-not-built, then route a scoped follow-up or close with evidence
    • Expectation: effort s; done = triage verdict posted with code citations at HEAD, follow-up packet enqueued if confirmed, labels synced
    • Links: task 2011 (repo-health-code-pilot)
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done — triage verdict: CONFIRMED, routed to fix task 2941

    • Agent: queue worker (repo-worker-code), Lane C shift
    • Session / ID: queue task 2011 (triage) → follow-up task 2941 (small_fix)
    • Found via: queue claim
    • Task: Verified Phase 2: removal: weak is stored but not built #161 against current main; weak removal is stored but not built
    • Verdict / evidence (at HEAD, 2026-10-29):
      • pkgs/id/src/groups/policy.rs: Removal::{Strong (default), Weak} is defined and recorded on Policy, with the module's own note: "The rules belong to the voiding track; this module only records the setting."
      • The only read of policy.removal in the tree is display: pkgs/id/src/commands/group.rs removal_name() for the policy command output. No code in pkgs/id/src/groups/fold.rs or pkgs/id/src/groups/delegation.rs consults it.
      • The voiding paths apply STRONG semantics unconditionally: delegation.rs fn void() voids a grant when a settled removal of its grantor is concurrent with it (its comment cites design §6.2/§7.3 strong), and fold.rs fn void_device() does the same for device grants. So a group configured removal=weak silently gets strong behaviour today.
      • Semantics are NOT an open question: design §6.3 is decided — "Weak remove: only the authority check applies. Events by M in R's causal future are invalid. Concurrent events stand." The earlier needs-decision flag is answered by the design itself; what is missing is the build, not a decision.
    • Route: follow-up packet enqueued as queue task 2941 (small_fix, dedupe repo-health:v1:fix:developing-today/code:issue:161): branch the concurrent-voiding in the delegation and fold/device paths on policy.removal, keep strong byte-identical, add weak-vs-strong tests including the §6.4 week-late case adapted to weak. Issue stays open under queue/queued for that task.
    • Expectation: done for triage = this verdict + task 2941 queued + labels synced
  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 29, 2026
  5. 98 remaining items

  6. removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    on Oct 29, 2026
  7. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Agent note — verified again this shift; parked on blocker PR #2335 + merge-queue stall #2403

    Queue task 2941 resumed by Lane B. PR #2204 at baf1f0f7: Codex summary at this head reports no findings, all 3 review threads resolved, 24 checks SUCCESS — the only failures are the fmt/clippy family. Independently re-ran the defining tests on the laptop worktree: cargo test --lib groups:: in pkgs/id — 93 passed, 0 failed. A --failed rerun of run 40942941660 was requested (attempt 2 queued).

    The fmt/clippy failures are the pre-existing on-main breakage that blocker PR #2335 fixes, plus the recurring Magic Nix Cache throttling; they are not from this PR's diff. Resume (batch with tasks 2977/PR #2219 and 3005/PR #2377): #2335 merged + rerun green + #2403 fixed → enqueue #2204, verify merged, complete task 2941.

  8. 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 Oct 29, 2026
  9. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up → parked

  10. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Lane A (queue task 2941): verified fresh — PR #2204 MERGED 2026-10-30T01:00:10Z (merge commit fb3b47b) once blocker #2403 cleared. Task 2941 completing as already_done; stale queue/status/work labels removed.
    🤖 Agent note · picked up → done (already_done)

  11. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions