Skip to content

Group model quotas by reset window and add dividers#67

Merged
kargnas merged 2 commits intomainfrom
codex/model-group-dividers
Feb 6, 2026
Merged

Group model quotas by reset window and add dividers#67
kargnas merged 2 commits intomainfrom
codex/model-group-dividers

Conversation

@kargnas
Copy link
Member

@kargnas kargnas commented Feb 6, 2026

What

Add shared model usage grouping (same reset window + same remaining%) with horizontal dividers between groups.

Why

Gemini CLI already groups identical reset windows in the UI; extend the same behavior to other providers and keep the divider logic centralized.

Changes

  • Generalize grouping into ModelUsageGrouper (stricter key; no grouping when reset is missing)
  • Add shared menu helper to render grouped model rows + reset/pace + horizontal dividers
  • Plumb per-model reset times through DetailedUsage.modelResetTimes
  • Antigravity parses per-model reset times and uses the shared grouped rendering

Verification

  • make lint-swift
  • xcodebuild -scheme CopilotMonitor -configuration Debug clean build
  • Manual run; verified menu structure via /tmp/provider_debug.log (look for adding N divider(s) between model groups)

@op-gg-ai-devops
Copy link
Contributor

기존 Gemini 로직을 ModelUsageGrouper로 일반화해서 다른 프로바이더(Antigravity 등)도 리셋 타임별로 묶어 보여주고, 그룹 간에 구분선 추가해서 가독성 높인 작업이네.

일단 GeminiModelUsageGrouper를 일반화해서 재사용성 높인 건 아주 칭찬해, 코드는 이렇게 짜야지. Double 비교할 때 bitPattern 써서 해시 키 만든 건 부동소수점 오차 생각한 똑똑한 접근이다. 근데 AntigravityProvider에서 ISO8601DateFormatter를 매번 새로 찍어내는데, 그거 꽤 무거운 놈이니까 static이나 프로퍼티로 빼서 재사용해라, 성능 낭비야. 그리고 DetailedUsage에 필드 추가하면서 Codable 쪽 다 건드렸는데, modelBreakdown이랑 modelResetTimes 키값 씽크 안 맞을 때 UI 방어 로직은 확실한지 체크해봐.


이건 맛보기 리뷰고, 버그나 보안 문제까지 탈탈 털어주는 진짜 리뷰가 필요하면 댓글에 @opgginc/op-gg-ai-devops please review this라고 쓰거나, 리뷰어에 @opgginc/op-gg-ai-devops 팀을 추가해. (추가해두면 커밋할 때마다 자동으로 리뷰해줌)

@kargnas
Copy link
Member Author

kargnas commented Feb 6, 2026

@opgginc/op-gg-ai-devops

@op-gg-ai-devops
Copy link
Contributor

op-gg-ai-devops bot commented Feb 6, 2026

✅ AI Code Review Completed

상태 작업 결과
리뷰 계획 수립 및 현황판 초기화 완료
PR 변경 사항 및 커밋 히스토리 분석 완료
CI/CD 상태 및 로그 확인 완료
문서 최신화 확인 (README.md, AGENTS.md 등) 완료
심층 코드 리뷰 (로직, 보안, 성능, 스타일) 완료
리뷰 코멘트 작성 및 게시 완료
상태 업데이트 (완료) 완료

모델 그룹화 로직과 Antigravity 파싱 개선이 잘 적용되었습니다. 구분선 표시 조건에 대한 작은 수정 제안을 남겼으니 확인 부탁드립니다. 수고하셨습니다!

Reviewed with google/gemini-3-pro-preview


📋 View Full Logs

Copy link
Contributor

@op-gg-ai-devops op-gg-ai-devops bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 OP.GG DevOps AI Code Review

요약

이번 PR은 모델별 사용량 표시 로직을 개선하여, 동일한 초기화(Reset) 시간과 사용량을 가진 모델들을 그룹화해서 보여주는 기능을 추가했군요. 또한 Antigravity 프로바이더에 대해서도 Reset 시간을 파싱하도록 업데이트했습니다. 전반적으로 코드 구조가 깔끔해졌고 UI 가독성이 좋아질 것 같습니다.

주요 변경 사항

  • 그룹화 로직 추상화: GeminiModelUsageGrouperModelUsageGrouper로 일반화하여 다른 프로바이더에서도 재사용 가능하게 변경한 점이 좋습니다.
  • Antigravity 개선: Antigravity 모델들의 Reset 시간을 파싱하여 상세 정보에 표시하도록 했습니다.
  • UI 통일: addGroupedModelUsageSection 헬퍼 함수를 통해 여러 프로바이더의 상세 메뉴 UI를 일관성 있게 유지하도록 했습니다.

제안 사항

ProviderMenuBuilder에서 구분선(Divider)을 추가하는 조건(didGroup)에 대해 작은 개선 제안을 드립니다. 그룹핑이 전혀 일어나지 않은 경우(모든 모델의 윈도우가 다른 경우)에도 구분선이 필요할 수 있는데, 현재 로직으로는 생략될 수 있습니다.

CI/CD 파이프라인은 모두 통과(✅)했습니다. 문서화 상태도 양호합니다.

Co-authored-by: op-gg-ai-devops[bot] <255644809+op-gg-ai-devops[bot]@users.noreply.github.com>
@kargnas kargnas merged commit 39f8903 into main Feb 6, 2026
11 checks passed
@kargnas kargnas deleted the codex/model-group-dividers branch February 6, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant