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 — Complete (shipped)

The full Wave 2 set is live: AI mood filter + filter presets (capture/restore), filter transparency ("why you see this"), persona switcher in composer + tappable reputation card, mana boost amplifying For-you reach, contribution score (separate ledger from reputation), multi-interest tagging (PostInterest, ≤5), AI content enhancement in the composer, and Wiki MVP (versioned entries + community proposals).


Shipped since Wave 1 (newest first)

2026-06-13

  • ✅ Docs refresh: landing/overview + new module pages (groups, guilds, federation, videos, content-contexts, media, invite-tree)

2026-06-10

  • ✅ Mobile native build 1.3.0 → 1.4.0: expo-image with disk+memory cache (kills avatar re-fetch flicker), full a11y sweep (217 props across 62 screens), ADR-009 draft (legalize Postgres FKs to User as the single cross-context exception)
  • ✅ Mobile audit fixes: dark ErrorBoundary, keyboard insets, themed palettes
  • Deep audit (2026-06-08) backend fixes: reputation leaderboard now JwtAuthGuard (was anonymous), guild-treasury FOR UPDATE lock (TOCTOU overdraw), /identity/refresh @Throttle cap, ReputationSnapshot(interestId, value) covering index, groups standings via groupBy (was in-memory), messaging listMine() bounded with take, dev media PUT validates UUID basename, invite-tree ISO createdAt

2026-06-07 — 06-08

  • Circle-invite visibility on both sides: recipient-side inline Confirm / Decline (notification payload.invitationId) + profile banner; sender-side pending signal, "Invitations sent", "Circles you're in" (GET /circles/me/pending/:userId, GET /circles/memberships/me)
  • ✅ Self-quote and self-repost rejected; quote sheet lifted above keyboard; active-filter signal
  • Dark mode + dark-theme legibility pass (accent chips, theme-aware wordmark, hero glow, frosted dock, floating module row, feed card)
  • ✅ Unified MediaCard (video/audio share PostCard chrome), modern design foundation, shared EmptyState + Skeleton
  • ✅ Discovery: video engagement block in the unified stream (reactions/replies/shares + viewer state)
  • Polls (single-choice on posts), GDPR data export (right-to-access), presence (online / last-seen), 30-day creator trend chart, screen-reader labels
  • ✅ Admin: in-app moderation for groups & guilds + full member / request / proposal management (kick, expel, approve/reject applications, force-close proposals)
  • ✅ Education: true-3D knowledge map, flashcard quiz/duel mode

2026-06-04 — 06-06

  • Federation v1–v3 (ActivityPub bridge, ADR-008): read-side, write-side (inbox, signatures, delivery), inbound follow + remote post reads
  • Semantic search & connection recs: pgvector embeddings (text-embedding-3-small), 40 % semantic feed re-rank (graceful no-op without key), centroid-ANN "people you may know"
  • ✅ Wave 3-6 content contexts: events, debates, problems, courses, projects, marketplace (offerings + mana escrow), videos (#VideoVisit social layer), audio posts — all in the unified Discover stream
  • Guild treasuries + admin content-oversight surface (8 UGC kinds), unified create menu, interest content-type tabs
  • ✅ Feed: AI mood filter, attention nudge, filter transparency, mana-boost reach, scrollable Discover tabs
  • ✅ Video pipeline: custom in-app player, on-device compression, viewability-managed playback, 200 MB cap

2026-05-29 — 06-03

  • ✅ Guilds Inc1–3 (schema, service, governance, rep-weighted voting) + Groups Inc1–3 (invite flow, ownership transfer, rep-weighted standing)
  • ✅ Education E1–E5 (courses, lessons, 3D map, wiki bridge, flashcards), #Talent + #Attention boards, #Art profile emblems
  • ✅ Admin: Groups + Guilds moderation tabs, user personas on detail page
  • ✅ Marketing landing site + privacy page at rgls.uk

Regulus — invite-only social-knowledge platform