Skip to content

Usage Manager 2.1

Choose a tag to compare

@beyondworks beyondworks released this 22 Sep 01:35
· 25 commits to main since this release

2.0 이후의 변화는 대부분 압축을 실제로 붙잡는 일에 관한 것이다.

압축은 알림이 아니라 훅이 붙잡는다

앱이 세션 크기를 미리 재서 대비하는 방식은 이길 수 없는 경쟁이었다. 도구를 한 번에 여러 개 부르면 한 응답에 3만 토큰이 늘고, 앱이 알아차린 순간에는 압축이 이미 시작된 뒤다. 실측에서 1초 차이로 놓쳤다.

이제 압축 직전에 끼어드는 훅이 그 자리에서 판단한다. 훅이 불렸다는 사실 자체가 세션이 압축 지점에 닿았다는 뜻이므로 미리 맞힐 필요가 없다. 앱이 꺼져 있어도, 앱이 보지 못하는 세션에서도 동작한다.

붙잡지 않는 경우를 분명히 했다

판단을 그르쳐 세션을 묶어 두는 쪽이 압축 한 번을 놓치는 것보다 나쁘다.

  • 세션이 한도 자체에 닿았을 때. 그때 일어나는 것은 압축이 아니라 오류이고, 오류 뒤의 복구용 압축까지 막으면 세션이 멈춘 채 스스로 풀지 못한다. 아직 보내지 않은 다음 요청의 크기는 이미 쌓인 도구 결과까지 세어 가늠한다.
  • 크기를 잴 수 없을 때. 기록을 8MB까지 거슬러 봐도 토큰 수를 못 찾으면 통과시킨다.
  • 서브에이전트의 압축일 때. 부모의 세션 번호를 쓰므로 여기서 붙잡으면 부모 몫을 먼저 써 버린다.

보류 시간은 알림이 에이전트에게 닿은 순간부터 10분이다. 알림과 마커는 자기가 속한 압축보다 오래 살아남지 않는다.

세션마다 압축 횟수와 clear 권장

각 행에 압축을 몇 번 거쳤는지 1/3 꼴로 붙는다. 세션 이름 끝에 손으로 적어 둔 표기는 표시에서만 떼어 낸다.

기준에 닿으면 clear를 권한다. 압축을 거듭해도 되찾는 공간은 거의 늘지 않는 반면 요약의 요약만 쌓이기 때문이다(1M 세션 압축 142건: 첫 압축 뒤 31,233 토큰, 다섯 번째 뒤 39,891 토큰). 직전 요약이 45,000 토큰을 넘으면 기준 전이라도 권한다. 앱은 권하기만 하고 아무것도 지우지 않는다.

그 밖에

  • 큰 도구 결과 하나가 세션을 목록에서 사라지게 하던 문제
  • 한도 조회가 429를 받으면 서버가 말한 시간만큼 기다리고, 조회에 실패해도 직전 값을 남긴다
  • 세션 번호를 최상위 키에서만 읽는다 (도구 응답 안의 다른 세션 번호를 잡던 문제)
  • 사용자가 직접 둔 자동 압축 지점 설정을 제거 시 원래대로 되돌린다

설치

UsageManager-2.1-apple-silicon.dmg (Apple Silicon) 또는 UsageManager-2.1-intel.dmg (Intel). macOS 14 이상.

서명은 ad-hoc이고 공증은 받지 않았다. 처음 열 때 경고가 뜨면 우클릭 → 열기를 한 번 하거나 xattr -dr com.apple.quarantine "/Applications/Usage Manager.app".