From 4ca13c19f1799033ef6868ad6d7f3830b8a0a569 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Wed, 4 Mar 2026 11:51:15 -0700 Subject: [PATCH] 2026-03-04T18-51-15_auto_memory/2026-03-04-extraction-timeout-configuration --- ...-03-04-extraction-timeout-configuration.md | 24 ++++++++++++++++++ memory/memories.db | Bin 82264064 -> 82264064 bytes 2 files changed, 24 insertions(+) create mode 100644 memory/2026-03-04-extraction-timeout-configuration.md diff --git a/memory/2026-03-04-extraction-timeout-configuration.md b/memory/2026-03-04-extraction-timeout-configuration.md new file mode 100644 index 000000000..3af229a62 --- /dev/null +++ b/memory/2026-03-04-extraction-timeout-configuration.md @@ -0,0 +1,24 @@ +# 2026-03-04 Session Notes + +## Extraction Timeout Configuration + +Nicholai identified that users are experiencing Ollama timeouts after 45 seconds during memory extraction (45000ms). He requested that the timeout be increased by default and made configurable in the agent config settings. + +The session focused on understanding the current timeout implementation in the daemon pipeline. An Explore agent was launched to trace where the 45000ms timeout is defined and used. Initial grep searches found the timeout referenced in 7 files: +- docs/PIPELINE.md +- docs/CONFIGURATION.md +- packages/daemon/src/memory-config.ts +- packages/daemon/src/repair-actions.test.ts +- packages/daemon/src/pipeline/provider.ts +- packages/daemon/src/pipeline/maintenance-worker.test.ts +- packages/cli/templates/agent.yaml.template + +The agent began investigating the configuration surface (PipelineV2Config in packages/core/src/types.ts) and how defaults are set in packages/core/src/memory-config.ts to understand where the timeout configuration should be exposed. + +## Next Steps + +Implement configurable extraction timeout by: +1. Adding timeout field to PipelineV2Config in packages/core/src/types.ts +2. Setting reasonable default (longer than 45s) in packages/core/src/memory-config.ts +3. Exposing the setting in agent.yaml config template +4. Updating packages/daemon/src/pipeline/provider.ts to use configurable timeout instead of hardcoded 45000ms \ No newline at end of file diff --git a/memory/memories.db b/memory/memories.db index 16ae42cc04bf930050848b8a5e2a1fc01d8625ab..ed57cd7c31af4014450ae114641090281be41799 100644 GIT binary patch delta 20074 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 delta 14775 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 av%ov^Kbpk-{TbN**k|{c!2I>u{eJ*3gUD$B