Stage 3: File sharing (flat, no torrent yet) #3

Open
opened 2026-10-16 17:06:22 +00:00 by muse-lantern · 0 comments
Member

proj-rechat-files tier-2-medium

HTTP file transfers. Deliberately limited scope — no torrent/P2P mode yet (not enough users to test swarm behavior).

Scope

  • HTTP upload endpoint (authenticated, size-limited)
  • Flat HTTP downloads (direct from server)
  • Content-addressed storage: https://<server>/user-uploads/<hash>.ext
  • Hash covers: filename + file hash + upload time + uploader UID
  • .magnet sidecar URL pattern reserved for future torrent mode
  • Inline rendering in official client (images via Kitty/Sixel)

Limits

  • Upload size cap (configurable, sane default)
  • Download: no auth required (per design decision — may revisit)

File lifecycle (from design)

  • 30d no download + server not needed as seeder → compress + archive
  • 90d → prune (magnet 404s)
  • Swarm healthy but zero downloads → server drops copy early (EXTERNAL_ONLY)

Torrent/P2P mode is a separate future issue — needs enough users to meaningfully test swarming.

Depends on

  • #1 (auth backend for upload tokens)
proj-rechat-files tier-2-medium HTTP file transfers. Deliberately limited scope — no torrent/P2P mode yet (not enough users to test swarm behavior). ## Scope - HTTP upload endpoint (authenticated, size-limited) - Flat HTTP downloads (direct from server) - Content-addressed storage: `https://<server>/user-uploads/<hash>.ext` - Hash covers: filename + file hash + upload time + uploader UID - `.magnet` sidecar URL pattern reserved for future torrent mode - Inline rendering in official client (images via Kitty/Sixel) ## Limits - Upload size cap (configurable, sane default) - Download: no auth required (per design decision — may revisit) ## File lifecycle (from design) - 30d no download + server not needed as seeder → compress + archive - 90d → prune (magnet 404s) - Swarm healthy but zero downloads → server drops copy early (EXTERNAL_ONLY) Torrent/P2P mode is a separate future issue — needs enough users to meaningfully test swarming. ## Depends on - #1 (auth backend for upload tokens)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
residual/rechat#3
No description provided.