mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-10-26 13:16:24 +00:00
* fix(memory): drop out-of-range extraction confidence instead of failing the batch A model-emitted confidence outside [0, 1] (a percentage such as 95, or 1.5) passed extraction normalization, which only rejected non-finite values. The value then reached storage, whose own validation raises for out-of-range confidence, so one malformed field failed the whole update: the extraction watermark never advanced and the same paid call repeated on every turn, while every valid fact, summary and removal in the batch was lost each cycle. Treat the range like the other malformed shapes in _normalize_memory_update_fact: drop only that item and let the rest of the update apply. Read paths already clamp stored corrupt values (_coerce_source_confidence), so no read-side change is needed. * fix(memory): bound the confidence drop and make it observable (review) Review follow-ups on the out-of-range confidence fix: - range-check integer confidence before float(), so a model emitting 10**400 is dropped instead of raising OverflowError and failing the batch; - log the raw value when a fact is dropped, so a systematically percentage-scale model is visible instead of silently losing every fact; - document that a batch which also proposes factsToRemove still fails closed when any new fact is dropped (replacementFactIndex positions shift), and pin that boundary with a test. Values are documented as dropped, never rescaled.