soulwise_persons
Albumvermeldingen. Indexen op userId, status, deletedAt. Eerst soft-delete; hard-delete van PII na 30 dagen.
Voor ingenieurs, productmanagers, journalisten en partnershipverkenners. De volledige pipeline, vier MongoDB-collecties, EDA-events, V-model-nauwgezetheid, prestatiedoelen, beveiliging en toegankelijkheid – alles op één pagina.
Elke stap heeft een dienst, een contract en een evenement.
Genereer het dagelijkse hoofdstuk voor Sister — of een geplande cron, zoals de terugblik op zondagochtend 9 a.m., of de weer-actualisatie die elke 6 uur wordt uitgevoerd.
De taak belandt in een BullMQ-wachtrij met de naam soulwise-chapter-generation, met een harde 28-seconden time-out. Langlopende taken worden afgebroken en als 'probeer opnieuw' aan de gebruiker gemeld.
De ChapterGenerationService combineert de ⟦CA:KIND:N⟧-factorenprompt — persoonscontext, astrologie, signaal, cadans — tot één enkele invoer. Geen onbewerkte gebruikersgegevens gaan verbatim in de prompt; alles wordt eerst geschoond.
Een AI-provider wordt aangeroepen via het symbooltoken AI_GENERATION_ADAPTER — de provider is verwisselbaar. Het antwoord wordt gecontroleerd op lengte, vorm en veiligheid voordat er verder wordt gegaan.
Er zijn vier stappen: een crisisklassificeerder detecteert crisistaal; een aspect-chip-extractor haalt één tot drie astrologiechips; een anti-claim-filter verwijdert verboden bewoordingen; en de inhoud wordt AES-256 versleuteld met een door het platform beheerde sleutel.
Het artefact wordt naar de juiste MongoDB-collectie geschreven — hoofdstukken, dagboeknotities, resonanties — met userId- en personId-indexen voor snel opzoeken. Eerst soft-delete; hard-delete van PII na 30 dagen.
Een EventEmitter2-gebeurtenis — CHAPTER_COMPLETED, JOURNAL_CREATED — wordt afgevuurd na de database-commit. Het meldingensysteem pakt deze op, maakt een inbox-item aan, en stuurt optioneel een pushmelding (maximaal één per dag, stille uren worden gerespecteerd).
De frontend haalt het artifact op via een geauthentificeerde API-aanroep. De Hub rendert opnieuw met de nieuwe inhoud. Als de gebruiker offline was, dient de cache het beeld van gisteren aan en verschijnt het nieuwe artifact bij herstel van de verbinding.
Geïndexeerd op basis van de vragen die ze beantwoorden.
Albumvermeldingen. Indexen op userId, status, deletedAt. Eerst soft-delete; hard-delete van PII na 30 dagen.
AI-geschreven hoofdstukken, versleutelde inhoud. Indexen op personId, userId, generatedAt. Aspect chips worden opgeslagen als aparte array voor snel filteren.
Gebruiker-geschreven reflecties, versleutelde inhoud. Indexering op userId, personId, createdAt. Tekstgeïndexeerde inhoud voor zoeken. Per-item vlag 'privé — niet voeden aan Luminara'.
4-dimensie scores per band. Unieke index op personId. Wordt herberekend via serviceaanroep na het schrijven van een hoofdstuk of journaalitem.
Strikte regel: gebeurtenissen worden pas afgevuurd na de databasecommit. Kruismodule-afhankelijkheden via Symbol-injectietokens, nooit via forwardRef. Geen directe service-naar-service-import tussen functiemodules.
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — wordt geactiveerd na het versleutelen en opslaan van een hoofdstuk. Notifications-v2 luistert; maakt een inboxitem aan; stuurt optioneel een pushbericht.SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — wordt uitgevoerd nadat een journalitem is versleuteld en opgeslagen. De Resonantiedienst luistert; activeert herberekening.SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — wordt uitgestuurd na wijzigingen in de geboortedata van een persoon. Synastrie-cache wordt ongeldig.SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — volgens het notifications-v2 contract; respecteert pushbudget en rusturen.119 traceerbare vereisten, nul hiaten. Elke vereiste verwijst vooruit naar een testgeval (UTP, ITP, STP, E2E) en achterwaarts naar een gebruikersverhaal. 20 gebruikersverhalen. 15 functionele vereisten. 12 niet-functionele categorieën. 8 globale acceptatiepoorten.
Hoofdstukgeneratie 30 seconden of sneller voor 95% van de verzoeken, gemeten tegen de BullMQ jobduurverdeling. API p99 GET-latentie 500 ms of beter bij 1,000 gelijktijdige gebruikers, gemeten via een k6 loadtest. Frontend TTI 3 seconden of beter op gesimuleerde 4G, gemeten via Lighthouse CI.
AES-256 versleuteling in rust met platform-beheerde sleutels voor dagboek- en hoofdstukteksten. TLS 1.2+ voor transport; HTTP→HTTPS redirect. JWT-toegangstokens met een levensduur van 1 uur, verversingstokens met een levensduur van 30 dagen, rotatie bij verversing. Zachte verwijdering met een venster van 30 dagen voor de harde verwijdering van PII.
Voorkeur voor verminderde animaties wordt wereldwijd gerespecteerd — GSAP-animaties worden doorzichtige vervagingen. VoiceOver- en TalkBack-labels op elk interactief element. Handmatig geverifieerd op iOS en Android voor elke release.
Omdat de upstream-specificatie de functionaliteit herbouwt, en bouwen binnen een bestaande module ofwel de v1-ervaring zou verbreken of een fork-then-merge later zou veroorzaken. Een nieuwe module houdt v1 onaangeroerd, laat v2 zich bewijzen, en schakelt schoon over wanneer het zover is.
De huidige backend van My Zodiac AI draait op MongoDB; overschakelen zou een infrastructuurbeslissing vereisen die losstaat van deze functionaliteit. Het documentmodel past ook goed bij hoofdstukken en journaalnotities — geneste structuur, van variabele lengte, versleuteld als blob.
BullMQ draait op Redis, dat al in de stack zit voor sessies en snelheidslimieten. Geen nieuwe infrastructuur. Ingebouwde herpoging, time-out en observeerbaarheid dekken de behoeften voor hoofdstukgeneratie zonder maatwerk.
Interne repo. De cijfers en contracten op deze pagina parafraseren de upstream V-Model-artefacten. Openbare technische blogposts op de blogcluster van My Zodiac AI (getagd 'cosmic-story-v2') gaan dieper in op specifieke onderdelen van de bouw.
Terwijl Soulwise zijn golven opent, is onze vlaggenschip-astrologie-app al in jouw handen.
Astrologie-inhoud is bedoeld voor reflectie en vermaak. De hier beschreven functies van Cosmic Story v2 zijn in ontwikkeling; beschikbaarheid kan zonder voorafgaande kennisgeving worden gewijzigd.