Skip to content

Changelog


Wave 1 — Alpha A (Launched May 2026)

Wave 1 builds the core social-knowledge platform: identity, interests, content, reputation, and economy.

Identity & Onboarding

  • ✅ Invite-only registration flow (REG-XXXXXX codes)
  • ✅ Invite code reservation (30-min hold) + consumption in single transaction
  • ✅ JWT auth (access + refresh tokens, rotating refresh, 7d/15m expiry)
  • ✅ Password reset via email (1h token, always returns 200 to prevent enumeration)
  • ✅ Account self-deletion (GDPR — anonymises PII in single transaction)
  • ✅ User profile edit (name, username, bio, avatar, city, country)
  • ✅ Personas (max 5 per user, default "Main", accent color tokens)
  • ✅ Invite quota formula: clamp(5 + bonusByRep + bonusByAge, 5, 30) (replaces flat cap)

Interests

  • ✅ 3-level interest catalog (L1 categories, L2 sub-interests, L3 deep-interests)
  • ✅ UserInterest with depth (1..5: Curious→Lifework) + expertise (1..5)
  • ✅ Onboarding drill-down flow (interests-1/2/3 screens)
  • ✅ Interest accent colors (ink | gold | sage | coral | cyan | plum)
  • ✅ Rollup: reputation propagates to parent interests (50%/25%/12%...)

AI Reflection

  • ✅ 5-question reflection session (scripted + Anthropic backends)
  • ✅ Interest mapping from transcript (keyword + LLM confidence scoring)
  • ✅ AssistantSuggestion → apply-suggestions → UserInterest
  • ✅ Letter-rain animated topic selector (Reanimated spring)
  • ✅ AI content enhancement endpoint (POST /ai/enhance-post)
  • ✅ Session history with resume capability

Social

  • ✅ Circles with 4 built-in kinds + custom (general/family/work/inner/custom)
  • ✅ Bidirectional consent: invitation flow (pending→accepted/declined/revoked)
  • ✅ Circle invitations with deep-link notification
  • ✅ Follow graph (unidirectional)
  • ✅ User mute + block
  • ✅ ConnectionIntent (networking/friends/romantic/mentor/mentee/collab)
  • ✅ Discovery candidates ranked by shared interest count
  • ✅ Mentor matching (expertise gap filter)
  • ✅ People directory with isFollowing field

Posts

  • ✅ 7 formats: note, essay, photo, video, quote, thread, repost
  • ✅ 3 visibility levels: public, circles, inner
  • ✅ Content depth 0..5 (surface → thesis)
  • ✅ Primary interest + multi-interest tagging (up to 5)
  • ✅ Tagged comments: reaction/reply/criticism/contribution (differential rep)
  • ✅ Reactions (heart/spark) + bookmarks + views counter
  • ✅ Scheduled publishing (cron-based, publish_at + scheduled_emitted_at)
  • ✅ Soft delete + moderator hide (separate deleted_at / hidden_at)
  • ✅ Post series (ordered episodes with navigation + follow)
  • ✅ Post pinning (max 3 per profile)
  • ✅ Journalism tag (rep ≥ 20 gate)
  • ✅ Co-authorship (max 4, 90% cap, invitation flow)
  • ✅ Post boost (×1.5/24h for 10 mana, ×2.0/48h for 25 mana)

Reputation

  • ✅ Per-interest only (no global karma) — append-only ledger + materialised snapshot
  • ✅ Events: post.contributed (+3), reply.reply (+1), reply.criticism (+2), reply.contribution (+5), reaction.received (+1), bookmark.received (+1), repost.received (+1), invite.used (+3), onboarding.bootstrap (+5 per L1 interest)
  • ✅ Level names: Curious (0) → Reader (10) → Practitioner (30) → Adept (50) → Master (70) → Lifework (90)
  • ✅ Peer voting: ±1 per interest, sybil dampening (weight = min(3, sqrt(rep/10))), 0 below rep 5
  • ✅ Vote weight prevents alt-account manipulation
  • ✅ Reputation appeals (submit, admin resolve with optional delta restoration)
  • ✅ Level-up milestone notifications

Economy

  • ✅ EmojiWallet (50 starter mana, +5/day regen capped at 50)
  • ✅ 8 emotions: love, awe, joy, curiosity, gratitude, insight, calm, courage
  • ✅ 6 tiers: Spark (1), Wave (3), Storm (10), Surge (25), Tempest (50), Nova (100 mana)
  • ✅ Tier rep gates: Storm ≥ 10 rep, Surge ≥ 20, Tempest ≥ 35, Nova ≥ 50 (in post's interest)
  • ✅ Append-only EmojiPayment ledger (reversals = new row)
  • ✅ Co-author mana split at payment time (atomic transaction)
  • ✅ Feature-gated: feature_flags.key = 'emoji-pay'

Notifications

  • ✅ 26 notification kinds (in-app + Expo push + daily email digest)
  • ✅ Centrifugo real-time channel delivery
  • ✅ Per-kind opt-out + per-channel opt-out (push/email/inApp)
  • ✅ 1h rollup collapse ("N people reacted to...")
  • ✅ Milestone notifications: post hit 5/15/50 reactions

Messaging

  • ✅ DM scoped to shared-circle members (privacy gate)
  • ✅ Group conversations (max 50 members)
  • ✅ Message reactions (emoji, 1–8 graphemes)
  • ✅ Read receipts (lastReadAt)
  • ✅ Per-conversation mute

Contribution

  • ✅ Append-only ContributionEvent ledger + snapshot
  • ✅ Score deltas: post_created (+10), reply_created (+3), reaction_given (+1), bookmark_given (+1), emoji_pay_sent (+2)
  • ✅ Invite-tree inheritance: 50%/25%/10% to ancestors

Wiki

  • ✅ WikiEntry versioned per interest
  • ✅ WikiProposal with community voting
  • ✅ Auto-approve at netVotes ≥ 3
  • ✅ Rep gate: min 5 rep in interest (or 20 total) to propose/vote

Access

  • ✅ AccessMatrixService: canVoteWiki, canMentor, canModerate, canProposeGuild, canPostJournalism
  • GET /access/me capabilities endpoint
  • @RequiresRep decorator + ReputationGuard

Admin Panel

  • ✅ Dashboard with platform metrics
  • ✅ User management (ban/unban, role assignment)
  • ✅ Invite code management
  • ✅ Content moderation (hide/unhide posts + replies)
  • ✅ Report queue
  • ✅ Reputation management + peer vote moderation + appeals
  • ✅ Economy wallets + payment ledger
  • ✅ Audit log (append-only)
  • ✅ Feature flags UI
  • ✅ Broadcast notifications
  • ✅ Wiki proposals moderation
  • ✅ Interest catalog management
  • ✅ Global search

Security

  • ✅ CORS: never reflect with credentials
  • ✅ Throttling per-route (brute-force, enumeration prevention)
  • ✅ Refresh tokens rejected at access guard
  • ✅ Email stripped from public post/circle serialisers
  • ✅ SSRF blocked on link-preview
  • ✅ Dev media sink gated to NODE_ENV !== 'production'

Wave 2 — Planned

  • Federation (ActivityPub bridge, acct:[email protected] identifiers)
  • Personas UI (picker in composer, per-persona follower graph)
  • Guild system (canProposeGuild enabled, group knowledge spaces)
  • Per-bounded-context Postgres schemas (identity/interests/...)
  • pgvector semantic search (interest embeddings, post similarity)
  • Centrifugo real-time messaging delivery (replaces polling)
  • ActivityPub inbox/outbox for interoperability
  • Geo-aware discovery (map view, city-level matching)
  • Extended interest catalog (depth-4 and depth-5 nodes)
  • Automated moderation (ML-assisted report triage)

Regulus — invite-only social-knowledge platform