Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,23 @@ All notable changes to this project are documented in this file.
Before creating a release tag, add a section whose heading matches the tag name.
For example, tag `v1.2.3` must have a `## [v1.2.3]` section.

## [Unreleased]
## [v0.1.1] - 2026-09-01

### Added
- `DELETE /v1/member` 회원 탈퇴 API를 추가했습니다. 요청 본문에는 `confirmed: true`, 탈퇴 사유인 `deleteReason`, GA 클라이언트 식별자인 `clientId`를 전달해야 합니다.
- `deleteReason`은 `NO_USEFUL_LINKS`, `POOR_SEARCH`, `NO_REVISIT`, `SWITCHED_SERVICE`, `PRIVACY_CONCERN`, `OTHER` 중 하나를 사용합니다.
- 최초 탈퇴 요청에는 최근 발급된 access token이 필요합니다. 재인증이 필요하면 `401 M-009`를 반환하며, 탈퇴가 완료되면 access/refresh token 쿠키가 만료되므로 클라이언트도 로그아웃 상태로 전환해야 합니다.

### Changed
- 링크 저장·중복 확인·메타데이터 수집 시 URL의 공백과 중복 프로토콜을 자동으로 정리하고, 프로토콜이 없으면 `https://`를 보완해 같은 링크를 일관되게 처리합니다.
- 기존 `http://` 주소와 path·query·fragment는 그대로 유지하며, 유효하지 않은 URL은 저장 전에 오류로 안내합니다.

### Removed
- BREAKING: 자체 회원가입·로그인 API(`POST /v1/member/signup`, `POST /v1/member/login`)를 제거했습니다. 인증 진입점은 Google OAuth(`/oauth2/**`)와 토큰 재발급(`/v1/auth/reissue`)으로 단일화되며, 제거된 두 경로는 공개 URL 목록에서도 빠져 401을 응답합니다.
- 자체 로그인 전용 에러코드 `M-001`(중복 이메일)과 `M-003`(비밀번호 불일치)를 제거했습니다. Swagger User 태그의 회원가입·로그인 문서도 함께 사라집니다.

### Security
- 회원 정보에서 비밀번호 필드를 제거했습니다. Base64로 인코딩해 저장하던 비밀번호와 OAuth 가입 시 이메일 평문을 더미 비밀번호로 저장하던 동작이 없어집니다.
- 채팅 히스토리에서 한 질의의 사용자 메시지와 AI 응답에 동일한 `queryId`를 제공합니다. 클라이언트는 이 값으로 질문과 답변을 연결하고 GA 이벤트와도 동일한 질의를 추적할 수 있습니다.

### Fixed
- 새 백엔드 인스턴스의 healthcheck가 성공한 뒤에만 API 트래픽을 전환하고, 실패 시 기존 인스턴스를 유지하도록 배포 흐름을 보강했습니다. 배포 중 클라이언트 요청이 실패할 가능성을 줄였습니다.

## [v0.1.0] - 2026-08-10

Expand All @@ -42,4 +47,5 @@ For example, tag `v1.2.3` must have a `## [v1.2.3]` section.
- 링크, 요약, 채팅 질의 이벤트의 analytics 이름과 payload 정합성을 맞췄습니다.
- 성공한 비동기 작업이 실패로 집계되지 않도록 메트릭 집계 흐름을 정리했습니다.

[v0.1.1]: https://github.com/Team-SoFa/linkiving-core/compare/v0.1.0...v0.1.1
[v0.1.0]: https://github.com/Team-SoFa/linkiving-core/releases/tag/v0.1.0
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

group = 'com.sofa'
version = '0.1.0'
version = '0.1.1'

base {
archivesName = 'linkiving-core'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public OpenAPI openApi(ObjectProvider<BuildProperties> buildProperties) {
String version = buildProperties.stream()
.findFirst()
.map(BuildProperties::getVersion)
.orElse("0.1.0");
.orElse("0.1.1");

return new OpenAPI()
.info(new Info()
Expand Down
Loading