Releases: TheMagicTower/summon
Release list
v0.3.0 - 계정 단위 동시성 제한
주요 변경사항
계정 단위 동시성 제한 (Account-Level Concurrency Limiting)
BigModel API의 계정 단위 속도 제한에 대응하기 위한 새로운 기능 추가
문제:
- 여러 Claude Code 인스턴스 동시 실행 시 429 에러 발생
- 계정 단위로 속도 제한이 적용되어 기존 키별 제한으로 대응 불가
솔루션:
account_concurrency설정 필드 추가- 계정 전체의 동시 요청 수를 세마포어로 제어
- 한도 초과 시 요청을 대기 (최대 500분)
- 타임아웃 시 자동 폴백
설정 예시:
```yaml
routes:
- match: "glm-5"
account_concurrency: 1 # 계정 전체 동시 요청 제한
concurrency: 1 # 키당 동시 요청 제한 (기존)
upstream:
url: "https://open.bigmodel.cn/api/anthropic"
auth:
header: "x-api-key"
value: "key1"
pool:
- "key2"
fallback: false
```
기대 효과:
- 429 에러 사전 차단
- 여러 Claude Code 동시 사용 시 안정성 확보
- 타임아웃 시 Anthropic API로 자동 폴백
설치
Linux (x86_64)
```bash
curl -L https://github.com/TheMagicTower/summon/releases/download/v0.3.0/summon-linux-x86_64 -o summon
chmod +x summon
```
macOS (ARM64)
```bash
curl -L https://github.com/TheMagicTower/summon/releases/download/v0.3.0/summon-macos-arm64 -o summon
chmod +x summon
```
macOS (x86_64)
```bash
curl -L https://github.com/TheMagicTower/summon/releases/download/v0.3.0/summon-macos-x86_64 -o summon
chmod +x summon
```
Full Changelog
Full Changelog: v0.2.10...v0.3.0
v0.2.10
v0.2.9
What's Changed
- Add session-affinity key selection for prompt cache reuse by @bluelucifer in #8
Full Changelog: v0.2.8...v0.2.9
What's Changed
- Add session-affinity key selection for prompt cache reuse by @bluelucifer in #8
Full Changelog: v0.2.8...v0.2.9
v0.2.8
새로운 기능
429 응답 시 API 키 쿨다운 적용
429(TOO_MANY_REQUESTS) 응답을 받은 API 키에 쿨다운을 적용하여 rate limit 악화를 방지합니다.
- Retry-After 헤더 지원: 업스트림 서버의
Retry-After헤더를 파싱하여 쿨다운 시간 결정 - 기본 쿨다운: 헤더가 없을 시 60초 쿨다운 적용
- 자동 건너뛰기: 쿨다운 중인 키는
acquire()/acquire_excluding()에서 자동 제외 - 로깅: 쿨다운 진입 시 WARN 레벨로 로깅하여 운영 모니터링 가능
변경사항
KeyPool에 키별 쿨다운 상태(cooldown_until: AtomicU64) 추가parse_retry_after()함수로 Retry-After 헤더 파싱set_cooldown()메서드 추가- 신규 테스트 4개 추가 (총 41개)
전체 변경사항: v0.2.7...v0.2.8
What's Changed
- feat: 429 응답 시 API 키 쿨다운 적용 by @bluelucifer in #7
Full Changelog: v0.2.7...v0.2.8
v0.2.7
변경 사항
신규 기능
- Fallback 모델명 지정:
fallback: "claude-sonnet-4-5-20250929"형태로 폴백 시 호환 모델명으로 교체 지원 - 429 자동 재시도: upstream이 rate limit(429)을 반환하면 다른 API 키로 자동 재시도, 모든 키 소진 시 fallback 적용
버그 수정
- 키 풀 라운드 로빈 분배:
min_by_key동점 편향으로 첫 번째 키만 사용되던 문제 수정.next_idx카운터로 균등 순환 분배
문서
- 다국어 README 7개 + SPEC.md + FAQ.md + CLAUDE.md 최신 사양 반영
429 재시도 흐름
요청 → key0 시도 → 429 → key1 시도 → 429 → key2 시도 → 성공 ✓
요청 → key0~9 전부 429 → fallback 모델로 Anthropic API 폴백
Fallback 설정
routes:
- match: "glm-5"
concurrency: 1
fallback: "claude-sonnet-4-5-20250929"
upstream:
url: "https://open.bigmodel.cn/api/paas/v4"
auth:
header: "Authorization"
value: "Bearer ${GLM_KEY_1}"
pool:
- "Bearer ${GLM_KEY_2}"
- "Bearer ${GLM_KEY_3}"
transformer: "openai"Full Changelog: v0.2.6...v0.2.7
What's Changed
- feat: fallback에 모델명 지정 지원 by @bluelucifer in #6
Full Changelog: v0.2.6...v0.2.7
v0.2.6: API 키 풀 + Least-Connections 분배
API 키 풀 + Least-Connections 분배
일부 제공자(예: GLM-5)는 API 키당 동시 요청 수를 제한합니다. 여러 API 키를 풀로 등록하고 Least-Connections 방식으로 분배하여 총 동시 처리 용량을 확보합니다.
새 기능
auth.pool: 같은 헤더를 공유하는 추가 API 키 목록concurrency: 키당 동시 요청 제한 (예: GLM-5=1, GLM-4-Plus=20)- Least-Connections 분배: 활성 연결이 가장 적은 키로 자동 분배
- 자동 해제: 스트리밍 응답 종료 시
PoolGuard가 키를 자동 반환 - 용량 초과 처리: 모든 키 소진 시 Anthropic 폴백(
fallback: true) 또는 HTTP 429
설정 예시
routes:
- match: "glm-5"
concurrency: 1
upstream:
url: "https://open.bigmodel.cn/api/paas/v4"
auth:
header: "Authorization"
value: "Bearer ${GLM_KEY_1}"
pool:
- "Bearer ${GLM_KEY_2}"
- "Bearer ${GLM_KEY_3}"
transformer: "openai"
model_map: "glm-5"하위 호환
pool/concurrency 미설정 시 기존 동작 그대로 유지됩니다.
Full Changelog: v0.2.5...v0.2.6
v0.2.5: 자체 업데이트 + CLI 개선
새 기능
summon update — 자체 업데이트
- GitHub 최신 릴리스와 현재 버전 비교
- 확인 후 플랫폼에 맞는 바이너리 자동 다운로드 및 교체
- Linux/macOS 지원 (Windows는 install.ps1 안내)
서브커맨드 최상위 승격
기존 summon configure <action> → summon <action>으로 간소화:
summon status # 상태 확인
summon enable # 프록시 활성화
summon disable # 프록시 비활성화
summon start # 백그라운드 시작
summon stop # 중지
summon add # 프로바이더 추가
summon remove # 프로바이더 제거
summon restore # 설정 복원summon configure — 대화형 메뉴
서브커맨드 없이 실행하면 모든 작업을 선택할 수 있는 대화형 메뉴 표시
문서
- README, SPEC, CLAUDE.md 업데이트
- docs 사이트 Usage 페이지에 CLI Management 섹션 추가 (7개 언어)
What's Changed
- feat: summon update + 서브커맨드 최상위 승격 + 대화형 메뉴 by @bluelucifer in #3
Full Changelog: v0.2.4...v0.2.5
v0.2.4: 폴백 기능 (Fallback Feature)
변경 사항 / Changes
폴백 기능 / Fallback Feature
외부 제공자(Z.AI, Kimi 등)가 불안정하거나 장애일 때 Claude Code가 완전히 사용 불가능해지는 문제를 해결합니다.
외부 제공자 실패 시 원본 요청을 Anthropic API로 자동 재시도하여 가용성을 보장합니다.
Resolves the issue where Claude Code becomes completely unusable when external providers are unstable or down.
Automatically retries failed requests via Anthropic API to ensure availability.
주요 변경 / Key Changes:
RouteConfig에fallback: bool필드 추가 (기본값:true)forward()/forward_with_transform()시그니처를&Parts로 변경 (재사용 가능)- 연결 오류 또는 비성공 상태(4xx/5xx) 시 Anthropic API로 자동 재시도
- Add
fallback: boolfield toRouteConfig(default:true) - Change signature to
&Partsfor reuse on retry - Auto-retry via Anthropic on connection error or non-success status
설정 예시 / Configuration:
routes:
- match: "glm"
# fallback: true # 기본값 — 생략 가능
upstream:
url: "https://api.z.ai/api/anthropic"
auth:
header: "x-api-key"
value: "${ZAI_API_KEY}"다운로드 / Downloads
```bash
git clone https://github.com/TheMagicTower/summon.git
cd summon
git checkout v0.2.4
cargo build --release
```
What's Changed
- feat: 외부 제공자 실패 시 Anthropic API 폴백 (Fallback to Anthropic on provider failure) by @bluelucifer in #2
Full Changelog: v0.2.3...v0.2.4
v0.2.3
Full Changelog: v0.2.2...v0.2.3
Full Changelog: v0.2.2...v0.2.3
v0.2.2
Full Changelog: v0.2.1...v0.2.2
Full Changelog: v0.2.1...v0.2.2