Files
cleveragents-core/robot/tui_conversation_pruning.robot
T
drew ffac6be326
CI / load-versions (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 57s
CI / typecheck (pull_request) Successful in 1m3s
CI / security (pull_request) Successful in 1m4s
CI / build (pull_request) Successful in 43s
CI / helm (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 7m7s
CI / docker (pull_request) Successful in 2m11s
CI / integration_tests (pull_request) Successful in 11m38s
CI / coverage (pull_request) Successful in 10m18s
CI / status-check (pull_request) Successful in 3s
fix(tui): count conversation separators for pruning
2026-06-17 00:57:52 -04:00

81 lines
3.9 KiB
Plaintext

*** Settings ***
Documentation Integration tests for TUI conversation content pruning.
...
... Verifies that:
... - ConversationStream enforces prune_low_mark / prune_excess thresholds
... - Oldest non-protected blocks are removed when the threshold is exceeded
... - A pruning note is inserted at position 0 after pruning
... - Protected blocks survive pruning
... - clear() resets all state
... - load_conversation_settings returns defaults when config file absent
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment With Database Isolation
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_tui_conversation_pruning.py
*** Test Cases ***
ConversationStream Prunes Oldest Blocks When Threshold Exceeded
[Documentation] Verify pruning fires when total_lines exceeds trigger_line_count
... and total_lines is brought back down to prune_low_mark.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} prune-trigger
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-prune-trigger-ok
ConversationStream Counts Rendered Separators When Pruning
[Documentation] Verify many one-line blocks prune based on rendered blank
... separators, not only block-local line counts.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} separator-aware-prune
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-separator-aware-prune-ok
ConversationStream Inserts Note Block After Pruning
[Documentation] Verify a pruned-note block is inserted at index 0 after pruning.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} prune-note-inserted
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-prune-note-inserted-ok
ConversationStream Respects Protected Blocks During Pruning
[Documentation] Verify protected blocks are never removed during pruning.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} prune-protected
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-prune-protected-ok
ConversationStream Clear Resets All State
[Documentation] Verify clear() resets blocks, total_lines, and note state.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} clear-resets-state
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-clear-resets-state-ok
load_conversation_settings Returns Defaults When File Absent
[Documentation] Verify load_conversation_settings returns ConversationSettings()
... defaults when the config file does not exist.
[Tags] tui_conversation_pruning tdd_issue tdd_issue_6350
${result}= Run Process ${PYTHON} ${HELPER} settings-defaults
... cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} tui-settings-defaults-ok