Skip to content

R01 이식 종료와 호환 보존 자격

대상 #1537, release/v0.18.0. 기준 앱 2cfeac5327d5f3eb8eeb2ce7cb4e5e709127f6d5, 문서 0848802525d46018f494ff2a2883f31bb3b708c1. Phase 1–5 재고·이식·분류·통합 검사 결과이며 최종 검증과 병합 상태는 작업 기록에서 구분한다. Production 검사나 배포 결과가 아니다.

R01 최종 반영

앱 PR #1569는 2026-09-11 13:42 KST에 release/v0.18.0으로 병합됐다. merge 849191b54b15682fba001dbde9757f88b76cf580를 fetch하고 작업 head206f43ce의 조상 관계를 확인했다. Phase1–5 check 각3617통과/0실패/92제외, U05브라우저8/8, G05strict PASS, 필수precheck2분4초와 Merge Check58초 성공. 문서·과거 artifact의 미게시/미검증 조건은 아래 그대로다.

선행 구현

선행앱 PR · release merge
G051307 · 80572704e5ce8c002c80e3ce89312ca1198f231c
D121358 · d1e77113ede1ef101595e5824fb7b4a6d23f9fb7
B011346 · ba0f403535075d53d1819b2021110376c5da6f41
B021356 · 7b44295e84bfe7999fd31ecde77ee0ad1659b386
N011441 · 0102ec07b9007d02f2262b5dd1236e833413d05a
S111499 · 2ab89770c4cee33cf5a58ec6e2402b2374702ba1
I011498 · 55e9fae82340105defa586c572193922b7327793
D111547 · d058cbb7af1e0ae94bed1ade02408ec3301ec1f2; 후속 검사 1548 · 00a93ad384b9209f363399cba64b055ad2ebf4dc
U071549 · 4a642ad39474ae7782ad9c34b2be7eb6aa3a00a2
A151550 · 290eadb9b808cbbc85d69fde09600e79b925ee9c
D141551 · 576dae9b9dc77478908c846a406a477a0bac6459
U041553 · af5ae625f6cb020e44b79cff1c5ec5ea89a7d38a
A161561 · 517c538ef5ffd5014fa6d62f5a4ac3f2b112a06f
U051565 · 2cfeac5327d5f3eb8eeb2ce7cb4e5e709127f6d5

최종 소비자에 따른 판정

대상담당·목적과 실제 소비자판정·제거 조건
vite/AppRoot.tsx / ViteAppRootPropsUI; 옛 Vite scaffold. 현행 vite/main.tsx는 mobileRoot/desktopRoot 사용제품 import0. U07에서 CSS 퇴역. R01에서 파일·전용 타입 삭제
warmChunksSuppressingRecovery / warmup depthUI; 전체 화면 idle prefetch의 복구 억제U05가 호출자 제거, 제품 호출0. 전용 검사를 현행 boot/interactive 복구 조건으로 옮겨 제거
ui/shared/clientStrengthFallback.tsUI; DayDetailBody/SessionSheetBody/rangeView가 서버 강도와 표시용 무게 소비계산 fallback 없음. 동작을 보존하고 serverSetIntensity로 이름 변경
A16의 옛 facade7개APP; A16 최종 소유자선행에서 삭제. 빈 wrapper를 복원하지 않음
A15 renderCtx / U04 useListWindowAPP/UI; feature bindings / ViewportList선행에서 삭제. 현행 owner/store/cache/focus 보존
planAdoptionController/StoreAPP; 친구 달력의 읽기 전용 소비자이름만으로 삭제하지 않음. 친구 열람이 활성 상태이므로 유지
completedWorkoutCommands.save/deleteAPP; 제품 호출0, 기존 전송 계약 검사만 소비A15 §7의 조건대로 순수 준비기와 실제 dispatcher 포트 검사로 옮긴 뒤 제거. openEditor/openDetail은 유지

Phase 2 변경과 의존성

AppRoot.tsx와 전용 타입을 제거하고 선로딩 억제 함수·depth·오류 은폐 분기를 제거했다. 이미 U05가 실제 선로딩 호출을 없앴으므로 부팅 자동 복구와 입력 중 오류 경계는 같은 동작이다. 옛 warmup 전용3건은 interactive 상태의 preload/resource 반복 오류와 설치 후 interactive 전환3건으로 교체했다. 자동 reload0·guard 미소모·오류 전달을 확인하며 기존 단일 boot 복구·동반 자원 오류·저장 실패 검사는 유지한다.

서버 강도 표시 함수는 ui/shared/serverSetIntensity.tsprojectServerSetIntensity로 옮겼다. 세트별 setIntensityPercent, 누락 null, 단위·표시 무게·ID·존·합산 결과는 보존한다. 기존 clientStrengthFallback.test.mjs의 파일명은 감사 이력 식별자로 유지하되 현재 모듈과 실제 렌더를 검증한다.

@tanstack/react-virtual은 ViewportList, read-excel-file은 InBody의 동적 파일 인입, Supabase SDK는 인증·전송, React는 현재 화면/상태, Capacitor는 네이티브 동기화/빌드에서 소비한다. 미사용으로 확인된 package가 없어 package/lock은 변경하지 않는다. 이름 검색만으로 플랫폼 의존성을 삭제하지 않았다.

보존 manifest

경계담당·목적·소비자제거 조건·증거
A16 잔존 14매치APP/각 codec·feature; raw provenance, 서로 다른 응답/입력, 날짜 공급원14개 개별 공급원·소비자·제거 조건을 그대로 적용. 일괄 이중키 삭제 금지
tests/helpers/legacyWorkoutNormalization.ts검증; a09EditorSaveParity/completedSessionRecoveryScenarios/mappers/recordingProfileRoundTrip의 기존 oracle네 검사의 입력·완료·복구 비교를 동등하게 대체한 뒤 제거. 서버 독립 oracle 또는 제품 fallback이 아님
D11 공개 RPC·cron·Edge adapterDATA; v5 쓰기 이후 refresh 요청, 기존 화면/worker/예약 호출실제 호출자와 지원 클라이언트 이전 후만 제거. 단일 계산·게시와 full 보존
D11 PR header {} decoderDATA; 기존 header의 동일 generation summary 읽기지원 publication의 참조가 사라진 뒤 제거. 최신/직전 header가 참조하는 오래된 backing row 보존
D14 공개 writer와 트리거 정규화DATA; save_session_v5의 ID·revision·영수증·세대 및 원본 정밀도변경 행 저장. 동일 논리 저장을 생략하지 않으며 full payload 검증 유지
적용 migration / baseline SQL fixtureDATA/검증; 배포 이력·격리 full/incremental 비교적용 이력 불변. fixture는 운영 writer가 아니며 독립 비교가 대체되기 전 유지
persistence/outbox 버전 decoderAPP; 기존 설치의 초안·미전송 저장·재시작지원 버전 소비자 종료 및 복구 동치 증거 후 제거. 원문·ID·0/false/빈값 보존
S09 planHash·S10 복구·S11 bytes/hash manifestDATA/복구; 기존 사용자 원본·사본 검증지원 사본을 폐기하거나 원본을 새 형식으로 덮어써서 정리하지 않음. 사본/아티팩트 가용성은 최종 인계에서 별도 명시
Wodup/admin각 소유자; 별도 runtime·서버 API·타입/빌드#1478 자동 제외 유지. 제외된 검사를 통과 증거로 계산하지 않음

기준선과 검증 한계

기존 G05 도구에서 미분류168파일, 미등록 cron1개, durable types/binding 행2개 누락을 관측했다. 차단 판정(미확인/미배정) 행은0이다. 분류 완료는 제품 품질의 전수 확인이 아니다. 기존 장부/registry를 갱신하며 중복 도구나 앱의 문서 의존 검사를 추가하지 않는다.

D11 추가 precheck 생략은 당시 오너의 한정 지시이며 R01에 승계하지 않는다. U05 모바일 DOM317은 예산294 초과로 남고 native/Production/전체 성능 합격은 미검증이다. 캠페인 Phase5의 R02/R03/R04/U06/R05/R06은 자기 최종 검증을 수행해야 한다.

Phase 3 실제 저장·게시 연결

제품 호출자가 없는 completedWorkoutCommands.save/deleteCompletedWorkoutCommandError·CompletedWorkoutDeleteQueueableError, 전용 입력/결과 타입을 제거했다. openEditor/openDetail은 현재 entry binding·draft store에서 사용하므로 유지한다. 온라인/오프라인/충돌 재전송은 원래 pendingSavesDispatchPortscreateCompletedWorkoutWritePortBarbelicApi → workout repository의 같은 세 메서드와 기존 10초 제한을 사용한다. 준비기·큐의 내구 경계·dispatcher 오류 분류를 바꾸지 않았다.

기존 직접 명령의 생성 재시도·인증 오류·모호한 수정·삭제 revision 검사는 prepareCompletedSessionCreate/UpdateResend/Delete와 실제 write port로 옮겼다. 같은 초안의 mutation ID/hash/sourceRef, 예상 revision, 준비 실패 시 요청 부재와 전송한 요청/응답/오류 참조를 단언한다. 옛 오류 봉투 모양을 재현하는 테스트용 저장기를 만들지 않았다.

서버 최종 경로는 현재 정의 원천에서 확인했다. save_session_v5save_session_v5_engine의 신규/수정 두 분기는 모두 write_session_children_v5를 호출한다. 엔진은 revision·receipt·stats requested generation을 같은 트랜잭션에서 확정한다. D14의 단위 트리거와 후보 비교가 공유하는 정규화, 원본 이력, 같은 내용의 새 논리 저장 의미를 유지한다. 서버 파일·migration 변경은 없다.

D11의 compute_stats_projection_job_engine_v1run_stats_projection_v1을 호출하고, 공통 worker의 compute/publish 문은 publish_stats_projection_job_engine_v1을 사용한다. 함수의 overload·공개 문·cron/Edge 소비를 단일 파일명으로 오판하지 않았다. full/incremental은 같은 계산기·원자 publisher이며 full 첫 실행·temp 전체 계산과 유효 공개 adapter를 보존한다. get_volume_overview의 구 서명도 지원 버전 소비 종료 증거가 없어 유지한다.

재사용 증거는 D14 기록의 변경 행 I/U/D·ctid·ID·원본·revision/receipt, D11 기록의 public DML0·행 출처·full 동치·실패 rollback 및 A16 최종 precheck다. 앱의 tests/db/sessionWriteDelta{,Safety}.test.mjs, statsOrchestration{,Shadow}.test.mjs, statsDeltaPublication.test.mjs와 현행 ci-local 등록을 유지했다. R01에서 과거 DB 실행을 새 실행으로 집계하지 않는다.

R02/R03 사본·구버전 아티팩트 인계

2026-09-11 HQ가 기존 자료를 읽기 전용으로 확인했다. 새 수집·Production 조회·사본 생성·복원은 수행하지 않았다.

자료고정 위치·가용성검증 수준·격리 조건
S10 복구 계약docs PR16, OPEN; head b5987927의 계약앱 PR1442 / 99669e3ecd3aa28f0e385dbbc60b32f04a2eeeaa는 release 포함. 문서는 main 미게시이며 타 담당 PR을 대신 병합하지 않음
S11 manifest 계약·실측docs PR28, OPEN·PR16 위에 쌓임; head 6cb8f8e5 계약 · 작업 기록main 완료로 집계하지 않음. 앱 PR1499는 release 포함
기존 실제 사본C:/Users/USER/AppData/Local/Temp/claude/wt1410-freshness/a0909HQ 확인: manifest.json 59,436B, manifest.txt279B, tables.args, user-data.sql.gz4,509,870B, user-fact-columns.json 존재. 현시점 내부 해시·유효성 재검증 아님
동일 사본의 원격 artifactdaily-data-backup-2026-09-09, id10125165975, 원 실행34405355357, head 6afe58ec66d063f7331bd27b360f39fb2d8fee72metadata상 expired=false, 만료2026-12-08T21:09:58Z. ZIP digest sha256:c1fbfdc3ba19f0cc136bc9d9b3b4cf15e132d8aa5f19617bdecf995891c11c93는 내부 dump 해시와 다른 층
S11 기존 drillscripts/data-copy/drills/2026-09-10-daily-data-backup-2026-09-09.json당시23표 중19적재/4빈표skip,44,357행,5.5초,reconstructed=true,schema_head20260914000000. S10 복구원천8표 included:false 제한 유지. 과거 target 컨테이너 재사용 지시가 아님
R02 v0.17.1 실제 배포 번들미확보: URL/run/로컬 경로/대상SHA/격리조건 없음(R02 담당·HQ 확인)과거 CASE039/040 성공 기록은 현물 가용성을 증명하지 않음. build-legacy-bundle.mjs의 source-rebuild는 현재 설치/도구로 재빌드한 것으로 실제 배포 artifact와 구분
I01 replay fixturetests/fixtures/import/manifest.json과 같은 폴더의 inbody.csv·motra-normalized.json·wodup-normalized.jsonl·wodup-raw.jsonl결정적 합성 fixture이며 실제 사용자 사본이 아님. I01 검증과 제한. #1478 제외 범위 유지

실제 복원은 R03의 별도 로컬 샌드박스에서 기존 사본을 불변으로 두고 S11 검증 실패 시 중단한다. 구형 manifest.txt의 원래 전체 bytes/hash를 확인한 경우만 valid_reconstructed로 다룬다. 사용자 값 출력·Production 주소 사용·원본 수정은 허용하지 않는다. 기존 경로 확인을 새 복원 성공이나 전체 데이터 복구 가능으로 표현하지 않는다.

63개 계획의 구현·시험 근거 대조

2026-09-11 기준 선행56개 주 구현 PR의 merge SHA가 앱 기준 release 2cfeac5327d5f3eb8eeb2ce7cb4e5e709127f6d5의 조상임을 직접 확인했다. 초기 Phase1/2 PR의 당시 base가 main인 경우도 현재 release 포함으로 판정했다. 관련만 있는 PR·문서 PR은 주 구현 PR로 집계하지 않았다. R01은 PR1569로 release 반영됐으며 U06/R02/R03/R04/R05/R06 여섯 최종 검증은 예정이다.

검증 칸은 각 담당 PR 본문의 실제 시험·실패·재검증·미실행 기록으로 연결한다. R01이56개 작업의 모든 검사를 재실행했거나 모든 과거 Full이 성공했다는 뜻이 아니다. 특히 D11의 한정 precheck 생략, N01의 최종 browser56/57+플레이키1·viewport21/22 기록, U05의 DOM 초과, S10/S11 문서 미게시를 유지한다. 후속 수리/운영 검증은 해당 후보의 최신 증거로 판단한다.

ID·계획주 구현 PR · merge SHA현재 release 상태·시험 근거
G01PR1296 · e6150af06365a346f53d3dacbd8dd353ad321e8drelease 포함 · 담당 시험·제한
G02PR1310 · b0e5076ad495d6af94cd425ff9a32edcc5c1c84arelease 포함 · 담당 시험·제한
G03PR1311 · e94f0d3418cddd170f6183ab012b8a5d27384791release 포함 · 담당 시험·제한
G04PR1315 · beff760ba24ae8904e17356a94b8f663bf850719release 포함 · 담당 시험·제한
G05PR1307 · 80572704e5ce8c002c80e3ce89312ca1198f231crelease 포함 · 담당 시험·제한
S01PR1320 · 50580d7bb2841bc12fe1bcb45128ad708e135858release 포함 · 담당 시험·제한
S02PR1349 · 2801239a81bd29480e70a928abedc0570e26146brelease 포함 · 담당 시험·제한
S03PR1363 · 1bba53eb3799c8fccbcf5e5a2ade8e34b9c979b2release 포함 · 담당 시험·제한
S04PR1369 · f8334135c62c5d8dc23b0f2e8cc587c383c9bd87release 포함 · 담당 시험·제한
S05PR1374 · 73d6f84b65cb0dfe64d4931d14a4017c66e648f9release 포함 · 담당 시험·제한
S06PR1385 · 1ebfda64a2ad21543069c18edf9d603d6fcaf125release 포함 · 담당 시험·제한
S07PR1377 · 37066827310bb6d86d579ebbf4ca1d6f7320c535release 포함 · 담당 시험·제한
S08PR1350 · 06db380c477d53746e692f495e5fdfb66650e9c0release 포함 · 담당 시험·제한
S09PR1502 · 2518e156b366fe0aaaad9b05309c88a2ee8b487drelease 포함 · 담당 시험·제한
S10PR1442 · 99669e3ecd3aa28f0e385dbbc60b32f04a2eeeaarelease 포함 · 담당 시험·제한
S11PR1499 · 2ab89770c4cee33cf5a58ec6e2402b2374702ba1release 포함 · 담당 시험·제한
D01PR1319 · c58c6522b42cd89f335dc9e08fecd483a572dafarelease 포함 · 담당 시험·제한
D02PR1352 · 7db92fb56dc8b93f7fbe752000e19427522a9891release 포함 · 담당 시험·제한
D03PR1312 · 16b8e99684a4cb152b2ff5d89b5aea10a7f055e0release 포함 · 담당 시험·제한
D04PR1454 · b074cbb188c50b865613f52b1960a6fddbdad154release 포함 · 담당 시험·제한
D05PR1506 · 8b796c1fff825753239778d8966aedb5cef9271arelease 포함 · 담당 시험·제한
D06PR1518 · 5b16a1623c465a04b81665b775b0a2319f2f2cearelease 포함 · 담당 시험·제한
D07PR1522 · e2833deed339f342d4edc9cc61de87c560420be4release 포함 · 담당 시험·제한
D08PR1510 · a1d462a8621d8f1d92e8932d4c17939ba2044eb1release 포함 · 담당 시험·제한
D09PR1445 · b4bae47a796489edc26843e4b041941930bd1c6arelease 포함 · 담당 시험·제한
D10PR1521 · b62a358cf3ba73ea5858691e13ccabaea6b08761release 포함 · 담당 시험·제한
D11PR1547 · d058cbb7af1e0ae94bed1ade02408ec3301ec1f2release 포함 · 담당 시험·제한
D12PR1358 · d1e77113ede1ef101595e5824fb7b4a6d23f9fb7release 포함 · 담당 시험·제한
D13PR1318 · e970dd7d95666b69b7836c3dd863c14042eb1e61release 포함 · 담당 시험·제한
D14PR1551 · 576dae9b9dc77478908c846a406a477a0bac6459release 포함 · 담당 시험·제한
A01PR1316 · 947413d1c24f723911cb4020843fe6192084d9carelease 포함 · 담당 시험·제한
A02PR1354 · af2a828bb46690ff57ac299671d03a125026ac83release 포함 · 담당 시험·제한
A03PR1351 · 530bb4cfe2bc6291a453bec837cb928680c2245crelease 포함 · 담당 시험·제한
A04PR1448 · 8c4ddc69b28fa140ccd0ee7575fcbbda8ebc001drelease 포함 · 담당 시험·제한
A05PR1443 · 4f6d193b173b4bf20c98cfef66f0b6b2b1b1b7c1release 포함 · 담당 시험·제한
A06PR1453 · f5477802e0d344416339e95c434baf2ca7490e81release 포함 · 담당 시험·제한
A07PR1365 · 0775e6b225a6a75ecfc157dca49dd99658e65901release 포함 · 담당 시험·제한
A08PR1372 · 4fb2d26fd754bc4e19505832711e929194b5bc2erelease 포함 · 담당 시험·제한
A09PR1394 · ba3b77bfe03b97c45c0dde9f30f77f5defd0fef8release 포함 · 담당 시험·제한
A10PR1501 · 3c91514ce3ef7c486ecca6c436ba7234f5694e24release 포함 · 담당 시험·제한
A11PR1516 · daca15d90ccfafb74ec2c5f2912135d411a64ad8release 포함 · 담당 시험·제한
A12PR1378 · 1514fc52d5b94dc5b3adadd363a0f1c879490416release 포함 · 담당 시험·제한
A13PR1375 · d5e12e9d6d86be4cabb2c7d499cd3bfa978bd817release 포함 · 담당 시험·제한
A14PR1503 · 209bbffdbe164086b99c5c3e98d763fa26e5fe61release 포함 · 담당 시험·제한
A15PR1550 · 290eadb9b808cbbc85d69fde09600e79b925ee9crelease 포함 · 담당 시험·제한
A16PR1561 · 517c538ef5ffd5014fa6d62f5a4ac3f2b112a06frelease 포함 · 담당 시험·제한
U01PR1317 · 45e58c338d375ebfe382e0eb24365a376584c734release 포함 · 담당 시험·제한
U02PR1523 · b0fa93ec97fab41c6bcbc59bd096f3e1926535fdrelease 포함 · 담당 시험·제한
U03PR1520 · c1af78e8090cc7b6464770ee2331a6b4a819b902release 포함 · 담당 시험·제한
U04PR1553 · af5ae625f6cb020e44b79cff1c5ec5ea89a7d38arelease 포함 · 담당 시험·제한
U05PR1565 · 2cfeac5327d5f3eb8eeb2ce7cb4e5e709127f6d5release 포함 · 담당 시험·제한
U06예정/미검증 · 최종 통합·운영 검증
U07PR1549 · 4a642ad39474ae7782ad9c34b2be7eb6aa3a00a2release 포함 · 담당 시험·제한
B01PR1346 · ba0f403535075d53d1819b2021110376c5da6f41release 포함 · 담당 시험·제한
B02PR1356 · 7b44295e84bfe7999fd31ecde77ee0ad1659b386release 포함 · 담당 시험·제한
N01PR1441 · 0102ec07b9007d02f2262b5dd1236e833413d05arelease 포함 · 담당 시험·제한
I01PR1498 · 55e9fae82340105defa586c572193922b7327793release 포함 · 담당 시험·제한
R01앱 PR #1569 · 849191b54b15682fba001dbde9757f88b76cf580release 포함 · 최종 검사·제한
R02예정/미검증 · 최종 통합·운영 검증
R03예정/미검증 · 최종 통합·운영 검증
R04예정/미검증 · 최종 통합·운영 검증
R05예정/미검증 · 최종 통합·운영 검증
R06예정/미검증 · 최종 통합·운영 검증