Add read-only Noya admin panel with assignments and UX polish.
Ship admin auth, user overview, assessments, chats, assignment filters/export, security hardening, and a separate desktop admin shell with clearer assessment answers. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -102,7 +102,7 @@ const checks = {
|
||||
unknownAnswerExample: prompt.includes('نمیدانم'),
|
||||
|
||||
// Teaching style — section-end questions
|
||||
sectionEndQuestion: prompt.includes('در مورد مطالبی که تا اینجا گفتیم، سؤالی دارید؟'),
|
||||
sectionEndQuestion: prompt.includes('تا اینجا چیزی که گفتم، سؤالی داری؟'),
|
||||
sectionEndNaturalBoundaries: prompt.includes('natural section boundaries'),
|
||||
|
||||
// Session 1 — no previous session
|
||||
@@ -132,9 +132,11 @@ const checks = {
|
||||
|
||||
// Teaching style — message formatting
|
||||
messageFormatting: prompt.includes('MESSAGE FORMATTING'),
|
||||
chatgptLayout: prompt.includes('Write like ChatGPT'),
|
||||
shortParagraphs: prompt.includes('1–2 short sentences per paragraph'),
|
||||
occasionalEmoji: prompt.includes('EMOJI / STICKER-LIKE EXPRESSIONS'),
|
||||
emojiHardLimit: prompt.includes('0–1 emoji per message'),
|
||||
numberedListFormatting: prompt.includes('numbered list'),
|
||||
numberedListFormatting: prompt.includes('numbered list') || prompt.includes('numbered ۱'),
|
||||
boldKeyPhrases: prompt.includes('double asterisks'),
|
||||
headingOwnLine: prompt.includes('OWN separate line'),
|
||||
headingNumberedFirstTime: prompt.includes('FIRST time you introduce a section title'),
|
||||
@@ -142,7 +144,7 @@ const checks = {
|
||||
noVisibleHash: prompt.includes('NEVER show # ## ###'),
|
||||
noVisibleAt: prompt.includes('NEVER show @ mentions'),
|
||||
standardPersianPunctuation: prompt.includes('STANDARD PERSIAN PUNCTUATION'),
|
||||
justifyFriendlyParagraphs: prompt.includes('justified'),
|
||||
justifyFriendlyParagraphs: prompt.includes('justified') || prompt.includes('Write like ChatGPT'),
|
||||
neverGenerateImages: prompt.includes('NEVER generate, attach, draw, or request images'),
|
||||
formattingDoesNotChangeContent: prompt.includes('MUST NOT add, remove, or change educational content'),
|
||||
formattingDoesNotChangeOrder: prompt.includes('MUST NOT change the teaching order'),
|
||||
@@ -164,15 +166,13 @@ const checks = {
|
||||
|
||||
// Session start cue
|
||||
startCue: COACH_SESSION_START_CUE.includes('[SESSION_START]'),
|
||||
startCueEducationalPackage: COACH_SESSION_START_CUE.includes('introduce the overall educational package'),
|
||||
startCueNoPreviousSession: COACH_SESSION_START_CUE.includes('Do NOT review a previous session'),
|
||||
startCueEducationalPackage: COACH_SESSION_START_CUE.includes('بسته آموزشی مثبتنگر ایرانی ـ اسلامی'),
|
||||
startCueInformalTone: COACH_SESSION_START_CUE.includes('informal colloquial Persian'),
|
||||
startCueGrounding: COACH_SESSION_START_CUE.includes('Do not invent missing details'),
|
||||
startCueNoAssessment: COACH_SESSION_START_CUE.includes('Do NOT administer or invent any psychological assessment'),
|
||||
startCueNoAssessment: COACH_SESSION_START_CUE.includes('or assessments'),
|
||||
startCueNoTopicChoice: COACH_SESSION_START_CUE.includes('Do not ask the user to choose topics'),
|
||||
startCueNoOverQuestion: COACH_SESSION_START_CUE.includes('Do not over-question'),
|
||||
startCueIranianIslamic: COACH_SESSION_START_CUE.includes('بسته آموزشی مثبتنگر ایرانی ـ اسلامی'),
|
||||
startCueLivedExamples: COACH_SESSION_START_CUE.includes('lived examples'),
|
||||
startCueStayOnPath: COACH_SESSION_START_CUE.includes('Stay on the educational path'),
|
||||
startCueNeverPretest: COACH_SESSION_START_CUE.includes('NEVER mention پیشآزمون'),
|
||||
startCueNoSpouse: COACH_SESSION_START_CUE.includes('NEVER ask about همسر'),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user