Skip to content

compression.output config key is parsed but never read by the retrieval path #153

Description

@itsandyking

Summary

The compression.output config key (documented in Config as off | lite | standard | max) is parsed and stored but never read by the retrieval path. Setting it has no effect on what cce search or the MCP server returns.

Reproduce

cd <project>
printf 'compression:\n  output: max\n' > .context-engine.yaml
cce search --top-k 10 "some query" | wc -c
rm .context-engine.yaml
cce search --top-k 10 "some query" | wc -c

Both return byte-identical output (829 chars in my case), and both report the same ✓ 10 results 1925 tokens served.

Cause

$ grep -rn "output_compression" context_engine --include="*.py"
context_engine/config.py:58:    output_compression: str = "standard"  # off | lite | standard | max
context_engine/config.py:128:    "output_compression": str,
context_engine/config.py:152:        ("compression", "output"): "output_compression",
context_engine/memory/db.py:...  (savings ledger only)

Every reference is either config plumbing or the savings ledger histogram. Nothing in retrieval/ or compression/ consumes it.

Impact

cce status shows Compression standard / Compress truncation, which reflect compression_level and the Ollama-availability fallback — not output_compression. So there is no surface where a user can tell the setting is inert. Anyone tuning output size via this key is changing nothing.

Suggested fix

Either wire it into the result-formatting path, or drop it from Config and the docs so the remaining lever (compression.level + Ollama) is unambiguous.

Environment: macOS 27 (arm64), Python 3.12, code-context-engine 0.4.25.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions