Lolly
앱 열기

데이터 이전: lolly-backup 번들

Lolly는 개인 라이브러리를 기기에 보관해요. 백업 번들은 그 라이브러리가 이동하는 방법이에요. 한 설치에서 내보내고, 원하는 방법(USB, AirDrop, 자신에게 이메일, 네트워크 공유)으로 파일을 옮기고, 다른 설치에서 가져와요. 내보내기와 가져오기에는 서버가 필요 없고 대상은 오프라인이어도 돼요.

이 페이지는 백업을 중심으로 셸, 도구, 스크립트를 만드는 사람을 위한 형식 명세예요. zip에 무엇이 들어 있는지, 버전이 어떻게 제한되는지, 가져오기가 어떻게 병합되는지, 무엇이 검사되는지를 다뤄요. 자기 작업을 옮기는 사람을 위한 안내는 작업물을 다른 기기로 옮기기예요.

설치 전체를 옮기는 두 버튼: Export my data는 zip 하나를 쓰고, Import data는 다시 읽어요 signed by Lollyvector SVG9 paths~4.9k nodes11 groups56 KBCheck it yourself서명된 파일 받기설치 전체를 옮기는 두 버튼: Export my data는 zip 하나를 쓰고, Import data는 다시 읽어요 signed by Lollyvector SVG9 paths~4.9k nodes11 groups56 KBCheck it yourself서명된 파일 받기

범위. 번들은 카탈로그 도구가 아니라 사용자 데이터를 담아요. 카탈로그 도구와 카탈로그 에셋은 별도로 동기화되며 대상에 이미 있다고 가정하고, 최악의 경우에도 더 높은 버전이에요. 사용자가 직접 만든 도구는 profile.json 안에 담겨 이동해요. 가져오기는 카탈로그 도구를 설치하거나 업그레이드하지 않아요.

목표

봉투(envelope)

번들은 일반 .zip이므로 어떤 전송에서도 온전하게 살아남고 어떤 압축 해제 도구로도 내용을 검사할 수 있어요.

다운로드 이름은 그것이 속한 사람의 이름을 따라요. LollyTools-<First>-<Last>-<YYYY-MM-DD>-<n>.zip, 예를 들어 LollyTools-Ada-Lovelace-2026-06-26-1.zip이므로 백업이 모인 Downloads 폴더도 읽기 쉬워요. 이름과 성은 프로필에서 오며 설정되지 않았으면 빠져요. 프로필이 없으면 LollyTools-2026-06-26-1.zip, 이름만 있으면 LollyTools-Ada-2026-06-26-1.zip이에요. 각 이름은 파일 이름에 안전한 토큰으로 줄어들어요(유니코드 문자와 숫자는 유지, 공백과 구두점은 제거, 최대 32자). <n>은 기기별, 날짜별 순번이므로 같은 날 반복해서 내보내도 충돌하지 않고 순서가 유지돼요. data-transfer.ts의 backupFilename()이 이름을 만들며, zip의 내용은 이름과 상관없이 같아요.

경로필수내용
manifest.json예형식 ID, 버전, 개수, 파트별 무결성. 리더가 가장 먼저 보는 것이에요.
profile.json설정된 경우사용자의 me 레코드 전체: 이름, 연락처, 프로필 사진 참조와 플래그, 그리고 폴더, 휴지통, 프로젝트 청사진, 사용자 템플릿과 사용자가 만든 도구, 즐겨찾기, 숨긴 도구, 언어와 이모지 선택. host.profile로 읽어요.
sessions.json예저장된 모든 세션: 슬롯, 도구 ID와 버전, 라벨, 썸네일(데이터 URL), 전체 입력 데이터. host.state로 읽어요.
assets.json예업로드된 각 에셋(이미지, 글꼴, 브랜드 토큰, 로고, 다운로드의 저장된 사본)의 메타데이터로, 각각 assets/blobs/ 아래의 바이트를 가리켜요.
assets/blobs/<n>.<ext>에셋별원본 에셋 바이트이며 대부분 이미 압축된 형식이므로 압축하지 않고 저장해요. 확장자는 장식이며 assets.json의 MIME 유형이 기준이에요.
assets/blobs/<n>.c2pa있는 경우정확한 바이너리 바이트로 추출한 Content Credentials로, 에셋 레코드의 _credentialFile이 참조해요. 기기 서명 키가 아니에요.
design-systems.json있는 경우이 설치에서 만들거나 추가한 디자인 시스템으로, { active, records } 형태예요. 가져오기 규칙을 참고하세요.
file-history.json선택버전이 있는 에셋 스냅샷, 완료된 파일 작업 보고서, 완전한 배치 매니페스트이며 자체 버전이 있어요. 셸의 내부 fileHistory 백업 어댑터가 제공해요.
revision-history.json선택, 수동 백업안정적인 작품 ID, 보관된 체크포인트, 썸네일, 순환하는 복구 초안. 지원되는 곳에서 host.state.history.backup이 제공해요.
file-history/versions/스냅샷별현재 에셋이 아직 있든 없든 이전 에셋 바이트와 추출된 자격 증명.
file-history/results/완료된 작업별정확한 출력 바이트. 변환을 위해 선택한 원본 파일은 보관되거나 포함되지 않아요.
prefs.json예사용자 소유의 로컬 환경설정: theme, sidebarWidth, ct-metrics 활동 집계.
lolly.txt예Lolly 없이 zip을 여는 사람을 위한 번들의 읽을 수 있는 요약(개수, 프로필, 파일 이름). 내보낼 때마다 다시 생성되고 가져올 때 인식되므로 건너뛴 파트로 세어지지 않아요. 무결성 맵 뒤에 쓰이므로 맵은 이 파일을 다루지 않아요.
내보내기가 zip을 쓰는 방법

내보내기는 zip을 파트 단위로 써요(shells/web/src/lib/zip-stream.ts). 업로드, 저장된 결과, 저장된 에셋 버전은 4 MiB 조각으로 읽으며 통째로 읽지 않고, 저장된 결과와 버전은 먼저 기록된 SHA-256과 대조해요. 그다음 모든 파일을 체크섬과 무결성 다이제스트를 위해 읽으며, zip은 파일이 있는 자리를 가리켜요.

아무것도 다시 인코딩하지 않으므로 Content Credentials가 담긴 파일은 서명이 다루는 정확한 바이트를 유지하고, 모든 파트가 정확한 바이트와 다이제스트를 유지해요. 같은 파트와 시간이라면 zip은 이전 메모리 내 작성기가 만든 것과 같아요. 단, 16 MiB를 넘는 기록 파일은 조각으로 압축돼요. tests/backup-streaming.test.ts가 이를 기록된 기준 다이제스트와 대조해 확인해요.

192 MiB 합성 라이브러리를 Node에서 측정한 결과, 백업을 마무리하는 데 라이브러리 위에 약 125~150 MiB가 들었으며 메모리 내 작성기는 약 850 MiB였어요(node scripts/bench-backup-finalise.ts). 가져오기는 여전히 zip 전체를 메모리로 읽어요.

manifest.json

{
  "format": "lolly-backup",
  "formatVersion": 3,
  "minReader": 1,
  "app": "lolly",
  "exportedAt": "2026-06-22T09:30:00.000Z",
  "counts": { "profile": true, "sessions": 2, "userAssets": 4, "prefs": 3, "assetVersions": 1, "fileOperations": 1 },
  "integrity": {
    "profile.json": "sha256-…",
    "sessions.json": "sha256-…",
    "assets.json": "sha256-…",
    "assets/blobs/0.bin": "sha256-…",
    "file-history.json": "sha256-…",
    "file-history/versions/0.bin": "sha256-…",
    "file-history/results/0.bin": "sha256-…",
    "prefs.json": "sha256-…"
  }
}
필드의미
format항상 lolly-backup. 이것이 없는 파일은 "not a Lolly backup"으로 거부돼요.
formatVersion이 번들이 작성된 레이아웃. 파트 구성이나 형태가 바뀔 때마다 올라가요. 리더는 이 필드로 제한하지 않아요.
minReader이 번들을 안전하게 가져올 수 있는 최소 리더 버전. 리더가 이 필드로 제한해요.
app진단용으로 만든 앱 ID.
exportedAt번들을 만든 ISO 타임스탬프.
counts표시와 건전성 확인을 위해 작성기가 넣은 것.
integrity선택. manifest.json을 제외한 모든 파트를 압축 해제된 바이트의 SRI 형식 sha256-<base64> 다이제스트에 대응시켜요.

버전 정책

두 개의 버전 번호가 이전 설치를 고립시키지 않고 형식을 키울 수 있게 해요.

번들 형식의 변경은 이전 리더가 무시할 수 있는 추가형이거나, 잘못 가져오면 손상되는 호환 불가형이에요. 추가형은 formatVersion을 올리고 minReader를 유지해요. 호환 불가형은 formatVersion을 올리고 minReader도 올려요. 리더는 minReader가 자신의 버전 이하일 때 가져와요.번들 형식의 변경은 이전 리더가 무시할 수 있는 추가형이거나, 잘못 가져오면 손상되는 호환 불가형이에요. 추가형은 formatVersion을 올리고 minReader를 유지해요. 호환 불가형은 formatVersion을 올리고 minReader도 올려요. 리더는 minReader가 자신의 버전 이하일 때 가져와요.Open this in Diagram Builder

작성자를 위한 경험칙: 기존의 모든 리더가 추가한 것을 무시해도 올바르게 동작한다면 그 변경은 추가형이에요. formatVersion을 올리고 minReader는 그대로 두세요. 그렇지 않으면 minReader를 올리세요.

무결성

manifest.integrity가 있으면 리더는 아무것도 쓰기 전에 나열된 각 파트의 SHA-256을 확인해요. 불일치("failed its integrity check")나 누락된 파트("incomplete")는 가져오기 전체를 멈추므로 부분 복원은 없어요. 이는 잘린 AirDrop, 첨부 파일을 다시 인코딩한 이메일 게이트웨이, 불량 USB 섹터처럼 파일 전송이 일으킬 수 있는 손상을 걸러내요.

무결성은 최선을 다하는 방식이에요. Web Crypto를 쓸 수 있는 곳(모든 보안 브라우저 컨텍스트와 최신 Node)에서만 쓰이고, 맵과 Web Crypto가 모두 있을 때만 확인돼요. 무결성이 생기기 전의 번들처럼 맵이 없는 번들도 그대로 가져와져요. "확인할 수 없음"은 "손상됨"으로 세어지지 않아요.

매니페스트는 자신도, 다시 생성되는 lolly.txt도 나열하지 않아요. 다이제스트는 매니페스트가 보증하는 파트를 다뤄요.

가져오기 규칙

가져오기는 두 모드 중 하나로 실행돼요.

병합에서는 대상에만 있는 것은 모두 유지되며, 번들의 각 데이터 종류는 대상과 이렇게 만나요.

데이터이미 대상에 있음번들에만 있음
세션(슬롯별)과 업로드된 이미지(ID별)더 최근에 저장한 사본이 유지되므로 오래된 백업이 새 작업을 덮어쓰지 않아요. 시간이 같거나 알 수 없으면 대상의 사본이 유지돼요.추가됨
폴더대상의 이름과 상위 폴더가 유지되고, 폴더는 번들의 없는 구성원을 얻어요. 대상의 폴더에 보관된 세션은 그곳에 그대로 있어요.추가됨
즐겨찾기(도구, 카탈로그 에셋, Projects 항목)결합됨추가됨
템플릿, Projects 템플릿, 사용자 도구(ID별)대상의 레코드가 유지돼요.추가됨
휴지통 항목대상의 항목이 유지돼요.추가되므로 어느 설치에서든 복원할 수 있던 항목은 여전히 복원할 수 있어요. 폴더가 대상에서 다시 사용 중이거나 휴지통 슬롯을 대상이 이미 쓰는 항목은 제외돼요.
기타 프로필 필드(이름, 연락처, 언어, 기능 플래그, 숨긴 도구, 기타 설정)대상의 값이 유지돼요.대상의 필드가 비어 있는 곳에 채워져요
환경설정(prefs.json)대상의 값이 유지돼요.대상에 없는 곳에 기록돼요
디자인 시스템(ID별)번들의 레코드가 대상의 것을 대체해요.추가됨. 번들의 활성 선택은 대상에 자체 디자인 시스템이 없을 때만 적용돼요.
작품 기록더 최근에 저장한 사본이 현재로 유지되고 다른 하나는 보호된 초안으로 보관돼요.추가됨

저장된 세션은 이미지와 자동으로 다시 연결돼요. 에셋 참조는 ID로 보관되고, 브리지가 이미지가 복원된 후 이를 다시 확인해요. blob: URL이 새로고침을 견디지 못하므로 어차피 해야 하는 일이에요.

기록은 작성된 후 절대 바뀌지 않아요. 에셋 버전과 작업 ID를 반복해서 가져와도 아무것도 추가되지 않으며, 이미 다른 바이트나 기록을 가리키는 ID는 덮어쓰지 않고 거부돼요. 동일한 현재 에셋을 다시 가져오면 버전이 유지되고, 변경된 현재 에셋은 다른 버전을 가져야 해요.

작품 기록에는 몇 가지 규칙이 더 있어요. 대상이 다른 작품에 쓰는 슬롯의 작품은 별도의 작품으로 추가되고, 대상의 휴지통에 있는 작품은 그곳에 남아요. 대상에서 다른 내용을 가리키는 체크포인트 ID는 대상의 것을 유지해요. 자체 검사에 실패한 아카이브는 프로필, 세션, 에셋, 환경설정이 바뀌기 전에 가져오기를 멈추며, 동일한 반복 가져오기는 저장소를 추가로 쓰지 않아요.

요약이 일어난 일을 보고해요. 모든 가져오기는 profile, sessions, userAssets, prefs, skipped, failedAssets를 반환해요.

복원은 프로필, 세션, 에셋, 기록 저장소를 가로지르는 하나의 트랜잭션이 아니에요. 클라우드 sync는 부분 또는 지원되지 않는 복원 후에 적용된 개정본을 진행시키지 않으므로, 사본은 다시 시도할 수 있도록 남아 있어요.

이동하지 않는 것

저장소 미터도 같은 구분을 보여줘요. Saved sessions, My images, File results & versions는 번들에 들어가요. 그 아래의 에셋 캐시, 도구 미리보기, 오프라인 고정은 모두 다시 만들 수 있으므로 남아요.

이 기기의 데이터를 이름 붙은 범주로 나눈 저장소 미터: Saved sessions와 My images가 Asset cache와 따로 집계돼요. 여기서는 모든 범주가 아직 비어 있는 새 설치예요 signed by Lollyvector SVG37 paths~4.9k nodes85 groups65 KBCheck it yourself서명된 파일 받기이 기기의 데이터를 이름 붙은 범주로 나눈 저장소 미터: Saved sessions와 My images가 Asset cache와 따로 집계돼요. 여기서는 모든 범주가 아직 비어 있는 새 설치예요 signed by Lollyvector SVG37 paths~4.9k nodes85 groups65 KBCheck it yourself서명된 파일 받기

Lolly Work의 조직 데이터

이 번들은 기기의 개인 라이브러리를 백업해요. Lolly Work 인스턴스의 백업이 아니에요. 조직 계정, 접근 정책, 공유 프로젝트, 카탈로그 버전, 승인, 렌더 작업, 감사 기록은 해당 서비스가 보관해요. 공유 작업에 다시 접근하려면 다시 연결하고 로그인하세요. 개인 번들을 가져와도 그 접근 권한은 부여되지 않아요.

운영자는 Lolly Work의 자체 가이드인 백업과 복원과 Work 저장소와 데이터 수명 주기로 서버 데이터를 백업, 보관, 삭제해요. 기기를 지우거나 내보내도 그런 서버 작업은 일어나지 않아요.

셸 간

data-transfer.ts는 기능 브리지(host.profile, host.state, host.assets)와 공유 localStorage 환경설정을 통해서만 읽고 써요. 같은 모듈이 웹과 데스크톱 및 모바일 앱에서 IndexedDB나 파일 시스템 저장소 위에서 공통 봉투를 읽고 써요. 선택적 기록 파트는 어댑터를 쓸 수 있는 곳에서만 나타나고, 지원되지 않는 파트는 가져올 때 건너뛴 것으로 보고돼요. 헤드리스 모음은 메모리 내 브리지로 공통 파트를 검증하며, 기록 트랜잭션에는 실제 브라우저 테스트도 있어요.

두 셸은 서로 다른 이유로 이 보장 밖에 있습니다:

아직 이식할 수 없는 것

봉투는 매니페스트와 이름 붙은 파트로 이루어져 있으므로, 새로운 종류의 이식 가능한 데이터가 나중에 추가형 파트(새 formatVersion, 같은 minReader)로 합류할 수 있고, 오늘의 리더는 인식하지 못하는 것을 건너뛰어요. 디자인 시스템은 이미 design-systems.json과 사용자 에셋으로 이렇게 이동해요.

아직 이동하지 않는 데이터를 위해 두 이름이 예약되어 있어요.

오늘의 리더는 두 이름 모두 아직 몰라요. 위 파트 밖의 다른 것처럼 이들에게는 알 수 없는 파트이며 건드리지 않고 skipped로 세어요.

기록 파트

두 기록 파트는 선택 사항이며 자체 버전이 있어요. 대부분의 리더는 이 섹션을 건너뛰어도 돼요.

작품 기록 (v3)

작품 기록이 있는 웹 설치의 수동 백업에는 자체 스키마 { version: 1, documents, revisions, recoveries }를 가진 revision-history.json이 포함돼요. 보관된 ID, 표준 입력 스냅샷, 버전 스탬프, 래스터 미리보기, 별도 작성기 초안을 담아요. 기록 어댑터는 현재 세션과 그 헤드를 하나의 읽기 트랜잭션으로 캡처하고, sessions.json은 이전 리더를 위해 같은 현재 스냅샷을 써요.

복원은 아카이브를 하나의 트랜잭션으로 확정하기 전에 페이로드 SHA-256과 바이트 수, 고유 ID, 문서와 헤드 관계, 계보, 타임스탬프, 미리보기 유형, 한도를 확인해요. 압축된 상위 참조는 없을 수 있어요. 기존 현재 작업은 조용히 대체되지 않아요. 작품이 양쪽에 모두 있으면 현재로 유지되지 않은 쪽이 보호된 초안이 돼요.

아카이브의 384 MiB 전송 한도는 명시적으로 확인되며, 보관된 체크포인트를 자르지 않고 저장소 한도가 적용돼요. 내보내기는 revision-history.json과 sessions.json을 조각으로 쓰며, 단일 JSON.stringify와 같은 바이트이므로 파일 텍스트가 통째로 보관되지 않아요. 한도를 넘을 기록 파일은 넘는 순간 버려지고 그때부터는 세기만 해요. 그다음 가장 오래된 자동 체크포인트를 뺀 아카이브가 다시 만들어지며 내보내기 요약이 이를 checkpointsLeftOut으로 세거나, 아카이브 전체가 거부돼요.

이 기능이 없는 셸은 일반 세션을 복원하고 기록 파트를 건너뛴 것으로 보고해요. 네이티브 파일 시스템 기록은 어댑터가 내구성 있는 기록 트랜잭션을 제공할 때까지 지원되지 않아요. 비공개 collab의 게스트에게는 내구성 있는 기록이나 복구 아카이브가 없어요.

개인 스냅샷 sync는 작품 기록을 제외해요. 기록이 있는 로컬 문서에 스냅샷을 적용하면 이전 작업 상태가 별도의 복구 초안으로 유지되고 열려 있는 편집기의 쓰기 토큰이 무효화돼요. 불변 체크포인트는 기기에 남아요. 이는 스냅샷 교체 중에 로컬 기록을 보호하며, 동시에 일어난 기기 기록을 병합하지는 않아요.

과거의 에셋 참조는 유지되며, 렌더링은 여전히 대상의 기존 라이브러리를 통해 에셋을 확인해요. 이 아카이브는 아직 정확한 이전 에셋 바이트나 이전 도구 렌더링을 보장하지 않아요. 에셋 버전과 파일 결과 바이트는 자체 백업 파트로 이동해요.

저장된 버전과 파일 결과 (v2)

선택적 기록 파트는 { version: 2, assetVersions: [...], operations: [...], batches: [...] }를 담으며, 리더는 배치 없는 이전 history-v1 형태도 받아요. 각 스냅샷은 안정적인 에셋 ID와 정확한 버전, 저장 시간, 바이트 길이, 16진수 SHA-256과, _file과 선택적 _credentialFile이 바이너리 파트를 가리키는 에셋 레코드를 줘요. 작업은 원본 파일 사실, 요청, 보고서, 타임스탬프, 선택적 결과 _file을 담아요. 저장소 백엔드 이름, OPFS 핸들, 실행 임대는 이동하지 않아요. history v1만 아는 리더는 배치 소속을 조용히 버리지 않고 가져오기 전에 새 기록 버전을 거부해요.

배치 매니페스트는 읽지 않은 파일, 취소된 멤버, 결과 공간 예약 실패, 중단된 작업을 포함해 처리 전에 선택된 모든 소스를 기록해요. 각 멤버에는 안정적인 작업 ID, 소스 참조와 사실, 요청된 출력 이름, 최종 보고서가 있어요. 읽지 않은 소스에는 지어낸 다이제스트가 아니라 선언된 사실이 있어요. 가져오기는 멤버 ID와 함께 담긴 작업 보고서와의 일관성을 검증해요. 개별 결과가 제거되어도 배치 보고서는 유지되지만, 영수증이 있다고 출력 바이트가 아직 저장되어 있다는 뜻은 아니에요.

  • 검증이 먼저. 알려진 모든 기록, 보고서, 참조된 파일은 프로필이나 에셋 가져오기가 쓰기 전에 검증돼요. 봉투에 무결성 맵이 없어도 누락된 바이트와 일치하지 않는 SHA-256은 실패해요. 추출된 자격 증명은 숫자 키 객체로 직렬화한 이전 작성기의 가져오기를 포함해 바이트 배열로 유지돼요.
  • 실행 중인 작업. 실행 중인 작업은 백업에서 설명하는 실패 보고서가 있고 결과가 없는 중단된 레코드가 돼요. 복원은 백그라운드 작업을 재시작하거나 활성 임대를 가져오지 않아요. 다시 시도하려면 원본 파일을 다시 선택하며, 가능하면 기록된 SHA-256과 대조해요.
  • 저장소. 복원된 결과는 바이트와 메타데이터를 IndexedDB에 함께 확정해요. 일반 새 결과는 가능하면 OPFS를 쓰고 IndexedDB로 대체돼요. 기존 라이브 작업은 가져오기로 대체되지 않아요.
  • 백업 한도. 내보내기는 이 바이트를 아카이브로 스트리밍하지만 복원은 여전히 백업 전체를 메모리에서 압축 해제하므로 한도가 유지돼요. 256 MiB의 기록 페이로드, 4 MiB의 기록 메타데이터, 최대 작업 100개, 배치 100개, 스냅샷 2,000개예요. 내보내기는 너무 크거나 불완전한 기록을 명시적으로 거부하며 조용히 빼지 않아요. 오래된 로컬 사본을 제거하기 전에 중요한 버전과 결과를 하나씩 다운로드하세요. 이 한도는 휴대폰의 측정된 최대 메모리 보장이 아니에요.
  • 로컬 예산. 로컬 결과 기록은 512 MiB 예산과 레코드 100개 상한이 있어요. 에셋 스냅샷은 별도의 512 MiB 예산과 에셋당 최대 20개의 과거 버전이 있으며 추출된 자격 증명 바이트도 그 예산에 포함돼요. 복원은 이 한도를 지키며 기존 사용자 데이터를 조용히 제거하지 않아요.
  • 배치 메타데이터. 로컬 배치 메타데이터는 별도의 4 MiB 예산, 최대 매니페스트 100개, 배치당 멤버 20개예요. 대기 중인 멤버가 메타데이터 용량을 예약하며 멤버당 보고서 상한은 32 KiB예요. 이는 논리적 예산이며 브라우저 디스크 공간 보장이 아니에요. 실제 할당량 실패는 표시되고 메모리 내 보고서는 계속 다운로드할 수 있어요. 배치 멤버를 다시 시도하면 이전 보고서를 덮어쓰지 않고 새 배치가 만들어져요. 배치 레코드를 제거해도 개별 결과 바이트나 라이브러리 에셋은 제거되지 않아요.
  • 라이브러리의 결과. 변환된 결과는 정규화나 재인코딩 없이 소스 및 출력 해시와 작업 관계가 첨부된 채 라이브러리에 추가할 수 있어요. 반복 추가는 변경되지 않은 사본을 재사용하고, 편집된 사본은 절대 덮어쓰지 않아요. 래스터 이미지는 현재 라이브러리 에셋 ID를 쓰는 새 Design 문서를 시작할 수 있어요. Design의 런타임과 URL 경로 전체에 정확한 버전 고정을 적용하는 것은 별도의 작업이에요. SVG, HTML, PDF, ZIP 결과는 신뢰되는 대화형 또는 벡터 콘텐츠로 승격되지 않고 불투명한 파일 에셋으로 유지돼요.
  • 사람이 보는 곳. Convert → Recent file operations는 기록 사용량, 보고서, 다운로드, 버전 관리자를 보여주며, 버전 관리자는 삭제된 라이브러리 에셋의 이전 버전도 찾아요. 스냅샷을 복원하면 새 현재 버전이 만들어지고 선택한 스냅샷은 유지돼요. Settings → Preferences → Storage는 결과와 버전을 폐기 가능한 캐시와 따로 집계해요.
  • 정리. 명시적 임시 파일 정리는 작업이 소유하고 참조되지 않은 바이트만 제거해요. 현재 레코드는 자기 파일을 보호하며 최근 OPFS 파일에는 한 시간의 유예 기간이 있어요. 저장된 결과와 에셋 스냅샷은 자동으로 지워지지 않아요.

이전 리더도 v2 봉투(minReader: 1)를 받고 아는 파트를 복원하며 지원되지 않는 기록 파트는 건너뛴 것으로 세어요. 전체 기록 복구에는 새로운 도구 대상 HostV1 기능이 아니라 셸 내부의 접점인 fileHistory 어댑터가 있는 셸이 필요해요. 실제 두 기기 복원은 로컬 Chromium 게이트가 다루며, 설치된 데스크톱, iOS, Android 앱의 복구는 별도로 수락되어야 해요.

참고 자료