Skip to content

Conversation

@Palbahngmiyine
Copy link
Member

TBA

Palbahngmiyine and others added 7 commits January 5, 2026 10:00
…; update .gitignore to retain .vercel/ entry
- effect: 3.19.6 → 3.19.14
- @biomejs/biome: 2.3.7 → 2.3.11
- typedoc: 0.28.14 → 0.28.15
- vite-tsconfig-paths: 5.1.4 → 6.0.3
- vitest: 4.0.14 → 4.0.16

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
카카오 BMS 메시지 발송을 위한 타입 및 스키마를 구현합니다.

- 8가지 chatBubbleType 지원 (TEXT, IMAGE, WIDE, WIDE_ITEM_LIST, COMMERCE, CAROUSEL_FEED, CAROUSEL_COMMERCE, PREMIUM_VIDEO)
- chatBubbleType별 필수 필드 검증 로직 추가
- BMS 복합 타입 스키마 추가 (버튼, 캐러셀, 커머스, 쿠폰, 비디오, 와이드아이템)
- 단위 테스트 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added ClientError class for handling 4xx client errors with enhanced toString method for better error reporting in production and development environments.
- Introduced ServerError class for managing 5xx server errors, including detailed response body handling for non-production environments.
- Deprecated ApiError in favor of ClientError for improved clarity and consistency.
- Updated defaultFetcher and effectErrorHandler to utilize new error classes, ensuring better error management across the application.

This update enhances error handling capabilities and improves the overall robustness of the application.
- Deleted multiple example files for sending Kakao friend talks, including plain text, with buttons, with images, and with images and buttons.
- These files contained sample code for sending messages using the SolapiMessageService, which is no longer needed.

This cleanup helps streamline the codebase by removing deprecated examples.
- Introduced multiple new example files for sending Kakao BMS messages, including:
  - `send_bms_free_carousel_commerce.js`: Example for CAROUSEL_COMMERCE type messages.
  - `send_bms_free_carousel_feed.js`: Example for CAROUSEL_FEED type messages.
  - `send_bms_free_commerce.js`: Example for COMMERCE type messages.
  - `send_bms_free_image_with_buttons.js`: Example for IMAGE type messages with buttons.
  - `send_bms_free_image.js`: Example for basic IMAGE type messages.
  - `send_bms_free_premium_video.js`: Example for PREMIUM_VIDEO type messages.
  - `send_bms_free_text_with_buttons.js`: Example for TEXT type messages with buttons.
  - `send_bms_free_text.js`: Example for basic TEXT type messages.
  - `send_bms_free_wide_item_list.js`: Example for WIDE_ITEM_LIST type messages.
  - `send_bms_free_wide.js`: Example for WIDE type messages.

These additions enhance the documentation and provide clear usage examples for developers integrating with the Kakao BMS service.
@Palbahngmiyine Palbahngmiyine self-assigned this Jan 15, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @Palbahngmiyine, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly upgrades the SOLAPI Node.js SDK by integrating advanced features for Kakao Brand Message Service (BMS) Free messages. It introduces a new "BMS_FREE" message type, accompanied by a suite of detailed examples and robust schema validations to support diverse message formats like carousels, commerce, and rich media. Concurrently, the SDK's error handling has been refined to provide more granular and informative feedback, distinguishing between client and server-side issues. These changes aim to enhance the SDK's capabilities for rich messaging while improving developer experience through clearer error reporting and updated development tooling.

Highlights

  • Kakao BMS Free Message Support: Introduced extensive support for various Kakao Brand Message Service (BMS) Free message types, including new examples and dedicated schema definitions for Carousel Commerce, Carousel Feed, Commerce, Image, Premium Video, Text, Wide, and Wide Item List.
  • Enhanced Error Handling: Refactored API error handling with distinct "ClientError" (4xx) and "ServerError" (5xx) classes, replacing the generic "ApiError", and improved error messages for better debugging in development environments.
  • Robust Schema Validation: Implemented comprehensive Effect Schema validations for all new BMS message components, ensuring data integrity and correct structure based on "chatBubbleType" requirements.
  • Dependency Updates: Updated several development dependencies, including "@biomejs/biome", "effect", "typedoc", "vite-tsconfig-paths", and "vitest", ensuring the project uses the latest stable versions.
  • AI Agent Configuration: Added new configuration files (".claude/agents/tidy-first.md" and "CLAUDE.md") to integrate a "Tidy First" refactoring specialist AI agent, providing structured guidance for code improvements.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a significant and well-executed feature update, introducing support for Kakao's BMS_FREE message type and bumping the package version to 5.5.4. The changes are comprehensive, including the addition of robust validation schemas for new BMS content types using effect/schema, and a thoughtful refactoring of error handling to be more specific with ClientError and ServerError. The inclusion of detailed examples and thorough unit tests for the new functionality is commendable and greatly improves the quality and usability of the SDK. The code is clean, well-structured, and demonstrates a strong focus on type safety and developer experience. Overall, this is an excellent contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant