Files
cleveragents-core/robot/skeleton_compressor.robot
T
freemo f2232eec09
CI / push-validation (pull_request) Successful in 32s
CI / helm (pull_request) Successful in 42s
CI / build (pull_request) Successful in 45s
CI / lint (pull_request) Successful in 1m13s
CI / quality (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m27s
CI / security (pull_request) Successful in 1m28s
CI / unit_tests (pull_request) Successful in 7m6s
CI / docker (pull_request) Successful in 1m53s
CI / integration_tests (pull_request) Successful in 21m26s
CI / coverage (pull_request) Successful in 13m44s
CI / status-check (pull_request) Successful in 3s
fix(acms): align SkeletonCompressorService.compress() with SkeletonCompressor protocol
- Updated SkeletonCompressorService.compress() to accept
  (fragments: tuple[ContextFragment, ...], skeleton_budget: int)
  -> tuple[ContextFragment, ...], matching the SkeletonCompressor protocol
- Removed skeleton_ratio and CompressionResult from the public API
- Added @runtime_checkable to SkeletonCompressor protocol in acms_service.py
- Added structural subtype assertion at module level to prevent future
  protocol drift
- Rewrote all Behave feature scenarios and step definitions to use
  skeleton_budget
- Updated benchmarks and robot helpers to use absolute token budgets
- Removed CompressionResult export from services __init__.py and
  vulture_whitelist.py
- The depth_breadth_projection.py call site already correctly computed
  and passed skeleton_budget

ISSUES CLOSED: #2925
2026-05-30 08:29:22 -04:00

50 lines
2.4 KiB
Plaintext

*** Settings ***
Documentation Smoke tests for skeleton compressor service
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_skeleton_compressor.py
*** Test Cases ***
Compress Fragments At Budget 500
[Documentation] Compress sample fragments with budget of 500 tokens and verify output
${result}= Run Process ${PYTHON} ${HELPER} compress 500 cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-compress-ok budget=500
Compress Fragments At Full Budget
[Documentation] Full budget — all fragments should survive
${result}= Run Process ${PYTHON} ${HELPER} compress 1000 cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-compress-ok budget=1000
Should Contain ${result.stdout} fragment_count=3
Compress Fragments At Budget Zero
[Documentation] Zero budget — no fragments should survive
${result}= Run Process ${PYTHON} ${HELPER} compress 0 cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-compress-ok budget=0
Should Contain ${result.stdout} fragment_count=0
Validate Budget Bounds
[Documentation] Out-of-range budgets must raise ValueError
${result}= Run Process ${PYTHON} ${HELPER} validate-budget-bounds cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-budget-bounds-ok
Verify Protocol Conformance
[Documentation] SkeletonCompressorService must satisfy the SkeletonCompressor protocol
${result}= Run Process ${PYTHON} ${HELPER} protocol-check cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-protocol-check-ok
Verify Stable Fragment Ordering
[Documentation] Fragments with equal relevance must be ordered deterministically
${result}= Run Process ${PYTHON} ${HELPER} stable-ordering cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} skeleton-stable-ordering-ok