fix(engine): same #129 crisis-escalation defect, on the OpenAI-tools branch (P0) #131
Reference in New Issue
Block a user
Delete Branch "fix/129-on-openai-tools"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Same defect as #129, on an independent branch. P0 SAFETY.
feat/soul-openai-tools-v2forked before the #129 fix and carries the identical defect atchat.el:2937: the agentic path's L1 safety screen readstate_get("conv_history")while history is written per-session underconv_hist_key(session_id). Multi-turn crisis escalation scored 0 on every real conversation. Without this, the bug ships again the moment that branch lands.Deliberately a byte-identical mirror
The extraction and both diff hunks match
43d0449onfix/129-history-amplificationexactly — only line offsets differ (2900 vs 2519). The session id was already in scope here under the same name (sess_for_root, declared 2922). The two branches converge instead of diverging, so whichever merges second is a clean merge, not a conflict.Two-leg proof — one variable
The extraction was in place on both legs; only the state key changed.
3. REGRESSION #129 … FAIL got: soft_bell expected: hard_bell— 8 passed, 1 failedRe-run independently after the agent reported it: exit 0, 9/9, including
PASS: distress history escalates the agentic screen to hard_bell.Engine rebuild from this branch: amalgam 1,185,285 bytes / 1231 inlined bodies (gate wants ≥1200), binary 903,144 bytes, 14 warnings, 0 errors.
nmconfirmsT _agentic_safety_screenandT _conv_hist_key.One divergence worth knowing
This branch already carried its own test runner at
tests/run-el-test.sh(fromde65991, elb-based, links whole modules). The #129 runner lives atscripts/run-el-test.sh— different path, no collision. Both are kept; the proof above used thescripts/one. Someone should decide which survives, but not in this PR.Rung — stated plainly
BUILT + RUNS (discriminating test). NOT E2E: no DMG, and not exercised against a live OpenAI-wire agentic turn. Since the OpenAI wire is this branch's entire purpose, that is the honest gap — the fix sits upstream of the wire at the input gate, so it should hold across a real provider round-trip, but that is an expectation, not a measurement.
Refs #129
🤖 Generated with Claude Code