Decentralized social media network — no central server, user-owned data
Users can now hold multiple posting identities on one device and publish content under any of them. Each persona has its own ed25519 key; peers see them as distinct authors with no link back to the device's network identity. Node methods: - list_posting_identities() -> Vec<PostingIdentity> - create_posting_identity(display_name) — generates a fresh ed25519 key, persists, auto-follows self - delete_posting_identity(node_id) — refuses to delete the default - set_default_posting_identity(node_id) — validates identity exists; Node's cached default_posting_id/secret picks up on next restart - create_post_as(posting_id, content, intent, attachments) — routes through a shared create_post_inner that takes posting_id + posting_secret as parameters Post creation pipeline: - create_post_with_visibility now delegates to create_post_inner using default_posting_id/secret - create_post_inner threads posting_id / posting_secret through every content-signing, encryption, manifest, blob-header, and CDN-manifest step — the persona is fully honored end to end - update_neighbor_manifests now takes a posting_id param too, so posts from persona X only update neighbor manifests for X's own prior posts Tauri IPC: - list_posting_identities / create_posting_identity / delete_posting_identity / set_default_posting_identity - create_post_as with posting_id_hex + the same visibility params as create_post CLI: - personas / create-persona <name> / delete-persona <id> - post-as <posting_id> <text> Smoke-tested two-persona scenario: - A creates "Work" persona; posts from default and Work - B follows both; pulls from A; gets all three posts - Authors are AB84BA... (Work) and 7CD949... (default) — distinct on the wire Frontend UX (Settings > Personas, compose picker, filter pills, merged feed labels) is scoped as a separate commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| crates | ||
| deploy | ||
| docs | ||
| frontend | ||
| website | ||
| .gitignore | ||
| .sync-exclude.lst | ||
| ARCHITECTURE.md | ||
| build-appimage.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| deploy.sh | ||
| download-page.html | ||
| IMPLEMENTATION_PLAN_0.6.md | ||
| pic2.png | ||
| project discussion.txt | ||
| project-notes-from-elitebook.md | ||
| TODO.md | ||