Z.ai assigns both token and request limits the same generic "quota" window ID, so findWindowLimits fell through to array-order fallback. This caused the two bars to swap depending on API response order. Add limit-ID-based matching (zai:tokens → current, zai:requests → week) as a secondary tier after window-ID matching.