diff --git a/org/system-integration-tests.org b/org/system-integration-tests.org index 8f4395a..3b6a492 100644 --- a/org/system-integration-tests.org +++ b/org/system-integration-tests.org @@ -340,8 +340,6 @@ test_handshake() { test_agent_responds() { # Send text to the TUI and wait for an agent (⬇) response. # This proves the full round-trip: TUI → daemon → pipeline → TUI. - # The response may be a cascade failure message (no API key) - # or a real LLM reply — either way, ⬇ proves the daemon responded. local before_ts before_ts=$(date +%s) @@ -362,6 +360,17 @@ test_agent_responds() { done } +test_agent_not_cascade_failure() { + # After test_agent_responds passes, verify the ⬇ line is NOT + # just a cascade failure message. If it is, the daemon is alive + # but no LLM backend is working. + if grep '⬇' "$TUI_LOG" | grep -qi 'cascade.*fail\|exhausted\|neural cascade'; then + echo "WARNING: LLM cascade failure — no working backend configured?" >&2 + return 1 + fi + return 0 +} + test_eval_command() { tmux send-keys -t tui-test "/eval (+ 1 2)" Enter sleep 2 @@ -380,11 +389,12 @@ test_connection_drop() { grep -qi 'connection.*lost\|ERROR.*Connection' "$TUI_LOG" } -run_test "handshake" test_handshake -run_test "agent-responds" test_agent_responds -run_test "eval-command" test_eval_command -run_test "status-bar" test_status_bar -run_test "connection-drop" test_connection_drop +run_test "handshake" test_handshake +run_test "agent-responds" test_agent_responds +run_test "agent-not-cascade-fail" test_agent_not_cascade_failure +run_test "eval-command" test_eval_command +run_test "status-bar" test_status_bar +run_test "connection-drop" test_connection_drop # ---- Summary ---- echo "" diff --git a/test/integration-tui.sh b/test/integration-tui.sh index e25c246..19183cb 100755 --- a/test/integration-tui.sh +++ b/test/integration-tui.sh @@ -45,8 +45,6 @@ test_handshake() { test_agent_responds() { # Send text to the TUI and wait for an agent (⬇) response. # This proves the full round-trip: TUI → daemon → pipeline → TUI. - # The response may be a cascade failure message (no API key) - # or a real LLM reply — either way, ⬇ proves the daemon responded. local before_ts before_ts=$(date +%s) @@ -67,6 +65,17 @@ test_agent_responds() { done } +test_agent_not_cascade_failure() { + # After test_agent_responds passes, verify the ⬇ line is NOT + # just a cascade failure message. If it is, the daemon is alive + # but no LLM backend is working. + if grep '⬇' "$TUI_LOG" | grep -qi 'cascade.*fail\|exhausted\|neural cascade'; then + echo "WARNING: LLM cascade failure — no working backend configured?" >&2 + return 1 + fi + return 0 +} + test_eval_command() { tmux send-keys -t tui-test "/eval (+ 1 2)" Enter sleep 2 @@ -85,11 +94,12 @@ test_connection_drop() { grep -qi 'connection.*lost\|ERROR.*Connection' "$TUI_LOG" } -run_test "handshake" test_handshake -run_test "agent-responds" test_agent_responds -run_test "eval-command" test_eval_command -run_test "status-bar" test_status_bar -run_test "connection-drop" test_connection_drop +run_test "handshake" test_handshake +run_test "agent-responds" test_agent_responds +run_test "agent-not-cascade-fail" test_agent_not_cascade_failure +run_test "eval-command" test_eval_command +run_test "status-bar" test_status_bar +run_test "connection-drop" test_connection_drop # ---- Summary ---- echo ""