connectbase-client 3.12.0 → 3.13.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 CHANGED
@@ -3,6 +3,50 @@
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
+ ## [3.13.1] - 2026-05-13
7
+
8
+ ### Documentation — README batch/transaction 예제 타입 회귀 수정
9
+
10
+ README 의 `cb.database.batch()` / `cb.database.transaction()` 예제가 구 시그니처
11
+ (`table: 'string'`) 를 사용해 `tsc --noEmit` 에서 `TS2353` 발생하던 문제 수정.
12
+
13
+ - `table:` → `table_id:` (UUID, 실제 `BatchOperation` 타입과 일치)
14
+ - 3.12+ 의 `success:false` throw 동작 반영 — try/catch 패턴 명시
15
+
16
+ 코드 변경은 없음. README 만 갱신.
17
+
18
+ ## [3.13.0] - 2026-05-13
19
+
20
+ ### Removed — `PlatformIssueDetail.triage_summary` / `triaged_at` 필드
21
+
22
+ ConnectBase 가 Platform Issue 의 AI 자동 분류 (triage) 기능을 통째 제거함에 따라
23
+ SDK 의 응답 타입에서도 다음 필드를 제거.
24
+
25
+ ```typescript
26
+ // 이전 (3.12 이하)
27
+ interface PlatformIssueDetail {
28
+ triage_summary?: string // ← 제거
29
+ triaged_at?: string // ← 제거
30
+ // ...
31
+ }
32
+
33
+ // 3.13+ — AI 요약 필드 없음. status / resolution_note / external_links 로 진행 확인.
34
+ ```
35
+
36
+ `status='triaged'` enum 값은 운영자 수동 분류 의미로 유지된다 (코드 변경 불필요).
37
+
38
+ ### Behavior change — `cb.support.reportPlatformBug` 의 category/severity 자동 보정 없음
39
+
40
+ 이전: AI triage 가 발행 직후 비동기로 category / severity 를 보정.
41
+ 3.13+: 운영자가 admin 콘솔에서 수동 조정. SDK 발행자가 지정한 값이 그대로 유지된다.
42
+
43
+ ### Backend wiring (참고)
44
+
45
+ - `backend/cmd/core-server/app/worker/platform_issue_triage/` 워커 전체 제거
46
+ - `ent` 컬럼 6개 (`triage_summary`/`triage_keywords`/`triage_similar_issue_ids`/`body_embedding`/`triaged_at`/`triage_skip_reason`) 드롭
47
+ - `POST /v1/admin/platform-issues/:id/retriage` + `/bulk-retriage` endpoint 제거
48
+ - MCP `admin_retriage_platform_issue` 도구 제거
49
+
6
50
  ## [3.12.0] - 2026-05-13
7
51
 
8
52
  ### Fixed — `cb.database.batch()` / `cb.database.transaction()` silent success 회귀 (platform-issue 019e1c9c)
package/README.md CHANGED
@@ -587,26 +587,41 @@ nearby.results.forEach(place => {
587
587
 
588
588
  #### Batch & Transactions
589
589
 
590
+ `table_id` 는 항상 UUID. 콘솔/REST 로 생성한 테이블의 UUID 를 그대로 사용한다.
591
+
592
+ v3.12+ 부터 server 가 부분 실패(`success: false`)를 응답하면 SDK 가 첫 실패 op 의
593
+ error 메시지로 throw 한다 — silent success 회귀 방지 차원. 호출자는 try/catch 로 감싼다.
594
+
590
595
  ```typescript
591
596
  // Batch: atomic multi-table operations
592
- await cb.database.batch([
593
- { type: 'create', table: 'orders', data: { product: 'A', qty: 1 } },
594
- { type: 'update', table: 'inventory', doc_id: 'item-a', operators: {
595
- qty: { type: 'increment', value: -1 }
596
- }},
597
- { type: 'update', table: 'stats', doc_id: 'daily', operators: {
598
- order_count: { type: 'increment', value: 1 },
599
- last_order: { type: 'serverTimestamp' }
600
- }}
601
- ])
597
+ try {
598
+ const result = await cb.database.batch([
599
+ { type: 'create', table_id: ORDERS_TABLE_ID, data: { product: 'A', qty: 1 } },
600
+ { type: 'update', table_id: INVENTORY_TABLE_ID, doc_id: 'item-a', operators: {
601
+ qty: { type: 'increment', value: -1 }
602
+ }},
603
+ { type: 'update', table_id: STATS_TABLE_ID, doc_id: 'daily', operators: {
604
+ order_count: { type: 'increment', value: 1 },
605
+ last_order: { type: 'serverTimestamp' }
606
+ }}
607
+ ])
608
+ // result.success, result.results[i].{success, doc_id, error}
609
+ } catch (e) {
610
+ // RLS 거부 / 검증 실패 / table_id 오타 등 — 전체 batch 가 atomic 하게 롤백
611
+ console.error('batch failed:', (e as Error).message)
612
+ }
602
613
 
603
614
  // Transaction: read-then-write with ACID guarantees
604
- await cb.database.transaction(
605
- [{ table: 'accounts', doc_id: 'user-1', alias: 'sender' }],
606
- [{ type: 'update', table: 'accounts', doc_id: 'user-1', operators: {
607
- balance: { type: 'increment', value: -100 }
608
- }}]
609
- )
615
+ try {
616
+ await cb.database.transaction(
617
+ [{ table_id: ACCOUNTS_TABLE_ID, doc_id: 'user-1', alias: 'sender' }],
618
+ [{ type: 'update', table_id: ACCOUNTS_TABLE_ID, doc_id: 'user-1', operators: {
619
+ balance: { type: 'increment', value: -100 }
620
+ }}]
621
+ )
622
+ } catch (e) {
623
+ console.error('transaction failed:', (e as Error).message)
624
+ }
610
625
  ```
611
626
 
612
627
  #### Populate (Relation Query / JOIN)
package/dist/index.d.mts CHANGED
@@ -7546,7 +7546,7 @@ declare class SupportAPI {
7546
7546
  * 본인이 발행한 platform issue 의 처리 진행 상황을 단건 조회.
7547
7547
  *
7548
7548
  * AI 가 "내가 발행한 이슈 처리됐어?" 를 폴링하는 표준 경로. status / resolution_note /
7549
- * triage_summary / external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
7549
+ * external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
7550
7550
  *
7551
7551
  * @throws ApiError 404 — 본인 issue 가 아니거나 존재하지 않음
7552
7552
  */
@@ -7572,9 +7572,9 @@ interface ReportPlatformBugRequest {
7572
7572
  title: string;
7573
7573
  /** 본문 (≤16KB, markdown) */
7574
7574
  body: string;
7575
- /** 카테고리. 기본 `other`. AI triage 보정. */
7575
+ /** 카테고리. 기본 `other`. 운영자가 admin 콘솔에서 조정 가능. */
7576
7576
  category?: PlatformIssueCategory;
7577
- /** 긴급도. 기본 `medium`. AI triage 보정. */
7577
+ /** 긴급도. 기본 `medium`. 운영자가 admin 콘솔에서 조정 가능. */
7578
7578
  severity?: PlatformIssueSeverity;
7579
7579
  /** AppMember 가 없는 경우 회신용 이메일. */
7580
7580
  reporterEmail?: string;
@@ -7618,12 +7618,11 @@ interface ReportPlatformBugResponse {
7618
7618
  /**
7619
7619
  * Platform issue 의 처리 진행 상황 (reporter 시점).
7620
7620
  *
7621
- * admin-only 필드(`assignee_user_id`, internal triage signal) 는 server 가 redact.
7621
+ * admin-only 필드(`assignee_user_id` ) 는 server 가 redact.
7622
7622
  *
7623
7623
  * 주요 필드:
7624
7624
  * - `status` : `open` → `triaged` → `in_progress` → `resolved` | `wontfix` | `duplicate`
7625
7625
  * - `resolution_note` : 단말 상태 진입 시 ConnectBase 운영팀이 작성한 처리 결과 (markdown)
7626
- * - `triage_summary` : AI triage 가 작성한 1줄 요약
7627
7626
  * - `external_links` : 운영팀이 연결한 GitHub PR / Linear ticket 등
7628
7627
  * - `resolved_at` : `resolved`/`wontfix` 진입 시각 (해결됐는지 빠른 검사용)
7629
7628
  */
@@ -7639,8 +7638,6 @@ interface PlatformIssueDetail {
7639
7638
  sdk_version?: string;
7640
7639
  sdk_platform?: 'web' | 'node' | 'unity' | 'godot' | 'unreal' | 'cli' | 'mcp' | 'other';
7641
7640
  environment?: 'production' | 'staging' | 'development' | 'unknown';
7642
- triage_summary?: string;
7643
- triaged_at?: string;
7644
7641
  external_links?: Array<{
7645
7642
  kind: string;
7646
7643
  url: string;
package/dist/index.d.ts CHANGED
@@ -7546,7 +7546,7 @@ declare class SupportAPI {
7546
7546
  * 본인이 발행한 platform issue 의 처리 진행 상황을 단건 조회.
7547
7547
  *
7548
7548
  * AI 가 "내가 발행한 이슈 처리됐어?" 를 폴링하는 표준 경로. status / resolution_note /
7549
- * triage_summary / external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
7549
+ * external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
7550
7550
  *
7551
7551
  * @throws ApiError 404 — 본인 issue 가 아니거나 존재하지 않음
7552
7552
  */
@@ -7572,9 +7572,9 @@ interface ReportPlatformBugRequest {
7572
7572
  title: string;
7573
7573
  /** 본문 (≤16KB, markdown) */
7574
7574
  body: string;
7575
- /** 카테고리. 기본 `other`. AI triage 보정. */
7575
+ /** 카테고리. 기본 `other`. 운영자가 admin 콘솔에서 조정 가능. */
7576
7576
  category?: PlatformIssueCategory;
7577
- /** 긴급도. 기본 `medium`. AI triage 보정. */
7577
+ /** 긴급도. 기본 `medium`. 운영자가 admin 콘솔에서 조정 가능. */
7578
7578
  severity?: PlatformIssueSeverity;
7579
7579
  /** AppMember 가 없는 경우 회신용 이메일. */
7580
7580
  reporterEmail?: string;
@@ -7618,12 +7618,11 @@ interface ReportPlatformBugResponse {
7618
7618
  /**
7619
7619
  * Platform issue 의 처리 진행 상황 (reporter 시점).
7620
7620
  *
7621
- * admin-only 필드(`assignee_user_id`, internal triage signal) 는 server 가 redact.
7621
+ * admin-only 필드(`assignee_user_id` ) 는 server 가 redact.
7622
7622
  *
7623
7623
  * 주요 필드:
7624
7624
  * - `status` : `open` → `triaged` → `in_progress` → `resolved` | `wontfix` | `duplicate`
7625
7625
  * - `resolution_note` : 단말 상태 진입 시 ConnectBase 운영팀이 작성한 처리 결과 (markdown)
7626
- * - `triage_summary` : AI triage 가 작성한 1줄 요약
7627
7626
  * - `external_links` : 운영팀이 연결한 GitHub PR / Linear ticket 등
7628
7627
  * - `resolved_at` : `resolved`/`wontfix` 진입 시각 (해결됐는지 빠른 검사용)
7629
7628
  */
@@ -7639,8 +7638,6 @@ interface PlatformIssueDetail {
7639
7638
  sdk_version?: string;
7640
7639
  sdk_platform?: 'web' | 'node' | 'unity' | 'godot' | 'unreal' | 'cli' | 'mcp' | 'other';
7641
7640
  environment?: 'production' | 'staging' | 'development' | 'unknown';
7642
- triage_summary?: string;
7643
- triaged_at?: string;
7644
7641
  external_links?: Array<{
7645
7642
  kind: string;
7646
7643
  url: string;
package/dist/index.js CHANGED
@@ -9284,7 +9284,7 @@ var SupportAPI = class {
9284
9284
  * 본인이 발행한 platform issue 의 처리 진행 상황을 단건 조회.
9285
9285
  *
9286
9286
  * AI 가 "내가 발행한 이슈 처리됐어?" 를 폴링하는 표준 경로. status / resolution_note /
9287
- * triage_summary / external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
9287
+ * external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
9288
9288
  *
9289
9289
  * @throws ApiError 404 — 본인 issue 가 아니거나 존재하지 않음
9290
9290
  */
package/dist/index.mjs CHANGED
@@ -9242,7 +9242,7 @@ var SupportAPI = class {
9242
9242
  * 본인이 발행한 platform issue 의 처리 진행 상황을 단건 조회.
9243
9243
  *
9244
9244
  * AI 가 "내가 발행한 이슈 처리됐어?" 를 폴링하는 표준 경로. status / resolution_note /
9245
- * triage_summary / external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
9245
+ * external_links 로 ConnectBase 운영팀의 처리 상태를 확인.
9246
9246
  *
9247
9247
  * @throws ApiError 404 — 본인 issue 가 아니거나 존재하지 않음
9248
9248
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "connectbase-client",
3
- "version": "3.12.0",
3
+ "version": "3.13.1",
4
4
  "description": "Connect Base JavaScript/TypeScript SDK for browser and Node.js",
5
5
  "repository": {
6
6
  "type": "git",