#83 residual: reap abandoned-pending link-probe rooms (periodic sweep) #87
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dark/nether-voicebridge#87
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to the #83 core (shipped alpha.18: leave-only-probe-created-joins on the FAILURE path). Residual: a probe that SUCCEEDS mints a pending link and retains the room join; if the pending is never approved and expires, the probe-created membership is never reaped (pending expiry is lazy — no timer, no on-expiry hook). Fix: track
probe_joined: boolonPendingLink, add a periodic mgmt maintenance task (hook mgmt.rs:~530, mirror rtc/mod.rs:238 reaper) that prunes expired pendings AND leaves each expired-pending room whoseprobe_joinedis set and which no committed tenant uses. Share this task with the #84/#85 residuals.Fixed + shipped in v0.3.0-alpha.19 (master
688d3a9, deployed to prod 2026-07-11).PendingLinkrecords whether the probe created the room join; a 5-min management-bot maintenance sweep leaves rooms from expired, unapproved, probe-created pending links — never a room a bridge holds. Safe set = running bridges (ControlMsg::Status, static+tenant) unioned with configured tenant rooms (newnvb_config::tenant_rooms); the sweep is skipped entirely if that set can't be read (fail-safe). Live: mgmt scenario PASS, prod first-sweep left nothing. Note: idle-but-occupied rooms are out of scope (only empty rooms are left — see #89).linkof an invite-only room is unsatisfiable — the invite gate rejects the invite the link reply instructs #111linkof an invite-only room is unsatisfiable — the invite gate rejects the invite the link reply instructs #111