- Shipped
- October 5, 2026 at 5:59 PM UTC
- Author
- Kamo
- Commit
- ed9ae48
**************** now takes the caller and reads the organization's org graph from the 60 s cache (orgGraphCache.get): - subordinateMemberIds = reports(caller, true) that are record-active and not synthetic, only with the subordinate right and not the all-org right; - aiSuperviseeIds = the AI nodes whose supervisor is the caller (never itself); - aiMemberIds = every AI node; - orgMemberIds (all-org right only) and names as before. It no longer calls access.managerPairs or aiMembers.artificialMembers for visibility. VisibilityInputs.toBody() sends the three sets as strings in place of managerPairs and aiSupervisorPairs. **************** and its TeamMemberRepo dependency are deleted. A record-inactive middle manager no longer hides the reports below them (D19); a TERMINATED member whose record is still active stays a subordinate, as the pair walk's tm.recordState.isActive filter kept them. ComputeService accepts the sets since CP02 T14 (deployed); T16 removes its pair walk only after this is live.
