Skip to content

feat: 자유기록 종료 시 이름 입력 모달 제거 - #228

Merged
JioCoder merged 1 commit into
mainfrom
feat/remove-free-record-name-modal
Oct 12, 2026
Merged

JioCoder merged 1 commit into
mainfrom
feat/remove-free-record-name-modal

Conversation

@JioCoder

@JioCoder JioCoder commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

무엇을

자유기록을 마치면 뜨던 "자유기록 이름을 정해주세요" 모달을 없앱니다.
종료하면 바로 마감되고, 기록 이름은 서버 기본값을 씁니다.

기존 변경
자유기록 종료 모달 → 이름 입력 → 마감 바로 마감
기록 이름 입력값, 비우면 서버 기본값 항상 서버 기본값

모달 placeholder로 보이던 260723_닉네임의코스1이 서버가 붙이는 기본 이름입니다.
이름을 바꾸고 싶으면 기록 상세에서 제목 수정이 가능합니다 (#223).

왜

종료 흐름에 입력 단계가 하나 끼어 있었는데, 대부분 기본값 그대로 저장합니다.
이름은 나중에 기록 상세에서 고칠 수 있으므로 종료 시점에 받을 이유가 없습니다.

어떻게

useCompleteTrackingSession은 이름을 받지 않으면 body를 생략하고 서버가 기본
이름을 채웁니다. 그래서 자유기록도 코스 기록과 같은 종료 경로로 합쳐졌습니다.

쓰이지 않게 된 것들을 함께 제거했습니다.

  • showCourseNameModal, freeRecordCourseName 상태
  • handleCourseNameSubmit
  • runCompleteSession의 name 파라미터 (항상 undefined가 됨)

CourseNameInputModal 컴포넌트는 기록 상세의 제목 수정에서 계속 쓰므로 남겼습니다.

변경 범위

app/(tabs)/tracking.tsx 1파일, +2/−34

확인

  • tsc·eslint 통과
  • 자유기록 종료 흐름은 실기기에서 확인하지 못했습니다. 세션을 만들어야 해
    서버에 기록이 남는 작업이라, 리뷰 시 한 번 봐주시면 좋겠습니다.

Summary by CodeRabbit

  • 변경 사항
    • 자유 기록 종료 시 코스 이름을 입력하는 단계가 제거되었습니다.
    • 기록 시간이 60초 미만이면 세션이 폐기되며, 60초 이상이면 이름 없이 완료됩니다.

자유기록을 마치면 "자유기록 이름을 정해주세요" 모달이 떠 입력을 받고
그 값을 complete 요청에 실어 보냈다. 모달 없이 바로 마감하고 이름은
서버 기본값(260723_닉네임의코스1 형태)을 쓴다. 기록 상세 화면에서
언제든 제목을 고칠 수 있다.

이름을 넘기지 않으면 useCompleteTrackingSession이 body를 생략하고
서버가 기본 이름을 채우므로, 코스 기록과 같은 경로로 합쳐진다.
쓰이지 않게 된 runCompleteSession의 name 파라미터와 관련 상태
(showCourseNameModal, freeRecordCourseName, handleCourseNameSubmit)를
함께 제거한다.

CourseNameInputModal 컴포넌트는 기록 상세의 제목 수정에서 계속 쓰므로
남긴다.
@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: SEMOSAN/SEMOSAN_FE/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8a452df9-8efe-4a49-b712-aa2aeab51b0e
📥 Commits

Reviewing files that changed from the base of the PR and between 8e9e4cd and 66e4efb.

📒 Files selected for processing (1)
  • app/(tabs)/tracking.tsx

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

자유기록 종료 시 코스 이름을 입력받는 흐름을 제거했습니다. 종료 시간이 60초 미만이면 세션을 폐기하고, 60초 이상이면 이름 없이 완료 요청을 보냅니다.

Changes

트래킹 세션 완료

Layer / File(s) Summary
이름 입력 없는 세션 완료
app/(tabs)/tracking.tsx
코스 이름 모달, 관련 상태와 처리 함수를 제거했습니다. 세션 완료 요청과 분석 기록에서 이름을 제외합니다. 60초 이상이면 코스 기록과 자유기록을 이름 없이 완료합니다.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Suggested reviewers: howooyeon

Merge Risk: ⚪ Minimal · up to 66e4e

Free recordings of at least 60 seconds now complete without a name prompt and rely on server-side default naming. No concrete failure is evidenced, though the server’s default-name behavior could not be verified in this repository.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 66e4e

The change reuses the existing session-completion path without adding an endpoint, privilege, or identity source. No newly introduced security weakness was established. Remaining uncertainty concerns server handling of unnamed completion and recovery after failed or repeated requests; those behaviors and the device flow were not verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The demonstrated change in exposure is confined to how free-record sessions reach the existing session-scoped completion request. No additional endpoint, credential, or privilege is introduced. Server-enforced user or tenant containment cannot be established from the inspected client sources.

Trust Boundaries and Controls

  • observed — The completion request remains on the non-public API path where the client attaches its stored Bearer token and retains existing refresh handling. Prompt removal changes UI reachability, not this authentication transport control. Backend authentication and session-ownership enforcement were not available for verification.

Resilience and Maintainability Implications

  • observed — The inspected stop-confirmation UI has no completion-pending guard, and completion failure does not roll back immediate cleanup. These are existing client characteristics, not established PR-introduced weaknesses. Whether repeated requests, interruption, or competing terminal transitions are contained depends on unverified server idempotency, atomicity, and recovery behavior.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 자유기록 종료 시 이름 입력 모달을 제거하는 주요 변경 사항을 명확하게 설명합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@JioCoder
JioCoder merged commit bc6a300 into main Oct 12, 2026
3 checks passed
@JioCoder
JioCoder deleted the feat/remove-free-record-name-modal branch October 12, 2026 04:14
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