soulwise_persons
ធាតុ Album។ Index លើ userId, status, deletedAt។ Soft-delete មុនគេ; ការ hard-delete PII នៅ 30 ថ្ងៃ។
សម្រាប់វិស្វករ PM អ្នកសារព័ត៌មាន និងអ្នកស្វែងរកភាពជាដៃគូ។ pipeline ពេញលេញ MongoDB collection ទាំងបួន ព្រឹត្តិការណ៍ EDA ភាពម៉ឺងម៉ាត់នៃ V-Model គោលដៅសមត្ថភាព សុវត្ថិភាព និងភាពងាយស្រួលប្រើ — ទាំងអស់នៅលើទំព័រតែមួយ។
ជំហាននីមួយៗមាន service មួយ contract មួយ និង event មួយ។
សកម្មភាពរបស់អ្នកប្រើ — 'បង្កើតជំពូកថ្ងៃនេះសម្រាប់បងស្រី' — ឬ cron ដែលបានកំណត់ពេល ដូចជាការសង្ខេបនៅម៉ោង 9 ព្រឹកថ្ងៃអាទិត្យ ឬការ refresh អាកាសធាតុរៀងរាល់ 6 ម៉ោងម្តង។
ការងារនេះធ្លាក់ចូលក្នុង queue BullMQ ដែលមានឈ្មោះ soulwise-chapter-generation ដោយមាន timeout រឹងត្រឹម 28 វិនាទី។ ការងារដែលដំណើរការយូរនឹងត្រូវបញ្ឈប់ ហើយរាយការណ៍ទៅអ្នកប្រើថា 'សូមព្យាយាមម្តងទៀត'។
ChapterGenerationService ប្រមូលផ្តុំ prompt ដែលមានកត្តាបួន — បរិបទមនុស្ស ហោរាសាស្ត្រ សញ្ញា និងចង្វាក់ — ទៅជា input តែមួយ។ គ្មានទិន្នន័យ PII ដើមរបស់អ្នកប្រើចូលក្នុង prompt ដោយផ្ទាល់ឡើយ គ្រប់យ៉ាងត្រូវបានសម្អាតជាមុនសិន។
ក្រុមហ៊ុនផ្តល់ AI ត្រូវបានហៅតាមរយៈ symbol token AI_GENERATION_ADAPTER — ក្រុមហ៊ុនផ្តល់នេះអាចប្តូរបាន។ ការឆ្លើយតបត្រូវបានពិនិត្យមើលលើប្រវែង រូបរាង និងសុវត្ថិភាព មុនពេលបន្ត។
មានរឿងបួនកើតឡើង៖ ឧបករណ៍ចាត់ថ្នាក់វិបត្តិពិនិត្យរកភាសានៃវិបត្តិ; ឧបករណ៍ស្រង់ aspect-chip ទាញ chip ហោរាសាស្ត្រមួយទៅបី; តម្រងប្រឆាំងការអះអាងលុបការសរសេរដែលហាមឃាត់; តួអត្ថបទត្រូវបានអ៊ិនគ្រីបជា AES-256 ដោយប្រើសោដែលគ្រប់គ្រងដោយ platform។
artifact ត្រូវបានសរសេរទៅ collection MongoDB ដែលសមរម្យ — chapters, journal entries, resonances — ជាមួយ index userId និង personId សម្រាប់ការស្វែងរកលឿន។ លុបទន់ជាមុនសិន; លុបរឹងនៃ PII នៅ 30 ថ្ងៃ។
ព្រឹត្តិការណ៍ EventEmitter2 — CHAPTER_COMPLETED, JOURNAL_CREATED — បាញ់ចេញបន្ទាប់ពីការ commit ទិន្នន័យ។ module ជូនដំណឹងទទួលយកវា បង្កើតធាតុ inbox មួយ និងអាចជ្រើសរើសផ្ញើ push (កំណត់ត្រឹមមួយដងក្នុងមួយថ្ងៃ ហើយគោរពម៉ោងស្ងាត់)។
ផ្នែកខាងមុខ (frontend) ទាញ artifact តាមរយៈការហៅ API ដែលបានផ្ទៀងផ្ទាត់។ Hub បង្ហាញឡើងវិញជាមួយខ្លឹមសារថ្មី។ បើអ្នកប្រើនៅ offline, cache បម្រើទិដ្ឋភាពនៃម្សិលមិញ ហើយ artifact ថ្មីលេចឡើងពេលភ្ជាប់ឡើងវិញ។
បង្កើត index សម្រាប់ query ដែលនីមួយៗឆ្លើយតប។
ធាតុ Album។ Index លើ userId, status, deletedAt។ Soft-delete មុនគេ; ការ hard-delete PII នៅ 30 ថ្ងៃ។
ជំពូកដែលសរសេរដោយ AI ខ្លឹមសារត្រូវបានអ៊ីនគ្រីប។ Index លើ personId, userId, generatedAt។ Aspect chips ត្រូវបានរក្សាទុកជា array ដាច់ដោយឡែក សម្រាប់ការ filter លឿន។
ការឆ្លុះបញ្ចាំងដែលសរសេរដោយអ្នកប្រើ ខ្លឹមសារត្រូវបានអ៊ីនគ្រីប។ Index លើ userId, personId, createdAt។ ខ្លឹមសារដែលមាន text-index សម្រាប់ការស្វែងរក។ មាន flag 'private — do not feed to Luminara' សម្រាប់ធាតុនីមួយៗ។
ពិន្ទុបួនវិមាត្រសម្រាប់ទំនាក់ទំនងនីមួយៗ។ Unique index លើ personId។ គណនាឡើងវិញតាមរយៈការហៅ service បន្ទាប់ពីការសរសេរជំពូក ឬ journal។
ច្បាប់តឹងរ៉ឹង៖ ព្រឹត្តិការណ៍នឹងបញ្ចេញតែបន្ទាប់ពីការ commit ទៅមូលដ្ឋានទិន្នន័យប៉ុណ្ណោះ។ ភាពអាស្រ័យឆ្លងម៉ូឌុលត្រូវធ្វើតាមរយៈ Symbol injection tokens មិនមែនតាមរយៈ forwardRef ឡើយ។ មិនត្រូវ import សេវាដោយផ្ទាល់ពីសេវាមួយទៅសេវាមួយរវាង feature modules ឡើយ។
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — បញ្ចេញបន្ទាប់ពីជំពូកមួយត្រូវបានអ៊ិនគ្រីប និងរក្សាទុក។ Notifications-v2 ស្តាប់ការនេះ; បង្កើតធាតុ inbox; ផ្ញើ push តាមជម្រើស។SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — បញ្ចេញបន្ទាប់ពីធាតុកំណត់ហេតុមួយត្រូវបានអ៊ិនគ្រីប និងរក្សាទុក។ សេវា Resonance ស្តាប់ការនេះ; កេះការគណនាឡើងវិញ។SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — បញ្ចេញបន្ទាប់ពីទិន្នន័យកំណើតរបស់បុគ្គលផ្លាស់ប្តូរ។ cache នៃធ្នាប់ភពនឹងលុបចោល។SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — តាមកិច្ចសន្យារបស់ notifications-v2; គោរពតាមថវិកា push និងម៉ោងស្ងាត់។តម្រូវការដែលអាចតាមដានបាន 119 ដោយគ្មានចន្លោះខ្វះ។ តម្រូវការនីមួយៗត្រូវភ្ជាប់ទៅមុខទៅករណីសាកល្បង (UTP, ITP, STP, E2E) និងភ្ជាប់ថយក្រោយទៅ user story។ 20 user stories។ តម្រូវការមុខងារ 15។ ប្រភេទមិនមែនមុខងារ 12។ ច្រកទទួលយកសកល 8។
ការបង្កើតជំពូក 30 វិនាទី ឬលឿនជាងនេះ សម្រាប់ 95% នៃសំណើ វាស់ធៀបនឹងការបែងចែករយៈពេលការងារ BullMQ។ ភាពយឺត API p99 GET 500 ms ឬល្អជាងនេះ ក្នុងពេលមានអ្នកប្រើ 1,000 នាក់ដំណាលគ្នា វាស់តាមរយៈការសាកល្បងបន្ទុក k6។ Frontend TTI 3 វិនាទី ឬល្អជាងនេះ លើ 4G ក្លែងធ្វើ វាស់តាមរយៈ Lighthouse CI។
ការអ៊ិនគ្រីប AES-256 ពេលផ្ទុក ដោយប្រើកូនសោដែលគ្រប់គ្រងដោយ platform សម្រាប់ខ្លឹមសារកំណត់ហេតុ និងជំពូក។ TLS 1.2+ ពេលបញ្ជូន; បញ្ជូនបន្ត HTTP→HTTPS។ JWT access tokens មានអាយុកាល 1 ម៉ោង, refresh tokens មានអាយុកាល 30 ថ្ងៃ, បង្វិលនៅពេល refresh។ Soft-delete ដោយមានចន្លោះ 30 ថ្ងៃ មុនពេល hard-delete ទិន្នន័យ PII។
prefers-reduced-motion ត្រូវបានគោរពនៅទូទាំងប្រព័ន្ធ — ចលនា GSAP ក្លាយជាការលេចបន្ថែម-ថយតែ opacity ប៉ុណ្ណោះ។ ស្លាក VoiceOver និង TalkBack មាននៅលើគ្រប់ធាតុអន្តរកម្មទាំងអស់។ បានផ្ទៀងផ្ទាត់ដោយដៃនៅលើ iOS និង Android មុនពេលចេញផ្សាយនីមួយៗ។
ព្រោះថា spec ខាងលើ (upstream) កសាងមុខងារនេះឡើងវិញ ហើយការកសាងឡើងវិញនៅខាងក្នុង module ដែលមានស្រាប់ នឹងបំផ្លាញបទពិសោធន៍ v1 ឬត្រូវ fork រួចបញ្ចូលគ្នាវិញនៅពេលក្រោយ។ Module ថ្មីមួយរក្សា v1 ឱ្យនៅដដែល អនុញ្ញាតឱ្យ v2 បង្ហាញលទ្ធផល ហើយផ្លាស់ប្ដូរបានស្អាតស្អំនៅពេលត្រៀមរួច។
Backend របស់ My Zodiac AI ដែលមានស្រាប់ ដំណើរការលើ MongoDB; ការប្ដូរនឹងមានន័យថាជាការសម្រេចចិត្តផ្នែកហេដ្ឋារចនាសម្ព័ន្ធ ដែលគ្មានទាក់ទងនឹងមុខងារនេះ។ ម៉ូដែលឯកសារ (document model) ក៏សមនឹងជំពូកនិងធាតុកំណត់ហេតុ (journal entries) បានល្អដែរ — ដាក់ត្រួតគ្នា ប្រវែងខុសៗគ្នា និងអ៊ិនគ្រីបជា blob។
BullMQ ដំណើរការលើ Redis ដែលមាននៅក្នុង stack រួចស្រាប់សម្រាប់ session និង rate-limit។ គ្មានហេដ្ឋារចនាសម្ព័ន្ធថ្មីទេ។ មុខងារ retry, timeout និង observability ដែលមានស្រាប់ បំពេញតម្រូវការនៃការបង្កើតជំពូក ដោយមិនចាំបាច់រៀបចំបន្ថែមផ្ទាល់ខ្លួនឡើយ។
Repo ខាងក្នុង។ ចំនួននិងកិច្ចសន្យានៅលើទំព័រនេះ បកស្រាយឡើងវិញនូវ V-Model artifacts ខាងលើ។ ការប្រកាសប្លុកវិស្វកម្មសម្រាប់សាធារណជននៅលើ blog cluster របស់ My Zodiac AI (ដាក់ស្លាក 'cosmic-story-v2') ស៊ីជម្រៅទៅលើផ្នែកជាក់លាក់នៃការកសាង។
ខណៈ Soulwise កំពុងបើករលកថ្មីៗ កម្មវិធីហោរាសាស្ត្រឆ្នើមរបស់យើងបាននៅក្នុងដៃអ្នករួចហើយ។
ខ្លឹមសារហោរាសាស្ត្រគឺសម្រាប់ការពិចារណានិងការកម្សាន្ត។ មុខងារ Cosmic Story v2 ដែលបានរៀបរាប់នៅទីនេះកំពុងស្ថិតក្នុងការអភិវឌ្ឍ។ ភាពអាចប្រើបានអាចផ្លាស់ប្តូរដោយគ្មានការជូនដំណឹងជាមុន។