- Shipped
- October 5, 2026 at 5:10 AM UTC
- Author
- Kamo
- Commit
- e2ebcc0
TeamLevels (pure, not a bean) reads a set of members' teams in four queries whatever their number (one when none is in a team): memberships, the teams, their roles with each role's rights, and their direct rights. Every team a member belongs to folds into ONE peer level by the waterfall's own addSettingToLevel rule (GRANTED beats NUKE), overlaid after the job title and before the member; FORCE, closure and the AI guardrails still follow. The session timeout gains the same level: the shortest non-null team timeout overrides the job title, and the member's own still overrides it. Staff only, like department and job title: a customer costs no team query. Single-member paths load one member's level; recalcChunk loads the chunk's once. The four team repositories are optional; without them, or for a member in no team, every waterfall resolves exactly as before: the T1 goldens stay green and unedited in both modes.
