A

Commit History

End Session gates: turn off end_session_gate (probe-count/20-min condition no longer blocks); demote revise_check to a one-shot warning (first click below the ~10% revision threshold shows the revision modal and blocks; every later click finalises regardless).
34ef029
Running
verified

linxinhua commited on

Update config.yaml
9c8989b
verified

linxinhua commited on

Fix auto-restart watchdog (strptime parsing log filenames with new _<sessioncode> suffix), SyntaxWarning (\s in JS-inside-Python string), and pin python_version to 3.11 (avoids Python 3.14 asyncio cleanup noise with Gradio 6.x).
3c467b4
verified

linxinhua commited on

Fix auto-restart watchdog strptime: log filenames now include _<sessioncode> suffix; parse only the YYYYMMDD_HHMMSS prefix so idle check succeeds.
fd3bf73
verified

linxinhua commited on

explain-rationale Path 3: rewrite triggers to be semantic intent (not keyword phrase match) - illustrative phrases marked non-exhaustive, intent test added
85f1e6c
verified

linxinhua commited on

explain-rationale: add Path 3 (frame-rejection / rhetorical pushback) - fires on single-turn pushback (Why are you focused on X) or accumulated 2+ engaging-default with gap-denial pattern; verified against 67404 T3 + 93400 T5/T7
cf41820
verified

linxinhua commited on

revise-gate modal: reword body to "Please revise at least 10% ... before submitting your final version."
2e69ce8
verified

linxinhua commited on

revise-gate modal: single-line body, no title, button -> Go back to argument
247e731
verified

linxinhua commited on

revise-gate modal: quantified 90%/10% wording; Gate 1 timeout 20min -> 15min
8ad33ca
verified

linxinhua commited on

app.py: simplify gr.Blocks title to single letter (A/B) for consistency with C
e10e5a0
verified

linxinhua commited on

logger.py + app.py: batch-checkpoint refactor (push only on per-turn / submit_initial / recover_session / end_session_confirm).
3d93dc5
verified

linxinhua commited on

logger.py: batch-checkpoint refactor (see app.py commit for details)
2fbfc5e
verified

linxinhua commited on

switch hf_dataset to AE-Talk-bot/log-A-Jun-18-2026 (split per-condition to relieve HF commit rate limit)
2106294
verified

linxinhua commited on

recovery: rename localStorage keys to current condition names + JS namespace __SOC_RECOVERY -> __RECOVERY (clean up no_ai / socratic_frame legacy)
b9acdc0
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/__init__.py)
28b9cc6
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/logger.py)
bf4cb2e
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/orchestrator.py)
af6a95d
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/perfect_answer.py)
ae2eb77
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/main_agent.py)
289ec6e
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/manager_agent.py)
8d6d054
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/config_loader.py)
7575444
verified

linxinhua commited on

key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (app.py)
a7d00d8
verified

linxinhua commited on

main: add 2 scratch verify fields (msg_break + on_the_right_count) on transition-due to nudge bot to check Block 1 rendering
6ad0f54
verified

linxinhua commited on

explain-rationale fires at most once per probe; continued confusion/fatigue after ER -> Path B with revision rec; Path B Block 1 has voice variation by trigger
cfeb954
verified

linxinhua commited on

main_prompt: explain-rationale Block 2 must reference the first-pending Q on the CURRENT probe (banned overall question phrasing)
755db9f
verified

linxinhua commited on

manager_prompt: fix explain-rationale Block 2 anchor (no overall question), add Choice-prompt BACK pick + KEEP-DIGGING pick classification rules
6be3d77
verified

linxinhua commited on

main_prompt: add user-asks-off-topic to enum + soft-return section; update explain-rationale Block 2 (choice prompt vs soft return)
8782289
verified

linxinhua commited on

manager_prompt: add user-asks-off-topic, anchor-rewrite rule, look-back/no-regression rules for needs-clarification, deeper-pass explain-rationale on continued sparse confusion
7d7bf7e
verified

linxinhua commited on

Add user-asks-revision
183443c
verified

linxinhua commited on

Add user-asks-revision
ce2ad2d
verified

linxinhua commited on

switch to log-Jun-17-2026 dataset; rename mode_prefixes (B-non-ca->B-ans, C-non-ca->C-non)
b21f21e
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
ffb9838
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
47ba854
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
2fb6f7e
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
47214aa
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
cba07de
verified

linxinhua commited on

walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
621918c
verified

linxinhua commited on

Rename condition + mode_prefix to *-ca to match local folder rename. hf_dataset unchanged (legacy data stays in same dataset under new subfolder).
ab54556
verified

linxinhua commited on

Auto-grow chat input: lines=1, max_lines=6; CSS splits chat-input from buttons (textarea grows 42-160px; buttons stay 42px); chat-row aligns flex-end so Send stays at the bottom of the input.
6925d99
verified

linxinhua commited on

case + placeholder: 'chatbot' -> 'AI assistant' to match condition framing
95b1b9d
verified

linxinhua commited on

case + placeholder: 'chatbot' -> 'AI assistant' to match condition framing
e4ff0e3
verified

linxinhua commited on

manager_prompt: 4 new turn types + 2-pending count + 'next' hint surface
6f7f496
verified

linxinhua commited on

Rename page title to "A" for A/B blinding
c3f5236
verified

linxinhua commited on

Update config.yaml
94ec300
verified

linxinhua commited on

Update README.md
e7a506d
verified

linxinhua commited on

Update README.md
bea7c21
verified

linxinhua commited on

Update README.md
609746b
verified

linxinhua commited on

Point A at new dataset (log-Jun-10-2026) with mode_prefix=A-soc
22bc0a1
verified

linxinhua commited on

STEP 1 framework detection: mixed-drafts rule refined. Previous version of new STEP 1 hard-defaulted mixed drafts to consequence, which misclassified Kantian-explicit arguments that listed multiple harms before naming agency as the core (consistency went down from 7/9 to 3/5 on the pilot Kantian argument). Refined rule: when 2+ frameworks are load-bearing, pick the participant's CORE argument by (1) explicit emphasis markers like 'the most important reason' / 'the thing that is most ethically questionable is X' / 'perhaps for me' (highest priority), (2) argumentative weight (the most-defended claim), (3) 'remove the lens' decisive test. Consequence is only a last-resort default for genuinely balanced drafts with no detectable core. Re-tested: 5/5 Kantian argument now correctly → duty_rights (up from 3/5).
7c4aa67
verified

linxinhua commited on

STEP 1 framework detection rewritten from keyword-matching to reasoning-mode diagnosis. Previous prompt used indicator keyword lists ('right to X', 'consent', 'privacy' → duty_rights, etc.), which would misclassify drafts that mention a topic but argue through a different framework (e.g., privacy mentioned but load-bearing logic is an outcome chain). New STEP 1 asks the LLM to (a) identify the load-bearing reasoning move, (b) ask 3 diagnostic questions in order (predicted outcomes / principles regardless of outcomes / character of an actor), (c) apply a topic-vs-load decoupling table, (d) verify via 'remove the lens' test. Mixed drafts are hard-defaulted to consequence (not soft tiebreak). Regression tested against 1 synthetic privacy+consequence case + 4 pilot consequence+privacy cases + 3 pilot duty_rights+privacy cases — 8/8 correct. Other downstream sections of perfect_answer_prompt.md (essay generation, discussion plan, hooks) unchanged.
b617402
verified

linxinhua commited on