Skip to content

release: 최고 레벨(미션 없음) 응답 및 주간 회고 현황 반영#279

Merged
Develop-KIM merged 1 commit into
mainfrom
develop
Jul 8, 2026
Merged

release: 최고 레벨(미션 없음) 응답 및 주간 회고 현황 반영#279
Develop-KIM merged 1 commit into
mainfrom
develop

Conversation

@Develop-KIM

Copy link
Copy Markdown
Member

개요

develop의 변경사항을 main(운영)에 반영합니다.

주요 변경

  • feat(achievement): 최고 레벨(미션 없음) 응답 지원 — CurrentMissionResponse.mission nullable, 최고 레벨 분기에서도 이번 주 회고 현황(weeklyStatus) 계산해 반환(buildWeeklyStatusForUser 분리), confirmLevelUp 최근 미션 폴백
  • 관련 테스트 갱신(mission nullable 대응, 최고 레벨 동작 테스트 추가)

확인

  • 전체 테스트 통과, develop→main 병합 충돌 없음(dry-run 확인)

🤖 Generated with Claude Code

- CurrentMissionResponse.mission 을 nullable 로 변경해 최고 레벨에서 미션 없이 응답
- 최고 레벨 분기에서도 이번 주 회고 현황(weeklyStatus) 계산해 반환
- confirmLevelUp: 진행 중 미션이 없을 때 최근 미션으로 폴백

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Develop-KIM Develop-KIM merged commit e3aae1c into main Jul 8, 2026
6 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 428dcf1afb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

val missionLevel = userLevel.currentLevel + 1
val mission = missionRepository.findByLevel(missionLevel)

if (mission == null) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Gate no-mission responses to max level

This branch treats every missing Mission definition as the terminal-level state. Because levels 1–10 are the configured progression and currentLevel + 1 can be any of those levels, a missing seed/deploy row for e.g. Lv3 now returns 200 with mission: null and weekly status for a Lv2 user instead of surfacing MissionDefinitionNotFoundException, making users look maxed out and hiding the data/configuration error. Please only take this path when the user is actually at the cap (or compare against the max mission level) and keep throwing for lower levels.

Useful? React with 👍 / 👎.

currentLevel = userLevel.currentLevel,
mission = null,
weeklyStatus = buildWeeklyStatusForUser(userId),
popup = lastMission?.let { getPopupStatus(it) } ?: PopupStatus(exists = false, type = null),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Create a popup state for the final level-up

For a user who completed Lv10 after already confirming the popup on the Lv10 mission, this reuses that completed mission's existing levelUpPopupShown=true, so the max-level response never exposes a LEVEL_UP popup for reaching level 10. Earlier level-ups work because awardNextLevel creates a new mission with levelUpPopupShown=false; at the cap no next mission is created, so the final level-up needs its own persisted/derived popup state before getPopupStatus can report it.

Useful? React with 👍 / 👎.

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