Skip to content

Releases: TheMagicTower/summon

v0.3.0 - 계정 단위 동시성 제한

Choose a tag to compare

@bluelucifer bluelucifer released this 16 Feb 12:55

주요 변경사항

계정 단위 동시성 제한 (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

v0.2.10...v0.3.0

Full Changelog: v0.2.10...v0.3.0

v0.2.10

Choose a tag to compare

@github-actions github-actions released this 14 Feb 09:44

Full Changelog: v0.2.9...v0.2.10

v0.2.9

Choose a tag to compare

@bluelucifer bluelucifer released this 14 Feb 09:00
75831dc

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

Choose a tag to compare

@bluelucifer bluelucifer released this 14 Feb 06:41

새로운 기능

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

Full Changelog: v0.2.7...v0.2.8

v0.2.7

Choose a tag to compare

@bluelucifer bluelucifer released this 14 Feb 01:45

변경 사항

신규 기능

  • 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

Full Changelog: v0.2.6...v0.2.7

v0.2.6: API 키 풀 + Least-Connections 분배

Choose a tag to compare

@github-actions github-actions released this 13 Feb 12:56

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 개선

Choose a tag to compare

@bluelucifer bluelucifer released this 11 Feb 01:21
1e7dfaf

새 기능

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)

Choose a tag to compare

@bluelucifer bluelucifer released this 10 Feb 21:48
0335f9a

변경 사항 / 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:

  • RouteConfigfallback: bool 필드 추가 (기본값: true)
  • forward() / forward_with_transform() 시그니처를 &Parts로 변경 (재사용 가능)
  • 연결 오류 또는 비성공 상태(4xx/5xx) 시 Anthropic API로 자동 재시도
  • Add fallback: bool field to RouteConfig (default: true)
  • Change signature to &Parts for 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

Choose a tag to compare

@github-actions github-actions released this 09 Feb 05:56

Full Changelog: v0.2.2...v0.2.3

Full Changelog: v0.2.2...v0.2.3

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 09 Feb 05:54

Full Changelog: v0.2.1...v0.2.2

Full Changelog: v0.2.1...v0.2.2