Spaces:
Running
Running
Commit History
-
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). Running
Verified signature662807d -
Fix auto-restart watchdog strptime: log filenames now include _<sessioncode> suffix; parse only the YYYYMMDD_HHMMSS prefix so idle check succeeds.
Verified signature739d992
-
revise-gate modal: reword body to "Please revise at least 10% ... before submitting your final version."
Verified signature4a839ec -
revise-gate modal: single-line body, no title, button -> Go back to argument
Verified signaturef3196ba -
revise-gate modal: quantified 90%/10% wording
Verified signature309ec26
-
app.py: simplify gr.Blocks title to single letter (A/B) for consistency with C
Verified signaturecf2f052 -
logger.py + app.py: batch-checkpoint refactor (same shape as soc-ca).
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 5 trigger points: (1) on_submit_initial_confirm right after add_argument_snapshot — persists initial argument; (2) artifact generation try/finally — persists PA/plan/framework even on generation failure; (3) on_send try/finally — persists per chat turn even if LLM call raises; (4) on_recover_session after from_dict — persists session_resumed snapshot; (5) 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, same as soc-ca.7a166f7 -
logger.py: batch-checkpoint refactor (see app.py commit for details)
Verified signature7f552fa
-
switch hf_dataset to AE-Talk-bot/log-B-Jun-18-2026 (split per-condition to relieve HF commit rate limit)
Verified signaturef0afbbe -
recovery: rename localStorage keys to current condition names + JS namespace __SOC_RECOVERY -> __RECOVERY (clean up no_ai / socratic_frame legacy)
Verified signature24c2d48 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/__init__.py)
Verified signature06671d5 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/logger.py)
Verified signature1e08cf7 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/perfect_answer.py)
Verified signaturef044ccc -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (core/config_loader.py)
Verified signature836ea29 -
key-pool rotation: per-session OpenAI key assignment from OPENAI_KEY_01..10 (app.py)
Verified signaturea022f28
-
switch to log-Jun-17-2026 + B-ans
Verified signature38bb053 -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signaturef20ce2e -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signatured25ff66 -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signaturecc20da6 -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signatureae49f04 -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signature5ca16ae -
walkthrough: MSG2 new wording (AI assistant generated version + optional chat); 5 new tutorial images from ans-ca/
Verified signaturecfca241
-
INTRO_MESSAGE: bold 'Read it carefully ...' clause; merge optional-chat sentence; close-session paragraph kept separate
Verified signature2814ba1 -
Rename condition + mode_prefix to *-ca to match local folder rename. hf_dataset unchanged (legacy data stays in same dataset under new subfolder).
Verified signaturedfa615e
-
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 signaturebacd4db
-
general_chat_prompt: strip to vanilla — just case + initial_argument + perfect_answer, no behavior steering
Verified signature42d0f27 -
general_chat_prompt: drop defensive "do not reveal discussion plan / probe / framework" rule since none are provided to the bot
Verified signature6c3fd4a -
B condition: add post-essay general chat. After perfect_answer is shown, msg_input + send_btn become interactive; on_send builds messages from case + initial_argument + perfect_answer (NOT discussion_plan) and calls LLM. Logs each chat turn via SessionLogger.add_turn(manager_verdict=None).
Verified signature760a1f1 -
B condition: add post-essay general chat. After perfect_answer is shown, msg_input + send_btn become interactive; on_send builds messages from case + initial_argument + perfect_answer (NOT discussion_plan) and calls LLM. Logs each chat turn via SessionLogger.add_turn(manager_verdict=None).
Verified signatureaaf68e2 -
B condition: add post-essay general chat. After perfect_answer is shown, msg_input + send_btn become interactive; on_send builds messages from case + initial_argument + perfect_answer (NOT discussion_plan) and calls LLM. Logs each chat turn via SessionLogger.add_turn(manager_verdict=None).
Verified signature0f143c5 -
Fix broken patch: full app.py from local no_ai with title=B
Verified signature5be0721 -
INTRO_MESSAGE: B condition reframed for AI-assistant essay + optional chat
Verified signature2a71eae -
case + placeholder: B condition reframed as 'AI assistant generates + optional chat'
Verified signature6329f3e -
case + placeholder: B condition reframed as 'AI assistant generates + optional chat'
Verified signature2e4c509
-
Rename page title to "B" for A/B blinding
Verified signature81fbf0f -
Update config.yaml
Verified signatureb662ba9 -
Update README.md
Verified signature0112eef -
Update README.md
Verified signaturecdf0e41 -
Update README.md
Verified signaturedcb7f6b -
Update README.md
Verified signatureb78cf46 -
Point B at new dataset (log-Jun-10-2026) with mode_prefix=B-non-ca
Verified signature497315e -
STEP 1 framework detection: full reasoning-mode diagnosis with refined mixed-drafts rule. STEP 1 replaces keyword indicator lists with (a) identify load-bearing reasoning move, (b) 3 diagnostic questions in order (predicted outcomes / principles regardless of outcomes / character of an actor), (c) topic-vs-load decoupling table, (d) 'remove the lens' verification test. Mixed drafts rule: NOT a hard consequence default. Instead, pick the participant's CORE argument by explicit emphasis markers ('the most important reason' / 'perhaps for me' / 'the thing that is most ethically questionable is X') (highest priority), argumentative weight, then 'remove the lens' decisive test. Consequence is last-resort fallback only. Tested against pilot Kantian argument 5/5 correctly → duty_rights. Other downstream sections (essay, plan, hooks) unchanged.
Verified signature1ce0e2b -
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. 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 hard-default to consequence. Regression tested in socratic_frame (8/8 cases including 1 synthetic privacy+consequence, 4 pilot consequence+privacy, 3 pilot duty_rights+privacy). Other downstream sections (essay generation, discussion plan, hooks) unchanged.
Verified signature9fda70f
-
Session-recovery propagated from socratic: hidden gr.Textbox (#recovery-payload) + Gradio .then(js=...) chains write/clear localStorage; on_submit_initial / on_end_session yield JSON events on their CONFIRM yields. RECOVERY_HEAD adds modal styling + window.__SOC_RECOVERY helpers; storage key no_ai_session_v1; touch-observer adapted (no chat input — watches chatbot clicks + arg_input edits). on_recover_session rebuilds chatbot as [case_display, user_arg, INTRO_MESSAGE, perfect_answer.text] (mirrors on_submit_initial yield 2) and re-activates the 60s snapshot_timer. SessionLogger.from_dict restores dominant_framework (no_ai's logger lacks argument_submitted_at, so that field is skipped).
Verified signature81f0f87
-
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signature2cf117d -
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signature6774e16 -
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signature2021c0b -
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signature4f0339d -
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signatured7c1b05
-
UI parity with socratic/socratic-frame: (1) hide Gradio Chatbot top chrome via show_label=False + CSS for share/clear/delete/trash; (2) strip the '# Case: ...' H1 from the initial chatbot message via display-only CASE_TEXT_DISPLAY; (3) hide the left yellow feedback-hint column (guide-col visible=False) so chatbot expands left, and drop the bottom-row mirror column to keep action buttons aligned under right-col.
Verified signature417dc48