ulysses/services
Fernando Lazzarin 14e8cffa41
Fail closed on untrusted teacher draft confidence
Follow-up to #275. get_relevant_skills() treats a missing/unparseable
confidence as 1.0, so it always clears the injection threshold. For
teacher-escalation drafts -- auto-written from a possibly untrusted trace
and then injected as authoritative guidance -- that means a draft can be
auto-injected regardless of the configured confidence bar.

Require teacher-escalation drafts to carry an explicit, parseable
confidence that meets min_confidence; fail closed otherwise. Hand-authored
legacy drafts keep the lenient "unset -> keep" behavior so they don't
silently vanish, and published skills are unaffected.

Ran: python -m py_compile services/memory/skills.py + a get_relevant_skills
unit check (teacher drafts with None/garbage/0.8 excluded at min=0.85; 0.9
included; legacy + published unaffected; gate-off control unchanged).

Co-authored-by: Fernando Lazzarin <263019791+waitdeadai@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 15:20:29 +09:00
..
docs Odysseus v1.0 2026-05-31 23:58:26 +09:00
faces Odysseus v1.0 2026-05-31 23:58:26 +09:00
hwfit Add native Windows compatibility layer 2026-06-01 15:09:47 +09:00
memory Fail closed on untrusted teacher draft confidence 2026-06-01 15:20:29 +09:00
research Add native Windows compatibility layer 2026-06-01 15:09:47 +09:00
search Odysseus v1.0 2026-05-31 23:58:26 +09:00
shell Odysseus v1.0 2026-05-31 23:58:26 +09:00
stt Odysseus v1.0 2026-05-31 23:58:26 +09:00
tts Odysseus v1.0 2026-05-31 23:58:26 +09:00
youtube Odysseus v1.0 2026-05-31 23:58:26 +09:00
__init__.py Odysseus v1.0 2026-05-31 23:58:26 +09:00