ulysses/services
Mazen Tamer Salah 92ef01d4fa
fix(skills): tolerate a stray brace before the JSON in skill extraction (#2200)
maybe_extract_skill() sliced the LLM response from the first '{' to the
last '}'. When a model emits a stray brace in prose before the real
object (e.g. "uses {placeholder} then {...}"), the slice starts at the
prose brace, json.loads fails, and a valid skill is silently dropped.

Factor parsing into _extract_json_object(), which tries the whole
(de-fenced) string first and then each '{' start position, returning the
first candidate that parses to a JSON object.

Adds tests/test_skill_extractor_json.py.
2026-06-07 16:54:36 +02:00
..
docs fix: docs RAG query crashes on a non-dict row from the index (#1706) 2026-06-03 13:35:01 +09:00
faces Odysseus v1.0 2026-05-31 23:58:26 +09:00
hwfit VRAM detection under native Windows install (#1610) 2026-06-05 22:49:47 +02:00
memory fix(skills): tolerate a stray brace before the JSON in skill extraction (#2200) 2026-06-07 16:54:36 +02:00
research fix: services research lists junk no-content pages as cited sources (#1669) 2026-06-03 14:22:58 +09:00
search Word-boundary match for snippet and subject-term ranking (#1473 follow-up) (#2556) 2026-06-05 08:04:31 +01:00
shell fix: use running loop for shell stream deadlines (#1694) 2026-06-03 13:37:46 +09:00
stt STT: clean temp audio files on transcription failure 2026-06-02 20:43:24 +09:00
tts fix(tts): tolerate a malformed tts_speed instead of 500-ing (#1450) 2026-06-03 14:12:03 +09:00
youtube fix: extract_youtube_id crashes on a non-string url instead of returning None (#1689) 2026-06-03 13:38:11 +09:00
__init__.py Odysseus v1.0 2026-05-31 23:58:26 +09:00