Skip to content

v1.0.5

Latest

Choose a tag to compare

@devinrory-collab devinrory-collab released this 27 Jun 08:23

Fixed

  • Anamnesis owner-scoped inbox fetch uses the canonical speaker id (src/session-debrief.js): when OWNER_USER_ID is configured, inline inbox review now filters inbox.user_id with the normalized OWNER_SPEAKER_ID (tg:<id>). This keeps multi-user inbox promotion aligned with the stored user_id format while preserving legacy NULL rows.
  • Anamnesis inline inbox review no longer promotes raw auto-capture fragments (src/session-debrief.js): session debriefs now exclude source='founder_chat' / capture_reason='auto_capture_founder_msg' rows from their per-run inbox review batch. These wide-net captures are per-turn raw material and can fragment long discussions into many inbox-* nodes when promoted inside every debrief; session-level memory should come from the debrief synthesis path, with raw inbox candidates left for slower review or future arc-level aggregation.
  • LLM envelope normalization now fills missing required fields before database writes (engine.cjs): raw memory ingestion now derives l0, l1, and l2 from the source text when the envelope model returns parseable JSON that omits one of those fields. This prevents Anamnesis or memory-import writes from reaching SQLite with a null l0 while preserving the no-fallback behavior for responses with no JSON at all.
  • Anamnesis inbox promotion now has a reviewed-summary fallback (src/session-debrief.js): inbox promotion now falls back to the already-reviewed Anamnesis summary when rememberRaw(... noFallback: true) receives an LLM response with no parseable JSON at all. The fallback preserves source context, event time, node type, tags, and supersedes edges, preventing durable inbox items from staying pending forever when the envelope model ignores the JSON contract.
  • LLM envelope parsing now tolerates prefaced JSON responses (engine.cjs): raw memory ingestion now extracts the first balanced JSON object after stripping markdown fences and <think> blocks, and envelope generation uses temperature: 0.0 for both Anthropic and OpenAI-compatible providers. This prevents Anamnesis or memory-import promotion from getting stuck when a model returns a short natural-language prefix before the JSON envelope.