2026-02-13 02:08:30 +05:30
|
|
|
# ruff: noqa: S101
|
|
|
|
|
"""Template size guardrails for injected heartbeat context."""
|
|
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
|
HEARTBEAT_CONTEXT_LIMIT = 20_000
|
|
|
|
|
TEMPLATES_DIR = Path(__file__).resolve().parents[1] / "templates"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_heartbeat_templates_fit_in_injected_context_limit() -> None:
|
|
|
|
|
"""Heartbeat templates must stay under gateway injected-context truncation limit."""
|
2026-02-15 00:53:27 +05:30
|
|
|
targets = ("BOARD_HEARTBEAT.md.j2",)
|
2026-02-13 02:08:30 +05:30
|
|
|
for name in targets:
|
|
|
|
|
size = (TEMPLATES_DIR / name).stat().st_size
|
2026-02-13 16:22:00 +05:30
|
|
|
assert (
|
|
|
|
|
size <= HEARTBEAT_CONTEXT_LIMIT
|
|
|
|
|
), f"{name} is {size} chars (limit {HEARTBEAT_CONTEXT_LIMIT})"
|