soulwise_persons
Záznamy v albume. Indexy na userId, status, deletedAt. Najprv mäkké vymazanie; tvrdé vymazanie osobných údajov po 30 dňoch.
Pre inžinierov, produktových manažérov, novinárov a partnerských scoutov. Celý pipeline, štyri kolekcie MongoDB, EDA udalosti, dôslednosť V‑modelu, výkonnostné ciele, bezpečnosť a prístupnosť — všetko na jednej stránke.
Každý krok má službu, zmluvu a udalosť.
Akcia používateľa — „vygenerovať dnešnú kapitolu pre Sister“ — alebo naplánovaný cron, napríklad nedeľný prehľad o 9:00 ráno, alebo aktualizácia počasia každých 6 hodín.
Úloha sa umiestni do fronty BullMQ s názvom soulwise-chapter-generation, s pevne stanoveným 28‑sekundovým časovým limitom. Dlho bežiace úlohy sú ukončené a používateľovi sa zobrazí správa „skúste to znova“.
Služba ChapterGenerationService skladá 4‑faktorový prompt — kontext osoby, astrológiu, signál a kadenciu — do 1 vstupu. Do promptu sa nedostávajú žiadne nespracované osobné údaje používateľa doslovne; všetko sa najprv vyčistí.
Poskytovateľ AI je volaný pomocou symbolu AI_GENERATION_ADAPTER — poskytovateľ je vymeniteľný. Odpoveď sa pred pokračovaním kontroluje z hľadiska dĺžky, štruktúry a bezpečnosti.
Dejú sa štyri veci: klasifikátor kríz kontroluje krízový jazyk; extraktor aspektových čipov vyberie jeden až tri astrologické čipy; filter proti tvrdeniam odstráni zakázané formulácie; telo sa zašifruje algoritmom AES-256 pomocou kľúča spravovaného platformou.
Artefakt sa zapíše do príslušnej kolekcie v MongoDB — kapitoly, denníkové záznamy, rezonancie — s indexmi userId a personId pre rýchle vyhľadávanie. Najprv mäkké vymazanie; tvrdé vymazanie osobných údajov po 30 dňoch.
Udalosť EventEmitter2 — CHAPTER_COMPLETED, JOURNAL_CREATED — sa spustí po potvrdení v databáze. Modul upozornení ju zachytí, vytvorí položku v doručenej pošte a voliteľne odošle push (obmedzené na jeden za deň, rešpektuje tiché hodiny).
Frontend načíta artefakt prostredníctvom autentifikovaného API volania. Hub sa prerenderuje s novým obsahom. Ak bol používateľ offline, cache zobrazí včerajší pohľad a nový artefakt sa objaví po opätovnom pripojení.
Indexované pre dotazy, na ktoré každá z nich odpovedá.
Záznamy v albume. Indexy na userId, status, deletedAt. Najprv mäkké vymazanie; tvrdé vymazanie osobných údajov po 30 dňoch.
AI‑písané kapitoly, zašifrované telo. Indexy na personId, userId, generatedAt. Aspektové čipy uložené ako samostatné pole pre rýchle filtrovanie.
Používateľom napísané reflexie, zašifrované telo. Indexy na userId, personId, createdAt. Textovo indexované telo pre vyhľadávanie. Príznak „súkromné — nezobraziť v Luminare“ pre každú položku.
Štvorrozmerné skóre pre každé puto. Jedinečný index na personId. Prepočítané cez volanie služby po zápise kapitoly alebo denníka.
Prísne pravidlo: udalosti sa spúšťajú len po commite do databázy. Medzimodulové závislosti prostredníctvom tokenov Symbol injection, nikdy prostredníctvom forwardRef. Žiadne priame importy služba‑na‑službu medzi feature modulmi.
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — spustená po zašifrovaní a uložení kapitoly. Notifications-v2 počúva; vytvára položku v schránke; voliteľne posiela push notifikáciu.SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — spustený po zašifrovaní a uložení denníkového záznamu. Služba rezonancie načúva; spúšťa prepočet.SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — spustený po zmene dát o narodení osoby. Vyprší platnosť cache synastrie.SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — podľa zmluvy notifications-v2; rešpektuje rozpočet push oznámení a tiché hodiny.119 sledovateľných požiadaviek, nula medzier. Každá požiadavka sa dopredu mapuje na testovací prípad (UTP, ITP, STP, E2E) a spätne na používateľský príbeh. 20 používateľských príbehov. 15 funkčných požiadaviek. 12 nefunkčných kategórií. 8 globálnych akceptačných brán.
Generovanie kapitoly 30 sekúnd alebo lepšie pre 95 % požiadaviek, merané podľa distribúcie trvania úloh v BullMQ. API p99 latencia GET 500 ms alebo lepšie pri 1 000 súbežných používateľoch, merané záťažovým testom k6. Frontend TTI 3 sekundy alebo lepšie na simulovanej 4G sieti, merané cez Lighthouse CI.
Šifrovanie AES‑256 pri uchovávaní s kľúčmi spravovanými platformou pre telá denníka a kapitoly. TLS 1.2+ počas prenosu; presmerovanie HTTP→HTTPS. JWT prístupové tokeny so životnosťou 1 hodina, obnovovacie tokeny so životnosťou 30 dní, rotácia pri obnove. Mäkké odstránenie s 30‑denným oknom pred tvrdým odstránením PII.
prefers-reduced-motion je globálne rešpektovaný — animácie GSAP sa zmenia len na prechody založené na priehľadnosti (opacity‑only). Popisky VoiceOver a TalkBack na každom interaktívnom prvku. Manuálne overené na iOS a Androide pred každým vydaním.
Pretože upstream špecifikácia funkciu prestavuje a jej prestavba vnútri existujúceho modulu by buď narušila zážitok z v1, alebo by si neskôr vyžiadala vetvenie a následné zlúčenie. Nový modul ponecháva v1 nedotknutý, umožňuje overiť v2 a po pripravenosti migruje čisto.
Existujúci backend My Zodiac AI beží na MongoDB; prepnutie by znamenalo rozhodnutie o infraštruktúre, ktoré s touto funkciou nesúvisí. Dokumentový model sa tiež dobre hodí pre kapitoly a denníkové záznamy — vnorené, s premenlivou dĺžkou, šifrované ako blob.
BullMQ beží na Redise, ktorý je už v stacku pre session a rate-limit. Žiadna nová infraštruktúra. Vstavané opakované pokusy, časový limit a pozorovateľnosť pokrývajú potreby generovania kapitol bez vlastnej inštalatérskej práce.
Interný repozitár. Čísla a zmluvy na tejto stránke parafrázujú artefakty upstream V‑Modelu. Verejne prístupné inžinierske blogové príspevky na blogu My Zodiac AI (označené 'cosmic-story-v2') sa podrobnejšie venujú konkrétnym častiam zostavy.
Kým Soulwise otvára svoje vlny, naša vlajková astrologická aplikácia je už v tvojich rukách.
Astrologický obsah je určený na reflexiu a zábavu. Funkcie Cosmic Story v2 popísané tu sú vo vývoji; dostupnosť sa môže zmeniť bez predchádzajúceho upozornenia.