connectbase-client 5.5.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/dist/connect-base.umd.js +5 -5
- package/dist/index.d.mts +36 -2
- package/dist/index.d.ts +36 -2
- package/dist/index.js +66 -11
- package/dist/index.mjs +66 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,48 @@
|
|
|
3
3
|
본 SDK 의 모든 주요 변경사항을 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/) 형식으로 기록합니다.
|
|
4
4
|
버전은 [Semantic Versioning](https://semver.org/lang/ko/) 을 따릅니다.
|
|
5
5
|
|
|
6
|
+
## [5.6.1] - 2026-08-01
|
|
7
|
+
|
|
8
|
+
### Docs — `endpoint://` 터널 모델의 실질 상한 정정
|
|
9
|
+
|
|
10
|
+
**동작 변경 없음** (JSDoc 문구만). 5.6.0 은 `options.timeout` 상한을 300초로 안내하면서
|
|
11
|
+
"`endpoint://` 로 연결한 자체 호스팅 모델은 앞단 CDN 때문에 ~100초가 실질 상한" 이라는
|
|
12
|
+
단서를 달았다. 그 사이 백엔드가 ConnectBase→터널 구간을 클러스터 내부 직결로 바꿔
|
|
13
|
+
(`TUNNEL_PROXY_UPSTREAM_URL`) CDN 을 아예 거치지 않게 됐다 — 이제 이 구성도 300초를 다 쓴다.
|
|
14
|
+
낡은 단서를 그대로 두면 쓸 수 있는 예산을 스스로 낮춰 잡게 되므로 정정한다.
|
|
15
|
+
|
|
16
|
+
## [5.6.0] - 2026-08-01
|
|
17
|
+
|
|
18
|
+
### Added — `cb.ai.chat(request, options)` 의 생성 예산 (`options.timeout`)
|
|
19
|
+
|
|
20
|
+
수천~1만 토큰짜리 긴 생성이 **완성된 뒤에 통째로 버려졌다** (platform-issue 019fbb42). SDK 공통
|
|
21
|
+
기본 타임아웃 30초가 AI 호출에도 그대로 걸렸고, 서버리스 함수 안의 `ctx.cb` 는 그 값을 올릴
|
|
22
|
+
자리조차 없었다 — 함수의 `timeout` 을 300초로 잡아도 막는 것은 함수 안의 AI 호출이었다. 설령
|
|
23
|
+
클라이언트를 늘려도 서버가 90초에서 잘랐다. 실패가 조용해서(빈 응답·잘린 본문) 받는 쪽은
|
|
24
|
+
"게이트웨이가 끊었다" 와 "모델이 형식을 어겼다" 를 구분할 수 없었다.
|
|
25
|
+
|
|
26
|
+
- `chat(request, { timeout })` — 이 1회 생성의 **서버 예산**(ms). 상한 300초(서버리스 함수의
|
|
27
|
+
최대 `timeout` 과 같은 값), 넘기면 clamp.
|
|
28
|
+
- 미지정 기본값을 30초 → **90초**(서버 기본값과 동일)로 올렸다. 클라이언트가 서버보다 먼저
|
|
29
|
+
끊으면 서버가 만든 `504 provider_timeout` 이 호출자에게 영영 도달하지 못한다.
|
|
30
|
+
- 클라이언트 abort 는 서버 예산보다 10초 뒤 — 그래서 시간이 넘치면 **504 가 먼저 도착**한다.
|
|
31
|
+
- `chat(request, { signal })` — 진행 중 요청 취소.
|
|
32
|
+
- 우선순위: `options.timeout` → 생성 시 `requestTimeoutMs` → 90초.
|
|
33
|
+
|
|
34
|
+
300초로도 부족한 생성은 `chatStream` 을 쓴다 — 스트리밍은 총량 상한이 없고 청크 간 idle 만 본다.
|
|
35
|
+
|
|
36
|
+
### Fixed — 게이트웨이가 본문을 갈아치운 5xx 도 `code` 를 갖는다
|
|
37
|
+
|
|
38
|
+
서버는 504 에 `{"error":"provider_timeout","provider":...,"model":...}` 를 실어 보내지만,
|
|
39
|
+
**Cloudflare 는 오리진의 502/504 본문을 자기 에러 페이지로 통째로 교체한다** (실측: 서버가 만든
|
|
40
|
+
JSON 이 클라이언트에는 `error code: 504` / `text/plain` 으로 도착). 그러면 `code` 가 통째로
|
|
41
|
+
사라져, 호출자는 "게이트웨이가 끊었다" 와 "모델이 이상한 응답을 줬다" 를 코드로 가를 수 없었다.
|
|
42
|
+
HTTP/2 에서는 `statusText` 도 빈 문자열이라 메시지마저 `"Unknown error"` 였다.
|
|
43
|
+
|
|
44
|
+
- 본문에 코드가 하나도 없을 때만 상태 코드에서 코드를 복원한다 — 502 `bad_gateway`,
|
|
45
|
+
503 `service_unavailable`, 504 `gateway_timeout`. **서버가 준 코드는 절대 덮지 않는다.**
|
|
46
|
+
- 같은 경우 메시지도 상태에 맞는 문장으로 채운다.
|
|
47
|
+
|
|
6
48
|
## [5.4.1] - 2026-07-31
|
|
7
49
|
|
|
8
50
|
### Docs — 함수 안에서 `postponeBilling()` 을 쓰는 방법 (`subscription:manage`)
|