soulwise_persons
Καταχωρίσεις άλμπουμ. Ευρετήρια στα userId, status, deletedAt. Πρώτα ήπια διαγραφή· οριστική διαγραφή των PII στις 30 ημέρες.
Για μηχανικούς, διαχειριστές προϊόντων, δημοσιογράφους και ερευνητές συνεργασιών. Η πλήρης αλυσίδα, 4 συλλογές MongoDB, γεγονότα EDA, αυστηρότητα V‑Model, στόχοι απόδοσης, ασφάλεια και προσβασιμότητα — όλα σε μία σελίδα.
Κάθε βήμα έχει μια υπηρεσία, ένα συμβόλαιο και ένα γεγονός.
Μια ενέργεια χρήστη — 'δημιουργία του σημερινού κεφαλαίου για Sister' — ή ένα προγραμματισμένο cron, όπως η ανασκόπηση της Κυριακής 9 π.μ., ή η ενημέρωση του καιρού κάθε 6 ώρες.
Η εργασία προστίθεται σε μια ουρά BullMQ με όνομα soulwise-chapter-generation, με σκληρό χρονικό όριο 28 δευτερολέπτων. Οι εργασίες που διαρκούν πολύ τερματίζονται και εμφανίζονται στον χρήστη ως “try again”.
Το ChapterGenerationService συναρμολογεί το prompt των τεσσάρων παραγόντων — προσωπικό πλαίσιο, αστρολογία, σήμα, ρυθμός — σε μία ενιαία είσοδο. Κανένα ακατέργαστο προσωπικό δεδομένο (PII) του χρήστη δεν εισέρχεται αυτούσιο στο prompt· τα πάντα καθαρίζονται πρώτα.
Πάροχος AI καλείται μέσω του συμβόλου AI_GENERATION_ADAPTER — ο πάροχος είναι εναλλάξιμος. Η απάντηση ελέγχεται για μήκος, μορφή και ασφάλεια πριν συνεχιστεί.
Τέσσερα πράγματα συμβαίνουν: ένας ταξινομητής κρίσεων ελέγχει για γλώσσα κρίσης· ένας εξαγωγέας chip πτυχών εξάγει ένα έως τρία chip αστρολογίας· ένα φίλτρο anti-claim αφαιρεί απαγορευμένες φράσεις· το σώμα κρυπτογραφείται με AES-256 χρησιμοποιώντας κλειδί που διαχειρίζεται η πλατφόρμα.
Το αντικείμενο εγγράφεται στην κατάλληλη συλλογή MongoDB — κεφάλαια, καταχωρίσεις ημερολογίου, συντονισμοί — με δείκτες userId και personId για γρήγορη αναζήτηση. Πρώτα ήπια διαγραφή· οριστική διαγραφή των PII στις 30 ημέρες.
Ένα συμβάν EventEmitter2 — CHAPTER_COMPLETED, JOURNAL_CREATED — ενεργοποιείται μετά την επιβεβαίωση στη βάση δεδομένων. Το module ειδοποιήσεων το συλλαμβάνει, δημιουργεί ένα στοιχείο εισερχομένων και προαιρετικά στέλνει μια ειδοποίηση push (με όριο μία την ημέρα, τηρώντας τις ώρες σιωπής).
Το frontend ανακτά το artifact μέσω μιας αυθεντικοποιημένης κλήσης API. Το Hub επανασχεδιάζεται με το νέο περιεχόμενο. Αν ο χρήστης ήταν εκτός σύνδεσης, η cache εμφανίζει την προβολή της χθεσινής ημέρας και το νέο artifact εμφανίζεται κατά την επανασύνδεση.
Ευρετηριασμένο για τα ερωτήματα που απαντά κάθε ένα.
Καταχωρίσεις άλμπουμ. Ευρετήρια στα userId, status, deletedAt. Πρώτα ήπια διαγραφή· οριστική διαγραφή των PII στις 30 ημέρες.
Κεφάλαια γραμμένα από AI, κρυπτογραφημένο σώμα. Ευρετήρια στο personId, userId, generatedAt. Τα chips των πτυχών αποθηκεύονται σε ξεχωριστό πίνακα για γρήγορο φιλτράρισμα.
Στοχασμοί που γράφει ο χρήστης, κρυπτογραφημένο σώμα. Δείκτες στο userId, personId, createdAt. Κείμενο‑δείκτης σώμα για αναζήτηση. Σημαία ανά καταχώρηση «private — do not feed to Luminara».
Βαθμολογίες τεσσάρων διαστάσεων ανά δεσμό. Μοναδικό ευρετήριο στο personId. Επαναϋπολογίζεται μέσω κλήσης υπηρεσίας μετά τη συγγραφή κεφαλαίου ή ημερολογίου.
Αυστηρός κανόνας: τα γεγονότα ενεργοποιούνται μόνο μετά την επιβεβαίωση της βάσης δεδομένων. Εξαρτήσεις μεταξύ μονάδων μέσω διακριτικών ένεσης Symbol, ποτέ μέσω forwardRef. Καμία άμεση εισαγωγή υπηρεσίας-σε-υπηρεσία μεταξύ των μονάδων χαρακτηριστικών.
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — ενεργοποιείται μετά την κρυπτογράφηση και αποθήκευση ενός κεφαλαίου. Το Notifications-v2 ακούει· δημιουργεί στοιχείο εισερχόμενων· προαιρετικά στέλνει push.SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — ενεργοποιείται μετά την κρυπτογράφηση και αποθήκευση μιας καταχώρισης ημερολογίου. Η υπηρεσία Resonance ακούει· ενεργοποιεί επανυπολογισμό.SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — ενεργοποιείται μετά την αλλαγή των δεδομένων γέννησης ενός ατόμου. Η προσωρινή μνήμη της συναστρίας ακυρώνεται.SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — σύμφωνα με σύμβαση notifications-v2· σέβεται τον προϋπολογισμό push και τις ώρες ησυχίας.119 ιχνηλάσιμες απαιτήσεις, μηδέν κενά. Κάθε απαίτηση συνδέεται προς τα εμπρός με μια περίπτωση δοκιμής (UTP, ITP, STP, E2E) και προς τα πίσω με μια ιστορία χρήστη. 20 ιστορίες χρήστη. 15 λειτουργικές απαιτήσεις. 12 μη-λειτουργικές κατηγορίες. 8 παγκόσμια σημεία αποδοχής.
Δημιουργία κεφαλαίου 30 δευτερόλεπτα ή καλύτερα για 95% των αιτήσεων, μετρημένο σε σχέση με την κατανομή διάρκειας εργασιών BullMQ. API p99 GET καθυστέρηση 500 ms ή καλύτερα σε 1.000 ταυτόχρονους χρήστες, μετρημένο μέσω δοκιμής φόρτου k6. Frontend TTI 3 δευτερόλεπτα ή καλύτερα σε προσομοιωμένο 4G, μετρημένο μέσω Lighthouse CI.
Κρυπτογράφηση AES-256 σε κατάσταση ηρεμίας με κλειδιά που διαχειρίζεται η πλατφόρμα για τα σώματα των ημερολογίων και κεφαλαίων. TLS 1.2+ κατά τη μετάβαση· ανακατεύθυνση HTTP→HTTPS. Διακριτικά πρόσβασης JWT με διάρκεια ζωής 1 ώρας, διακριτικά ανανέωσης με διάρκεια 30 ημερών, περιστροφή κατά την ανανέωση. Μαλακή διαγραφή με παράθυρο 30 ημερών πριν τη μόνιμη διαγραφή των προσωπικών δεδομένων.
προτιμά μειωμένη κίνηση, παγκοσμίως σεβαστό — οι κινήσεις GSAP γίνονται μόνο σε διαφάνεια. Ετικέτες VoiceOver και TalkBack σε κάθε διαδραστικό στοιχείο. Επαληθεύεται χειροκίνητα σε iOS και Android πριν από κάθε έκδοση.
Επειδή η ανώτερη προδιαγραφή ξαναδημιουργεί τη λειτουργία, και η επαναδημιουργία μέσα σε υπάρχουσα μονάδα θα έσπαγε την εμπειρία v1 ή θα απαιτούσε fork‑then‑merge αργότερα. Μια νέα μονάδα διατηρεί το v1 αμετάβλητο, αφήνει το v2 να αποδείξει την αξία του και μεταβαίνει καθαρά όταν είναι έτοιμο.
Το υπάρχον backend του My Zodiac AI είναι σε MongoDB· η αλλαγή θα σήμαινε μια απόφαση υποδομής που δεν σχετίζεται με αυτή τη λειτουργία. Το μοντέλο εγγράφων ταιριάζει επίσης καλά με κεφάλαια και καταχωρήσεις ημερολογίου — ένθετο, μεταβλητού μήκους, κρυπτογραφημένο ως blob.
Το BullMQ λειτουργεί σε Redis, το οποίο είναι ήδη στο σύστημα για συνεδρίες και περιορισμό ρυθμού. Δεν απαιτείται νέα υποδομή. Η ενσωματωμένη επανάληψη, το χρονικό όριο και η παρατηρησιμότητα καλύπτουν τις ανάγκες δημιουργίας κεφαλαίων χωρίς προσαρμοσμένο προγραμματισμό.
Εσωτερικό αποθετήριο. Οι αριθμοί και τα συμβόλαια σε αυτή τη σελίδα παραφράζουν τα αντικείμενα του ανώτερου μοντέλου V. Δημοσιεύσεις τεχνικού blog που προορίζονται για το κοινό στο σύμπλεγμα του blog του My Zodiac AI (με ετικέτα 'cosmic-story-v2') εμβαθύνουν σε συγκεκριμένα μέρη της κατασκευής.
Ενώ το Soulwise ανοίγει τα κύματά του, η ναυαρχίδα εφαρμογή αστρολογίας μας είναι ήδη στα χέρια σας.
Το περιεχόμενο αστρολογίας είναι για σκέψη και ψυχαγωγία. Οι λειτουργίες του Cosmic Story v2 που περιγράφονται εδώ βρίσκονται σε εξέλιξη και η διαθεσιμότητά τους μπορεί να αλλάξει χωρίς προειδοποίηση.