Fix stats honesty: compute from actual rendered sections, never silently no-op

This commit is contained in:
Himanshu Dongre 2026-04-13 16:28:50 +05:30
parent c613e45512
commit 208f04ebda
2 changed files with 51 additions and 28 deletions

View file

@ -103,35 +103,47 @@ def _artifact_section(
return "\n".join(lines) + "\n"
def _artifact_compact_stats(artifacts: list[dict]) -> dict | None:
"""Compute savings from compact mode. Returns None if no artifacts."""
def _artifact_compact_stats(
artifacts: list[dict],
checkpoint_id: str = "",
) -> dict | None:
"""Compute savings by rendering both full and compact artifact sections
and comparing their actual char counts. Returns None only if there are
no artifacts at all."""
if not artifacts:
return None
full_chars = sum(len(a.get("content") or "") for a in artifacts)
if full_chars == 0:
return None
# Compact replaces content with labels (~20 chars each + overhead)
compact_chars = sum(len(f"- {a.get('label', 'Untitled')}") + 1 for a in artifacts) + 80
full_rendered = _artifact_section(artifacts, full=True)
compact_rendered = _artifact_section(
artifacts, compact=True, checkpoint_id=checkpoint_id,
)
full_chars = len(full_rendered)
compact_chars = len(compact_rendered)
saved = full_chars - compact_chars
if saved <= 0:
return None
pct = round(saved * 100 / full_chars)
pct = round(saved * 100 / full_chars) if full_chars > 0 else 0
return {
"artifacts_omitted": len(artifacts),
"chars_saved": saved,
"reduction_pct": pct,
"full_chars": full_chars,
"compact_chars": compact_chars,
"chars_saved": max(saved, 0),
"reduction_pct": max(pct, 0),
}
def _format_compact_stats_footer(stats: dict | None) -> str:
"""One-line footer for --stats. Empty string if no stats."""
def _format_compact_stats_footer(stats: dict | None, compact: bool = True) -> str:
"""Footer for --stats. Always returns a line when called — either
savings data or an explicit 'nothing to report' message."""
if not compact:
return "\n---\ncompact stats: no artifact savings to report (--compact not used)\n"
if not stats:
return ""
return "\n---\ncompact stats: no artifact savings to report (0 artifacts)\n"
if stats["chars_saved"] <= 0:
return "\n---\ncompact stats: no artifact savings to report (artifacts too small)\n"
return (
f"\n---\n"
f"compact stats: {stats['artifacts_omitted']} artifact(s) omitted "
f"· {stats['chars_saved']} chars saved "
f"· {stats['reduction_pct']}% reduction in artifact section\n"
f"· {stats['reduction_pct']}% smaller artifact section "
f"(full: {stats['full_chars']} chars → compact: {stats['compact_chars']} chars)\n"
)
@ -302,9 +314,14 @@ def format_state_brief(
result = "\n".join(p for p in parts if p).rstrip() + "\n"
if stats and compact:
compact_stats = _artifact_compact_stats(artifacts)
result += _format_compact_stats_footer(compact_stats)
if stats:
if compact:
compact_stats = _artifact_compact_stats(
artifacts, checkpoint_id=str(checkpoint_id),
)
result += _format_compact_stats_footer(compact_stats, compact=True)
else:
result += _format_compact_stats_footer(None, compact=False)
return result

View file

@ -419,8 +419,8 @@ def test_mcp_smriti_state_compact_mode(mock_client):
assert "compact — content omitted" in out
def test_compact_stats_footer():
"""--compact --stats should append a savings footer."""
def test_compact_stats_footer_shows_actual_rendered_sizes():
"""--compact --stats shows full and compact rendered char counts."""
commit = _commit_with_artifacts()
out = format_state_brief(
_base_space(), _base_head(), commit, compact=True, stats=True,
@ -429,24 +429,30 @@ def test_compact_stats_footer():
assert "compact stats:" in out
assert "artifact(s) omitted" in out
assert "chars saved" in out
assert "reduction in artifact section" in out
assert "smaller artifact section" in out
# Must show actual rendered sizes, not heuristic estimates
assert "full:" in out
assert "compact:" in out
assert "chars)" in out
def test_stats_without_compact_produces_no_footer():
"""Stats without compact should not show a footer."""
def test_stats_without_compact_shows_explicit_message():
"""--stats without --compact should say so, not silently produce nothing."""
commit = _commit_with_artifacts()
out = format_state_brief(
_base_space(), _base_head(), commit, stats=True,
)
assert "compact stats:" not in out
assert "compact stats:" in out
assert "--compact not used" in out
def test_stats_with_no_artifacts_produces_no_footer():
"""Compact+stats on a commit with no artifacts: no footer."""
def test_stats_with_no_artifacts_shows_explicit_message():
"""Compact+stats on a commit with no artifacts: explicit message."""
commit = _base_commit()
out = format_state_brief(
_base_space(), _base_head(), commit, compact=True, stats=True,
)
assert "compact stats:" not in out
assert "compact stats:" in out
assert "0 artifacts" in out