Skip to content

feature(readme): steady reading pace, early report notice, resume or cover-letter input - #57

Merged
seoJing merged 4 commits into
mainfrom
feature/readme-lab-focus-speech
Oct 8, 2026
Merged

seoJing merged 4 commits into
mainfrom
feature/readme-lab-focus-speech

Conversation

@seoJing

@seoJing seoJing commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • README Lab playback keeps its own reading pace however far the server leads; skipping ahead is only ever the user's choice (438207e, WEB-10 decision b4a542)
  • A report that finishes before the replay is offered in a sticky bar row (리포트가 준비되었어요! / 리포트 보기) while running or paused, without moving focus or navigating (438207e)
  • Document kind (이력서 / 자기소개서) with optional cover-letter prompts per docs/ESSAY_INPUT_CONTRACT.md v1: a resume sends the unchanged legacy /prepare body, a cover letter adds document_type + essay_prompts; prompts never enter the sheet, the confirmation shows the server record, a mismatched or missing record blocks reading (ede5f3d, f3ac4a3, WEB-11)
  • Trivial merge of origin/main (e8e7c8d); no Lab file conflicts

Release gate

Requires the OPS-04 backend release (594dec5 essay metadata) to be live first: the current production backend rejects the new fields. Do not merge before the backend-ready evidence is posted on the board (OPS-04).

Checks

  • vitest src/app/readme 60/60 (playback-pace.test.ts, essay-input.test.ts new), eslint, prettier, node --check
  • pnpm build, worker gzip within budget (2318.49 KiB / 2500)
  • headless Chrome synthetic runs: pace/report-ready (8 scenarios) and essay modes (8 scenarios incl. legacy payload, limits, refresh, unsupported, mismatched record), desktop and mobile
  • independent read-only reviews on the board: WEB-10 handoff f691af, WEB-11 reviews 8294b2 / cb7128 / 8a0ca6 (APPROVED at f3ac4a3)

Rollback

Previous main deploy: CI run 37554583915 (e8e7c8d). Revert this merge or redeploy that revision.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • 새 기능
    • README Lab에서 이력서와 자기소개서를 선택해 읽을 수 있습니다. 자기소개서에는 최대 10개 문항을 입력할 수 있으며, 문항은 리포트 참고 정보로 사용됩니다.
    • 읽기 속도는 서버 진행 상황과 별개로 유지됩니다. 재생 중 리포트가 준비되면 알림과 버튼이 표시되며, 버튼을 눌러 리포트를 열 수 있습니다.
  • 개선 사항
    • 서버가 읽기보다 앞서가도 자동으로 내용을 건너뛰지 않습니다. 원할 때 직접 따라잡기를 선택할 수 있습니다.
    • 작업이 종료되면 읽기 중 취소 확인 창이 닫힙니다.

seoJing and others added 4 commits October 7, 2026 14:53
The reading screen no longer speeds up when the server runs ahead: the
backlog-derived dwell multiplier, skimming and jumping modes are gone and
only the explicit 읽은 곳까지 바로 보기 / 끝까지 바로 보기 / 재생 건너뛰기
actions, reduced motion and refresh skip ahead. A report that is finished
while the screen still replays is announced in a sticky bar row
(리포트가 준비되었어요! / 리포트 보기) during running and paused playback
without moving focus or navigating; a page turn in flight is cancelled on
screen change so the report opens at its top. WEB-10 decision b4a542.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The input screen asks for the document kind. A resume still sends the
unchanged legacy /prepare body; a cover letter adds document_type and
essay_prompts (trimmed, blanks dropped, order kept, client mirror of the
10 / 1,000 / 6,000 limits). Prompts never enter the sheet: the
confirmation shows the server's document_context list apart from the
text, the reading screen keeps a collapsed reference list, the report
names them as context only. A newly requested cover letter whose record
is missing, malformed, re-ordered or re-typed against the request
snapshot blocks 읽기 시작; a refreshed pending preparation restores kind
and prompts from the record. Copy and disclosures follow the kind. The
sample stand-in validates and echoes the metadata for verification.
docs/ESSAY_INPUT_CONTRACT.md v1, WEB-11.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A new cover letter's record must number every prompt ep1…epN, so a
missing or null id now counts as a mismatch. The ready-time restore of
kind and prompts from the server record applies only to a preparation
resumed after a refresh (no request snapshot); a fresh 준비하기 in the
same tab keeps what was typed and a mismatched record is blocked.
WEB-11 reviews 8294b2 / cb7128.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: seoJing/SEOJing/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e662e6be-1377-4b8a-a5cb-0a4e8417e378
📥 Commits

Reviewing files that changed from the base of the PR and between e8e7c8d and 8f96834.

📒 Files selected for processing (3)
  • apps/web/src/app/readme/lab/essay-input.test.ts
  • apps/web/src/app/readme/lab/playback-pace.test.ts
  • apps/web/src/app/readme/lab/readme-lab.html

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


Priority: ➖ Normal

Change: Feature

Merge Risk: ⚪ Minimal · up to 8f968

No confirmed issue remains from this review. The stated OPS-04 backend prerequisite still needs release confirmation before merge.

🚥 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 7 functions across 2 files. (1 skipped: 1 … 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.
Full details: Docstring Coverage

Explanation

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 7 functions across 2 files. (1 skipped: 1 unsupported.)

  • 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

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.

@seoJing
seoJing merged commit 27a11cb into main Oct 8, 2026
5 checks passed
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