Expand description
Per-conversation state: which skills are already in context, and at what confidence we last recommended them, so dedup can be score-aware rather than “seen once, suppressed forever”.
A skill is “loaded” either because we recommended it (Source::Ski,
with the confidence we showed) or because the model pulled it itself
(Source::Model, recorded by ski observe). The two are treated
differently by Session::should_recommend:
- used (
Model) — never recommend again. - recommended, unused (
Ski) — re-recommend only once it newly reaches HIGH confidence (we get one stronger nudge; after a HIGH showing, never).
All reads fail open: a missing or corrupt state file yields an empty session rather than an error, so the hot path can never be blocked by bad state.
Structs§
- Record
- What we know about a skill already in context: who put it there, and (for a
Skirecommendation) the confidence we displayed.Modelloads carry the last confidence we’d shown, or0.0if we never recommended it. - Session