C

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).
c875c14
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.
f0e53d6
verified

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

revise-gate modal: quantified 90%/10% wording
a68694b
verified

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

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

linxinhua commited on

switch to log-Jun-17-2026 + C-non
e7e7053
verified

linxinhua commited on

Update README.md
ccfcb84
verified

linxinhua commited on

Initial deploy of C (non-ca): no post-essay chat. Stripped chat additions from answer-ca base.
0a1d57f
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).
a9c08ce
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.
20986b6
verified

linxinhua commited on

general_chat_prompt: strip to vanilla — just case + initial_argument + perfect_answer, no behavior steering
bf30a9b
verified

linxinhua commited on

general_chat_prompt: drop defensive "do not reveal discussion plan / probe / framework" rule since none are provided to the bot
3b27385
verified

linxinhua commited on

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).
3e182ec
verified

linxinhua commited on

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).
ba91955
verified

linxinhua commited on

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).
478f607
verified

linxinhua commited on

INTRO_MESSAGE: B condition reframed for AI-assistant essay + optional chat
1476e93
verified

linxinhua commited on

case + placeholder: B condition reframed as 'AI assistant generates + optional chat'
4734173
verified

linxinhua commited on

case + placeholder: B condition reframed as 'AI assistant generates + optional chat'
44c251f
verified

linxinhua commited on

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.
1ce0e2b
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. 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.
9fda70f
verified

linxinhua commited on

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).
81f0f87
verified

linxinhua commited on

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.
2cf117d
verified

linxinhua commited on

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.
6774e16
verified

linxinhua commited on

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.
2021c0b
verified

linxinhua commited on

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.
4f0339d
verified

linxinhua commited on

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.
d7c1b05
verified

linxinhua commited on

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.
417dc48
verified

linxinhua commited on

Record walkthrough_started_at client-side, pass to on_submit_initial via js= wrapper at submit
02dcc00
verified

linxinhua commited on

Move walkthrough_started_at + start_session to walkthrough END Start click (with JS retry)
9387dbd
verified

linxinhua commited on

Format walkthrough_started_at + argument_submitted_at as ISO 8601 in payload
a25ff64
verified

linxinhua commited on

Add walkthrough_started_at field to logger (top of payload, preserved across start_session)
152dcfe
verified

linxinhua commited on

Record walkthrough_started_at on Start walkthrough click (first click only)
278e578
verified

linxinhua commited on

Bump chatbot to 65vh and argument textbox to 55vh
fd7055a
verified

linxinhua commited on

Add welcome overlay before walkthrough; make image walkthrough full-screen; rename Done -> Start
fa60166
verified

linxinhua commited on

Tutorial image 04.webp
3a10908
verified

linxinhua commited on

Tutorial image 03.webp
51aad86
verified

linxinhua commited on

Tutorial image 02.webp
5ff206a
verified

linxinhua commited on

Tutorial image 01.webp
8887b8f
verified

linxinhua commited on

Remove old PNG tutorial samples
05d570b
verified

linxinhua commited on

Remove old PNG tutorial samples
d2dd89f
verified

linxinhua commited on

Remove old PNG tutorial samples
704905b
verified

linxinhua commited on

Add tutorial image 03.png
f156b5a
verified

linxinhua commited on

Add tutorial image 02.png
96fb606
verified

linxinhua commited on