Skip to content

fix(coverage): baseline을 stable 2.x로 재calibrate + user-data 그룹 문서화 (#120)#128

Merged
DaveDev42 merged 1 commit into
mainfrom
fix/coverage-baseline-2x-120
Jun 26, 2026
Merged

fix(coverage): baseline을 stable 2.x로 재calibrate + user-data 그룹 문서화 (#120)#128
DaveDev42 merged 1 commit into
mainfrom
fix/coverage-baseline-2x-120

Conversation

@DaveDev42

Copy link
Copy Markdown
Contributor

배경

coverage drift 검출기(scripts/sdk-coverage.ts)의 baseline이 3.0-beta(9d42c0b, 60 exports) 에 고정돼 있었다. 그런데 우리 docs가 섬기는 audience와 published latest2.x 라인이다(umbrella §5.1: "작업 기준선은 항상 stable — web-framework 2.x. 3.0은 GA flip 전까지 staging artifact").

이 mismatch가 #91의 phantom signature drift(29개 export 전체가 "Signature changed"로 오탐)와 #96#107 whipsaw(onVisibilityChangedByTransparentServiceWeb 삭제→재추가)의 근본 원인이었다.

결정: #120 옵션 A (baseline → stable 2.x)

baseline을 stable 2.x로 되돌리고, 그에 따라 살아나는 2.x-only export들을 깨끗이 문서화한다. §5.1 정합이고, docs가 실유저(2.x) 표면을 추적하게 된다. GA flip 시 3.0으로 re-baseline.

변경

re-baseline

  • devDep @apps-in-toss/web-framework 3.0.0-beta.9d42c0b2.10.1(현 latest)
  • coverage-baseline.json → sdkVersion 2.10.1 재생성 (60 → 65 exports)

user-data 그룹 신설 (2.9.3/2.10.1 .d.ts에서 시그니처 도출)

  • getConsentedUserData ko+en 페이지 — 동의 기반 사용자 데이터(USER_NAME/USER_PHONE/USER_ADDRESS 등) 조회, 7개 에러 코드, 5.264.0 미만 undefined 가용성
  • getDeclaredAgeRange ko+en 페이지 — 연령대 공유 동의 조회, isSupported(), 6개 status 코드
  • overview(ko+en) + GROUP_MAP 라우팅 + sidebars.ts 배선 + OG 이미지 3개
  • onVisibilityChangedByTransparentServiceWeb 페이지 유지 (같은 2.x-only 클래스)
  • user-data는 sdk-example 데모 페이지가 없으므로 TryItLink(Try it live) 블록 생략 — 없는 라우트를 약속하지 않는다

부수 정정 (#120 "검토" 항목)

  • verify-crosslinks: GROUPS_WITHOUT_SDK_EXAMPLE 스킵셋 — 의도적으로 데모가 없는 그룹은 404 fetch 경고(실 outage와 구분 불가) 대신 깨끗한 info 라인. (CI는 non-strict라 이전에도 fail은 아니었으나 신호가 탁했다.)
  • sdk-coverage 리포트: baseline≠live 경고 배너 — install noise를 진짜 drift로 오인하지 않게. CI는 이미 --frozen-lockfile이라 lockfile 2.10.1 pin으로 baseline==live 보장.

검증 (전부 로컬 통과)

  • pnpm coverage:checkzero drift (full parity, baseline/live 모두 2.10.1)
  • pnpm typecheck / pnpm lint clean
  • pnpm build → ko+en 양쪽 success (83 method pages)
  • pnpm check:og-images → 296 페이지 PNG 대응
  • pnpm verify:crosslinks → ok (user-data 깨끗이 skip)
  • pnpm check:llms → llms.txt 갱신 커밋

Closes #120

)

coverage drift 검출기의 baseline이 3.0-beta(`9d42c0b`, 60 exports)에 고정돼
있어, 실유저가 쓰는 published `latest`(2.x) 라인과 mismatch였다 — umbrella §5.1
"작업 기준선은 항상 stable 2.x" 원칙과 어긋나 drift 리포트를 구조적으로 신뢰
불가하게 만들었다(#91 phantom signature drift, #96#107 whipsaw의 근본 원인).

옵션 A 채택: baseline을 stable 2.x로 되돌리고, 그에 따라 살아나는 2.x-only
export들을 깨끗이 문서화한다.

- devDep `@apps-in-toss/web-framework` 3.0.0-beta.9d42c0b → 2.10.1 (현 `latest`)
- `coverage-baseline.json` → sdkVersion 2.10.1 재생성 (60 → 65 exports)
- 새 `user-data` 그룹: `getConsentedUserData` + `getDeclaredAgeRange` ko+en 페이지
  + overview. 2.9.3/2.10.1 `.d.ts`에서 시그니처 도출. 두 export 모두 3.0-beta
  surface엔 없는 2.x stable-line API라, baseline을 2.x로 두면 orphan이 아니라
  문서화 대상이 된다. `onVisibilityChangedByTransparentServiceWeb` 페이지도 유지
  (같은 2.x-only 클래스, #107이 재추가한 것).
- `GROUP_MAP`에 두 export 라우팅 추가
- `user-data`는 sdk-example 데모 페이지가 없으므로 docs에서 `TryItLink`(Try it
  live) 블록을 생략 — 없는 라우트를 약속하지 않는다.

부수 정정 (#120 "검토" 항목):
- `verify-crosslinks`: `GROUPS_WITHOUT_SDK_EXAMPLE` 스킵셋 도입 — 의도적으로
  데모 페이지가 없는 그룹은 404 fetch 경고(실 outage와 구분 불가) 대신 깨끗한
  info 라인으로 보고. (CI는 non-strict라 이전에도 fail은 아니었지만 신호가 탁함.)
- `sdk-coverage` 리포트: baseline≠live일 때 경고 배너 추가 — install noise를
  진짜 drift로 오인하지 않게(#91이 정확히 이 함정에 걸렸다). CI는 이미
  `--frozen-lockfile`이라 lockfile 2.10.1 pin으로 baseline==live 보장.

verify: coverage:check zero-drift, typecheck/lint/build(ko+en)/og-images/
crosslinks/llms 전부 통과.

Closes #120
@DaveDev42
DaveDev42 merged commit 7f8875e into main Jun 26, 2026
3 checks passed
@DaveDev42
DaveDev42 deleted the fix/coverage-baseline-2x-120 branch June 26, 2026 19:57
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.

coverage drift baseline이 3.0-beta에 고정 — §5.1 stable(2.x) 라인과 mismatch (drift 리포트 구조적 신뢰불가)

1 participant