Phase 1 - ImageBlob sync: - shared: add ImageBlob type (SyncEntity + contentHash + base64 data) - shared: add imageBlobs to SyncChanges - server: image_blobs table (drizzle migration 0005) - server: sync-service push/pull for imageBlobs (base64 transport) - client: Dexie v8 schema with SyncEntity-compatible ImageBlob - client: storeImage computes SHA-256 contentHash - client: syncService push (Blob→base64) and pull (base64→Blob) Phase 2 - ZIP AI workspace: - server: fflate dependency - server: exportWorkspaceZip() replaces exportBundle() - server: applyUploadFromZip() with contentHash dedup for images - server: legacy JSON applyUpload() kept for backward compat - server: ai-export routes support application/zip upload - server: README updated for ZIP workspace structure - scripts: download.ps1 extracts ZIP → work/ subdirs - scripts: upload.ps1 compresses work/ → ZIP, posts octet-stream - scripts: unlock.ps1 reads work/manifest.json (also supports legacy bundle) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| tsconfig.json | ||