Spaces:
Running
Running
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). Running
Verified signature34ef029 -
Update config.yaml
Verified signature9c8989b
-
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).
Verified signature3c467b4 -
Fix auto-restart watchdog strptime: log filenames now include _<sessioncode> suffix; parse only the YYYYMMDD_HHMMSS prefix so idle check succeeds.
Verified signaturefd3bf73
-
explain-rationale Path 3: rewrite triggers to be semantic intent (not keyword phrase match) - illustrative phrases marked non-exhaustive, intent test added
Verified signature85f1e6c -
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
Verified signaturecf41820
-
revise-gate modal: reword body to "Please revise at least 10% ... before submitting your final version."
Verified signature2e69ce8 -
revise-gate modal: single-line body, no title, button -> Go back to argument
Verified signature247e731 -
revise-gate modal: quantified 90%/10% wording; Gate 1 timeout 20min -> 15min
Verified signature8ad33ca
-
app.py: simplify gr.Blocks title to single letter (A/B) for consistency with C
Verified signaturee10e5a0 -
logger.py + app.py: batch-checkpoint refactor (push only on per-turn / submit_initial / recover_session / end_session_confirm).
Verified signatureChanges: - core/logger.py: removed self._enqueue_upload() from all add_xxx / set_xxx methods. Added public checkpoint() method. from_dict() no longer triggers upload; caller must explicitly checkpoint(). - app.py: added logger.checkpoint() at 4 trigger points: (1) on_submit_initial_confirm right after add_argument_snapshot — persists initial argument; (2) on_submit_initial after auto-first-turn _log_turn (in try/finally) — persists PA/plan/framework + first turn; (3) on_send after _log_turn (in try/finally) — persists per chat turn; (4) on_recover_session after from_dict — persists session_resumed snapshot. end_session_confirm continues to use logger.flush() unchanged. end_session_arm does NOT trigger checkpoint (rides next push). on_feedback does NOT trigger checkpoint (rides next push). Expected effect: ~3x reduction in HF commits per session (e.g. 14-turn session ~50 -> ~16 commits).3d93dc5 -
logger.py: batch-checkpoint refactor (see app.py commit for details)
Verified signature2fbfc5e
-
switch hf_dataset to AE-Talk-bot/log-A-Jun-18-2026 (split per-condition to relieve HF commit rate limit)
Verified signature2106294 -
recovery: rename localStorage keys to current condition names + JS namespace __SOC_RECOVERY -> __RECOVERY (clean up no_ai / socratic_frame legacy)
Verified signatureb9acdc0 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/__init__.py)
Verified signature28b9cc6 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/logger.py)
Verified signaturebf4cb2e -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/orchestrator.py)
Verified signatureaf6a95d -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/perfect_answer.py)
Verified signatureae2eb77 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/main_agent.py)
Verified signature289ec6e -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/manager_agent.py)
Verified signature8d6d054 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/config_loader.py)
Verified signature7575444 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (app.py)
Verified signaturea7d00d8 -
main: add 2 scratch verify fields (msg_break + on_the_right_count) on transition-due to nudge bot to check Block 1 rendering
Verified signature6ad0f54 -
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
Verified signaturecfeb954 -
main_prompt: explain-rationale Block 2 must reference the first-pending Q on the CURRENT probe (banned overall question phrasing)
Verified signature755db9f -
manager_prompt: fix explain-rationale Block 2 anchor (no overall question), add Choice-prompt BACK pick + KEEP-DIGGING pick classification rules
Verified signature6be3d77 -
main_prompt: add user-asks-off-topic to enum + soft-return section; update explain-rationale Block 2 (choice prompt vs soft return)
Verified signature8782289 -
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
Verified signature7d7bf7e -
Add user-asks-revision
Verified signature183443c -
Add user-asks-revision
Verified signaturece2ad2d
-
switch to log-Jun-17-2026 dataset; rename mode_prefixes (B-non-ca->B-ans, C-non-ca->C-non)
Verified signatureb21f21e -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signatureffb9838 -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signature47ba854 -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signature2fb6f7e -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signature47214aa -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signaturecba07de -
walkthrough: MSG2/MSG3 use AI assistant; 5 new tutorial images
Verified signature621918c
-
Rename condition + mode_prefix to *-ca to match local folder rename. hf_dataset unchanged (legacy data stays in same dataset under new subfolder).
Verified signatureab54556
-
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.
Verified signature6925d99
-
case + placeholder: 'chatbot' -> 'AI assistant' to match condition framing
Verified signature95b1b9d -
case + placeholder: 'chatbot' -> 'AI assistant' to match condition framing
Verified signaturee4ff0e3 -
manager_prompt: 4 new turn types + 2-pending count + 'next' hint surface
Verified signature- Split merged needs-clarification into: needs-clarification (confusion only), transition-due Path C (ack-pivot + fatigue-pivot), user-asks-position, user-asks-meta. - Per-probe fresh-set count: slots 3-7 dropped from 3 -> 2 pending, with Q1/Q2 'two different lenses' selection principle. - 'next' control hint added to fatigue-pivot sentence 3 and to 2nd needs-clarification on the same probe; explicitly forbidden in user-asks-meta replies (curiosity, not friction). - All 6 test scenarios pass locally (confusion / ack-pivot / fatigue-pivot / user-asks-position / user-asks-meta / 2nd needs-clarification).6f7f496
-
Rename page title to "A" for A/B blinding
Verified signaturec3f5236 -
Update config.yaml
Verified signature94ec300 -
Update README.md
Verified signaturee7a506d -
Update README.md
Verified signaturebea7c21 -
Update README.md
Verified signature609746b -
Point A at new dataset (log-Jun-10-2026) with mode_prefix=A-soc
Verified signature22bc0a1 -
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).
Verified signature7c4aa67 -
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.
Verified signatureb617402