itsgoin/crates/core/src
Scott Reimers 60463d1817 Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders
Switch ALL propagation-decision reads to the flat holder set.

push_manifest_to_downstream now targets file_holders instead of
blob_downstream. ManifestPush receive-side relay likewise — known
holders fan out to up to 5 most-recent peers instead of a directional
tree.

Blob delete notices: single flat fan-out to file_holders; the legacy
upstream_node tree-healing field is emitted as None (wire-stable via
serde default) and ignored on receive — the post-0.6 flat model
doesn't need sender-role distinction. send_blob_delete_notices keeps
its Option<&Upstream> parameter as an unused placeholder for signature
stability with the call sites in this commit.

Other reads migrated:
- blob fetch cascade: step 2 now tries "known holders" (up to 5)
  instead of a single upstream
- manifest refresh: downstream_count reported from file_holder_count
- web/http post holder enumeration
- Worm search post/blob holder fallback (both connection.rs paths)
- DeleteRecord fan-out rewires to file_holders
- Under-replication replication check: < 2 holders

Storage additions:
- get_file_holder_count(file_id)
- remove_file_holder(file_id, peer_id)

Legacy upstream/downstream writes are still happening from Phase 2b;
those + the tables themselves go in 2e.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 21:09:45 -04:00
..
activity.rs ItsGoin v0.3.2 — Decentralized social media network 2026-03-15 20:23:09 -04:00
blob.rs v0.3.6: Active CDN replication, device roles, budgets, tombstones, engagement fix, DOS hardening 2026-03-20 21:00:28 -04:00
connection.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00
content.rs ItsGoin v0.3.2 — Decentralized social media network 2026-03-15 20:23:09 -04:00
crypto.rs v0.4.1: Security hardening, lock contention fixes, data cleanup 2026-03-21 19:30:38 -04:00
export.rs Export/Import: ZIP export with scope selection, import with public post merge 2026-03-31 20:56:03 -04:00
http.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00
identity.rs First-run chooser, node shutdown on switch, file picker, export path fix 2026-04-06 01:58:02 -04:00
import.rs AppImage video fix, proper import posts, first-run chooser, file pickers 2026-04-16 13:49:52 -04:00
lib.rs Export/Import: ZIP export with scope selection, import with public post merge 2026-03-31 20:56:03 -04:00
network.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00
node.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00
protocol.rs Feed pagination, duplicate identity detection, pkarr leak fix, Android SAF 2026-04-18 15:35:23 -04:00
storage.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00
stun.rs Our Info panel, hole punch race fix, NAT profiles in relay introduction 2026-04-05 17:57:41 -04:00
types.rs v0.5.0-beta: merge-with-key import, prior_author provenance, beta versioning 2026-04-05 14:47:24 -04:00
upnp.rs ItsGoin v0.3.2 — Decentralized social media network 2026-03-15 20:23:09 -04:00
web.rs Phase 2d (0.6.1-beta): route manifest + blob ops through file_holders 2026-04-21 21:09:45 -04:00