Commit Graph

39 Commits

Author SHA1 Message Date
cyph3rasi b46be5c076 Reconcile the accepted safe federation helper with E2EE integration hardening and complete PIN-based encrypted DMs
Hop-State: A_06FPC0CGS3F7SJG3BGW0YF0
Hop-Proposal: R_06FPC0BK6YEV7XASNM7C908
Hop-Task: T_06FPAWA3279RBMJAR0BHM10
Hop-Attempt: AT_06FPBZWSBFTB9B5YH9JY9QR
2026-07-15 06:40:06 -07:00
cyph3rasi 219a40bea4 Add DNS-pinned, SSRF-safe E2EE federation HTTP client with bounded transport and focused tests
Hop-State: A_06FPBGR5V0SYEQ98K4B3CK0
Hop-Proposal: R_06FPBGQ08SYCC3FFX60C2WR
Hop-Task: T_06FPBE04RGFEEZ273R2YQWG
Hop-Attempt: AT_06FPBE04RGAW7YS4NVENDKR
2026-07-15 05:31:47 -07:00
cyph3rasi 93be1cffd8 Fix repeating Home feeds with timestamp cursors across local and swarm sources, remote profile pagination, duplicate filtering, and in-flight request guards.
Hop-State: A_06FPACHVKP3PTEY7DT6NW1R
Hop-Proposal: R_06FPACGSH34JXPKH7QHAXAR
Hop-Task: T_06FPABDPSJFCRPZSG0PXS9G
Hop-Attempt: AT_06FPABDPSG9CRMFEZ4WC35R
2026-07-15 02:53:38 -07:00
cyph3rasi b291c5a453 Blur NSFW profile avatars and banners unless the viewer has enabled NSFW
Hop-State: A_06FP9DH64R0TWDEQST5Z460
Hop-Proposal: R_06FP9DF1AKH8Z9GA7AD24G0
Hop-Task: T_06FP9B65YW8Z4VM9386KDB8
Hop-Attempt: AT_06FP9B65YZ94YY9QS6C6Q38
2026-07-15 00:38:06 -07:00
cyph3rasi c17b27b240 Display repository commit count as the Synapsis version
Hop-State: A_06FP98T1AFPC938R80XJ3J0
Hop-Proposal: R_06FP98S721MFZV1BVBVDTK8
Hop-Task: T_06FP98D0VF530A9XJ2HHHWR
Hop-Attempt: AT_06FP98D0VFKNWCN4EJD46YR
2026-07-15 00:17:28 -07:00
cyph3rasi 67bd0d0bbb Show commit builds and mandate automatic node updates
Hop-State: A_06FP97T67MMQBS4JYJVZ710
Hop-Proposal: R_06FP97R88JYXTBZTNVXV08G
Hop-Task: T_06FP95PNKD7PXAMPWPRWSD8
Hop-Attempt: AT_06FP95PNKE2R52XYNMKVRWG
2026-07-15 00:13:07 -07:00
cyph3rasi cb7070244c Resolve relative node logo paths before swarm announcements
Hop-State: A_06FP959CFWNA2D273CCHP4R
Hop-Proposal: R_06FP957R3SZA57Z7S68VGSG
Hop-Task: T_06FP94T21NC8DA4KTNYN5A8
Hop-Attempt: AT_06FP94T21QZ7GXMYNEQH85G
2026-07-15 00:02:05 -07:00
cyph3rasi 6edf8991fa Repair swarm bootstrap seed for new and existing nodes
Hop-State: A_06FP90SDWE5709BB1G6J4B8
Hop-Proposal: R_06FP90RS27BNBV5H5N053A0
Hop-Task: T_06FP905Q50D1ZFPC56N3DZG
Hop-Attempt: AT_06FP905Q50E6P72ZMVT4038
2026-07-14 23:42:26 -07:00
cyph3rasi 1427df4bdc Restrict public swarm participation and propagation to real public ICANN domains
Hop-State: A_06FP8GM0PKJTMF45B7016J0
Hop-Proposal: R_06FP8GKFXXZG84ETVCPS5ZG
Hop-Task: T_06FP8F45T3G4Z4ESW9NZQQR
Hop-Attempt: AT_06FP8F45T3QS81M2ZM4SJ3G
2026-07-14 22:31:47 -07:00
cyph3rasi 0ecb622565 Reconcile validated Turso runtime fix with republished main history
Hop-State: A_06FP6A2CG8PVBRDVQ5WGCN0
Hop-Proposal: R_06FP6A0YW23RY0N7Z5M8DW0
Hop-Task: T_06FP67JVF4BHPYKKC37XKQ8
Hop-Attempt: AT_06FP69RZ96ZMNF9Y5S02MT0
2026-07-14 17:23:33 -07:00
cyph3rasi 60f7dba46c Migrate Synapsis to embedded Turso
CI / smoke (push) Has been cancelled
2026-07-14 15:50:12 -07:00
cyph3rasi 21258edd95 Replace PostgreSQL and Docker deployment with embedded Turso, Drizzle relational queries v2, native systemd deployment on port 43821, and fresh SQLite migrations.
Hop-State: A_06FP5KEDBTB4A9ZT7QB498G
Hop-Proposal: R_06FP5KDWMCKVVMQZT4MVZ28
Hop-Task: T_06FP5DZ7T0G45FG93PT90B8
Hop-Attempt: AT_06FP5DZ7T0PKQW99V27JCV8
2026-07-14 15:44:42 -07:00
cyph3rasi b4a9d82d05 Add docker publish flow, node blocklist & API updates
Replace docker/metadata GH Action with a docker-publish.sh driven workflow (supports auto-versioning, extra tags, multi-arch builds and optional builder). Update docs and READMEs to use the updater and new publish flow. Add server-side swarm/node blocklist support and admin nodes API. Improve auth endpoints (me, logout, switch, session accounts) and support account switching. Extend bots API to support custom LLM provider and optional endpoint. Enforce node blocklist on chat send/receive, refactor link preview handling into dedicated preview modules, and enhance notifications and posts like/repost handlers to accept both signed actions and regular auth flows. Misc: remove admin update UI details, add helper libs (media previews, node-blocklist, reposts, notifications, etc.), and minor housekeeping (pyc, workflow tweaks).
2026-03-10 12:40:05 -07:00
cyph3rasi 5f21ea8e5d Fix reply consistency and source validation 2026-03-08 18:29:42 -07:00
cyph3rasi 98359886df Fix remote likes, notification reads, and profile tabs 2026-03-08 00:13:14 -08:00
cyph3rasi c5984145dc Fix swarm interaction and reply identity verification 2026-03-07 23:47:17 -08:00
cyph3rasi 830c062fa1 Fix swarm replies and interaction verification 2026-03-07 22:18:16 -08:00
cyph3rasi 1b0b3d8d52 Fix federation flows and add versioned updater 2026-03-07 21:55:55 -08:00
cyph3rasi 1e2da4f2da Fix swarm signature verification payloads 2026-03-07 21:03:47 -08:00
cyph3rasi 853c564755 Fix swarm bootstrap for logo-less nodes 2026-03-07 20:54:30 -08:00
Christomatt f55dec9a60 feat: user-owned S3-compatible storage with credential verification 2026-02-01 02:51:52 +01:00
Clawd Deploy Bot 50355b740a Security fixes: swarm signature verification and error handling 2026-01-30 16:50:49 +01:00
Christomatt 495a037eb1 feat: Add optional publicKey field to interaction type. 2026-01-30 08:47:26 +01:00
Christomatt 374bfadc74 feat: Add public key to user profiles in API responses and update user caching logic to store and manage it. 2026-01-30 05:16:49 +01:00
Christomatt 10a54a0ea9 feat: Implement identity lock screen for sensitive user actions and introduce avatar generation. 2026-01-30 04:44:57 +01:00
Christomatt 9710a16f83 feat: Implement remote user profile caching and enhance chat conversation list display with updated styling. 2026-01-29 01:00:22 +01:00
Christopher ceae76d58f Refactor chat system to remove E2EE and simplify messaging
Removed all E2EE chat endpoints, crypto logic, and related API routes, transitioning chat to plain text storage and transport. Updated chat send/receive endpoints to use signed actions and enforce DM privacy settings. Cleaned up Swarm chat inbox, key management, and related debug endpoints. Updated user profile to support DM privacy, improved search for handle queries, and refactored conversation/message logic to support the new model. Migrated bot settings and privacy settings to new locations.
2026-01-28 13:05:34 -08:00
Christopher f678f1f87e Refactor handle registry updates and improve key decoding
Removed 'healing' logic and authoritative update propagation from handle registry and gossip code, simplifying handle upserts to only update on strictly newer timestamps. Enhanced sodium-chat key handling with robust base64 decoding and key repair logic. Added scripts for key inspection and crypto testing. Deleted unused healing module.
2026-01-28 07:16:15 -08:00
Christopher 36f653d500 Improve handle registry healing and gossip propagation
Added healing utilities to update the handle registry when a user profile is found at a new node domain. Enhanced upsertHandleEntries to accept a sourceDomain parameter, allowing authoritative updates from the owning node. Updated gossip logic to pass sender/target domains for proper trust handling during handle propagation. Integrated healing logic into chat key lookup to keep the registry accurate.
2026-01-28 06:55:13 -08:00
Christopher 33295b744e Add DID support and improve login state handling
Introduces a 'did' field to SwarmUserProfile and related API routes to support decentralized identifiers. Refactors login flow to use soft navigation and synchronize AuthContext state, including new 'login' and enhanced 'unlockIdentity' methods for better user state management.
2026-01-27 19:10:07 -08:00
Christopher 5903022f8a Add encrypted key support for chat and nodes
Introduces encrypted private key storage for nodes and users, updates chat message schema to support sender-side encryption, and adds supporting libraries and tests for cryptographic signing and identity unlock flows. Includes new database migrations, API route updates, and React components for identity unlock prompts.
2026-01-27 17:13:28 -08:00
Christomatt 1726ef0c7b feat: include chatPublicKey in user profiles and the swarm user interface. 2026-01-27 04:00:27 +01:00
Christomatt 8e7c6353f3 feat(chat): Upgrade to hybrid encryption with AES-256-GCM and RSA-OAEP
- Replace pure RSA encryption with hybrid encryption scheme for better performance
- Implement AES-256-GCM for fast message encryption without size limitations
- Use RSA-OAEP for secure AES key exchange between chat participants
- Add EncryptedPayload interface to structure encrypted data (key, IV, ciphertext, auth tag)
- Update encryptMessage() to generate random AES key and IV, encrypt with AES-GCM, then wrap AES key with RSA
- Update decryptMessage() to unwrap AES key with RSA, then decrypt message with AES-GCM
- Include GCM authentication tag for message integrity verification
- Encode all binary components as base64 strings in JSON payload for transport
- Improves encryption performance while maintaining security for end-to-end swarm messaging
2026-01-27 01:42:17 +01:00
Christomatt eb63194c56 refactor: Migrate from ActivityPub federation to native Swarm network
- Remove ActivityPub infrastructure (webfinger, nodeinfo, inbox, activities, signatures)
- Implement native peer-to-peer Swarm network with gossip protocol
- Replace federated timeline with Swarm timeline aggregating posts from all nodes
- Migrate direct messaging to end-to-end encrypted Swarm Chat system
- Update user interactions (follow, like, repost) to use Swarm protocol
- Add cryptographic key management for DID-based identity system
- Remove server-bound identity model in favor of portable DID identities
- Update documentation to reflect Swarm architecture and capabilities
- Add debug utilities and chat testing tools for Swarm network
- Refactor database schema to support distributed user directory
- Update bot framework to work with Swarm network interactions
- Simplify API routes to use Swarm protocol instead of ActivityPub
- This transition enables true peer-to-peer communication, instant interactions, and encrypted messaging while maintaining sovereign identity through DIDs
2026-01-27 01:27:15 +01:00
Christomatt 6b8eeb6814 feat(chat): Implement end-to-end encrypted swarm messaging system
- Add Swarm Chat documentation with architecture, API endpoints, and security considerations
- Create database schema for chat conversations, messages, and typing indicators
- Implement chat API endpoints for sending, receiving, and managing messages
- Add client-side encryption utilities using RSA-OAEP with SHA-256
- Create chat page UI for viewing conversations and messages
- Add chat type definitions for TypeScript support
- Update database schema with new chat tables and relationships
- Update sidebar navigation to include chat link
- Enable true end-to-end encrypted messaging across swarm nodes without ActivityPub limitations
2026-01-26 20:00:17 +01:00
Christomatt cf0dfa4b66 feat: Implement dynamic node title metadata and enhance swarm user and post hydration. 2026-01-26 17:09:21 +01:00
Christomatt f361e13e53 feat(swarm): Add direct swarm interaction delivery for likes, reposts, and unreosts
- Add swarm post handling to like endpoint with direct delivery to origin node
- Add swarm post handling to repost endpoint with direct delivery to origin node
- Add new unrepost endpoint for removing reposts from swarm posts
- Implement deliverSwarmUnrepost function in interactions library
- Extract swarm domain and post ID validation for all interaction types
- Return appropriate error responses for invalid swarm post IDs
- Log successful swarm interaction deliveries for debugging
- Improve separation between local post and swarm post handling logic
- Enable federated users to interact with remote swarm posts directly without local caching
2026-01-26 13:04:05 +01:00
Christomatt e98221e81a feat(bots): Consolidate bot posting into autonomous module and improve caching
- Remove scheduled posting logic and consolidate all bot posting into autonomous module
- Simplify cron endpoint to only call processAllAutonomousBots with cleaner response format
- Add background post caching for swarm follow operations via cacheSwarmUserPosts
- Update background scheduler to remove scheduled posting references and streamline logging
- Improve autonomous module documentation to clarify schedule-based posting with optional sources
- Enhance error tracking and reporting across bot task execution
- Reduce code duplication by eliminating separate scheduled/autonomous processing paths
2026-01-26 09:39:12 +01:00
root 387314581f Initial commit 2026-01-26 08:34:48 +01:00