Skip to content

fix(memory): raise curation LLM timeout default from 10s to 60s#1679

Merged
Aaronontheweb merged 1 commit into
netclaw-dev:feature/memory-embeddingsfrom
Aaronontheweb:fix/curation-llm-timeout
Jul 16, 2026
Merged

fix(memory): raise curation LLM timeout default from 10s to 60s#1679
Aaronontheweb merged 1 commit into
netclaw-dev:feature/memory-embeddingsfrom
Aaronontheweb:fix/curation-llm-timeout

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Problem

Canary (0.25.0-alpha.onnx.7) doctor report: Memory Curation LLM failure rate 46% (11/24) in the last 14 days. Log forensics confirm 100% of those failures are curation_llm_timeout events — zero parse errors, zero exceptions. The curation LLM synthesizes merged memory bodies with LlmMaxOutputTokens = 4096; the previous 10s LlmTimeoutSeconds ceiling isn't enough for that much output on real providers. Curation is background quality work where success matters far more than latency.

Fix

Raise MemoryCurationConfig.LlmTimeoutSeconds default from 10s to 60s (src/Netclaw.Configuration/MemoryConfig.cs). Also added timeoutSeconds to the curation_llm_timeout warning log so future investigations don't have to infer the configured ceiling.

Schema sync

LlmTimeoutSeconds is bound at runtime from the netclaw.json "Memory" section via configuration.GetSection("Memory").Get<MemoryConfig>() (src/Netclaw.Daemon/Program.cs), registered as a DI singleton, and flows into MemoryCurationEvaluator.TryLlmEvaluationAsync through MemoryCurationConfig — not code-only. Updated the default in src/Netclaw.Configuration/Schemas/netclaw-config.v1.schema.json (10 → 60) in the same commit per the Configuration Schema Sync Rule.

Tests

Updated the bear-trap default-pinning test (MemoryConfigDefaultsTests.Curation_llm_timeout_seconds_defaults_to_60, was _defaults_to_10). No new test added for the constant itself per repo testing guidelines (zero-logic trivia). No existing test exercises the actual timeout/cancellation path with a fake delay, so nothing else needed updating.

Eval suite — intentionally skipped

Per CLAUDE.md, the eval suite (./evals/run-evals.sh) is required for memory-pipeline changes. Skipping it here deliberately: it's an expensive external-API suite, and a timeout default isn't something it exercises (no eval case depends on LlmTimeoutSeconds). Flagging this as an explicit Definition-of-Done deviation rather than a silent skip.

Gates run

  • dotnet build — 0 warnings, 0 errors
  • dotnet test Netclaw.Actors.Tests — 2756 passed
  • dotnet test Netclaw.Configuration.Tests — 514 passed
  • dotnet test Netclaw.Cli.Tests — 1334 passed (covers ConfigSchemaDoctorCheckTests)
  • dotnet slopwatch analyze — 0 issues
  • pwsh ./scripts/Add-FileHeaders.ps1 -Verify — all files have headers

@Aaronontheweb Aaronontheweb added memory Memory formation, recall, curation pipeline reliability Retries, resilience, graceful degradation labels Jul 16, 2026
@Aaronontheweb
Aaronontheweb merged commit 3aa5617 into netclaw-dev:feature/memory-embeddings Jul 16, 2026
15 checks passed
@Aaronontheweb
Aaronontheweb deleted the fix/curation-llm-timeout branch July 16, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

memory Memory formation, recall, curation pipeline reliability Retries, resilience, graceful degradation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant