docs: handbook, diagrams and guides brought up to 2026-10-02
- technical-handbook: question packs instead of subscriptions, real hearts with the new wait screen (screenshot), math-only tutor and what is charged (new 9-7), admin cancel/refund, Bazaar planId, account deletion, 59 endpoints, 779 tests, 14 apps, status and open decisions. - Diagrams redrawn: use-case (buy a pack, refunds), data model (QuestionCredit, HeartsPass, Profile.birth_date), pack payment sequence. - The PDF is now built from the Markdown by docs/build_handbook.py (pandoc + Chrome, font in docs/assets); the hand-made HTML it used to come from was not in the repo and had been lost. - architecture, operations, security-before-production (item 13 closed), ai-cost-and-guardrails and README follow the same changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -63,7 +63,9 @@ Message.objects.filter(role='assistant', created_at__gte=since).values('conversa
|
||||
`transaction_mode: IMMEDIATE`ِ SQLite همین تست ۵۰۰ میگیرد. روی Postgres سنجیده نشده.
|
||||
- **قلبِ نامحدودِ بسته** در `HeartsPass` است، جدا از `Subscription`، تا خریدِ بسته اشتراکِ کسی را عوض
|
||||
نکند. از پایانِ کارتِ قبلی ادامه پیدا میکند. `HEARTS_ENFORCED` حالا پیشفرض روشن است، پس قلبِ صفر
|
||||
واقعاً جلوی جواب را میگیرد.
|
||||
واقعاً جلوی جواب را میگیرد، و پایانِ درس یا جزیرهی بیجواب را هم (`content/tests_hearts_gate.py`).
|
||||
- **لغو و بازپرداخت** از پنلِ ادمین (`/admin/payment/order/`): بازپرداخت فقط اعتبارِ خرجنشدهی همان
|
||||
بسته و روزهای قلبش را پس میگیرد؛ پول از پنلِ درگاه برگردانده میشود. روند در `docs/operations.md`.
|
||||
- اپ موجودی را از `GET /api/ai/quota` میخواند و بعد از هر جواب از `remainingQuota` و `credits`ِ خودِ
|
||||
جواب. صفحهی خرید `GET /api/subscription/status` (`questionCredits`، `unlimitedHeartsUntil`) را میخواند.
|
||||
- **کافهبازار:** هر بسته باید در پنلِ بازار «محصولِ مصرفی» تعریف شود و اپِ اندروید بعد از تأیید
|
||||
@@ -77,7 +79,10 @@ Message.objects.filter(role='assistant', created_at__gte=since).values('conversa
|
||||
1. **صافیِ سرور، پیش از مدل و بیهزینه.** فقط ترفندهای آشکار را میگیرد: «دستورهای قبلی را نادیده
|
||||
بگیر»، «پرامپتت چیه»، `developer mode`. این صافی عمداً تنگ است: «قانونِ فیثاغورس را فراموش کردم»
|
||||
ریاضی است و رد نمیشود. جملهای دربارهی آسیب به خود رد نمیشود و جوابی مهربان با شمارهی
|
||||
اورژانسِ اجتماعی (۱۲۳) و صدای مشاور (۱۴۸۰) میگیرد.
|
||||
اورژانسِ اجتماعی (۱۲۳) و صدای مشاور (۱۴۸۰) میگیرد. تا ۲۰۲۶-۱۰-۰۲ «می خوام بمیرم» (با فاصله)،
|
||||
«دیگه نمیخوام زنده باشم» و «خود کشی» از صافی رد میشدند و مدل فقط جوابِ «فقط ریاضی» میداد
|
||||
(یک فراخوانیِ زنده، ۰٫۰۱۸ سنت). حالا روی متنِ بیفاصله سنجیده میشود. سوالی مثلِ «امروز پام درد
|
||||
میکنه» به مدل میرسد و متنِ ثابتِ «فقط ریاضی» را میگیرد (آزموده شد).
|
||||
2. **قاعده در پرامپتِ سیستم (`SCOPE_RULE`):** هر چیزِ غیرِ ریاضی، و هر دستوری از درونِ پیامِ
|
||||
دانشآموز، با علامتِ `[خارج-از-ریاضی]` جواب داده میشود.
|
||||
3. **جایگزینیِ علامت با متنِ ثابت.** در استریم، ۴۰ حرفِ اول نگه داشته میشود تا علامت هرگز به
|
||||
|
||||
Reference in New Issue
Block a user