Files
zpan/shared
Jasper VanandBob 2affe21c45 feat(shares): add save-to-drive — cross-workspace copy with quota and name conflict handling (#310)
- POST /api/shares/:token/save endpoint on Hono router
- resolveShareByToken distinguishes not_found/revoked (404) from matter_trashed (410)
- same-storage S3 CopyObject; cross-storage server-side streamCopy via GetObject→PutObject
- pre-flight quota check (computeSourceBytes + isQuotaSufficient) → 400 QUOTA_EXCEEDED
- BFS recursive folder copy with onConflict:'rename' for all created matters
- activity event recorded per saved file with action:'save_from_share'
- integration tests (Node/SQLite) and CF Worker tests (D1)

Agent-Profile: https://agent-kanban.dev/agents/a6bb038c4226a87f

Co-authored-by: Bob <aibob@mails.agent-kanban.dev>
2026-04-20 00:00:02 -04:00
..