v2.7.1 — bounded tool-selector fail-open
Fixes
- Bounded tool-selector fail-open. The
keyword/semantictool selectors fail open (expose the full set) on a no-signal turn — empty/greeting message, no lexical match, or an embedding error. With a large registry that dumped every tool schema into the prompt, blowing the context window (~237k tokens at 1000 tools) and defeating the whole point of selection. The fallback is now capped viaai-agent.ai_native.tool_selection.fallback_limit(default 50): full set when the registry is small (unchanged behavior), otherwise core + the firstfallback_limittools.nullrestores the legacy unbounded behavior. Measured: a no-signal turn at 1000 tools drops ~236,809 → ~14,517 tokens. (#54)
⚠️ Note
Behavior change only for registries larger than fallback_limit (50) that relied on the old unbounded fail-open — set fallback_limit => null to restore it.
Full suite green: 1901 tests.