Skip to content

chore: align staging with production (real prod→staging merge)#276

Merged
heybeaux merged 29 commits into
stagingfrom
chore/align-staging-with-production-20260601
Jun 1, 2026
Merged

chore: align staging with production (real prod→staging merge)#276
heybeaux merged 29 commits into
stagingfrom
chore/align-staging-with-production-20260601

Conversation

@beaux-riel

Copy link
Copy Markdown
Collaborator

Why this PR (and why the last two didn't work)

Every staging→production sync (#272, #274) kept conflicting on the base side: origin/production was never actually an ancestor of origin/staging. The two prior "back-merges" (#273, #275) merged the back-merge branch into itself (#275's merge commit had #273's commit as its second parent, not origin/production), so production's 28 divergent commits never genuinely landed in staging.

What this does

A real git merge origin/production into a branch off origin/staging.

  • Merge commit parents: 4c10e73 (staging) + 185934e (production tip) — the production parent the prior attempts lacked.
  • Gate (the check the prior attempts skipped): git merge-base --is-ancestor origin/production HEADPASS.
  • Typecheck: tsc --noEmit0 errors (after prisma generate).

Conflict resolution — all 36 to staging

Category Files Why staging
add/add specs (23) *.controller.spec.ts Staging is newer/superset; prod diffs were prettier line-wrapping
dream-cycle (7) dream-cycle*.ts Staging has ARCHIVAL stage (ENG-123) prod lacks
embedding (4) embedding*.ts, local-embed* Staging has correct 768D test vectors; prod had buggy 2D [0.1,0.2]
reembedding/memory (2) service + spec Staging formatting + newer insight-scoping tests

Production's behavioral hotfixes are preserved — dedup always-queue, generate-context userId scoping, and the X-AM-User-ID header fix all live in files that merged cleanly (not in the conflict set), verified present in the merged tree.

After this merges

Cut a fresh staging→production sync — it will be fast-forwardable, zero conflicts. Close #272 and #274.

🤖 Generated with Claude Code

beaux-riel and others added 29 commits March 16, 2026 10:49
Resolved conflicts in:
- prisma/schema.prisma (5 conflicts — merged new fields from both branches)
- src/app.module.ts (2 conflicts — merged module imports)
- src/consolidation/dream-cycle.service.ts (1 conflict — merged parallel processing)
- src/memory/memory-query.service.ts (7 conflicts — merged feedback, query logging, userId changes)
- src/memory/memory.module.ts (1 conflict — merged provider registrations)
The local embed server (/health) can be delayed when inference
is running on the same Tokio thread pool. 5s was too tight and
caused false 'down' reports during heavy embedding workloads.

Root fix is spawn_blocking in engram-embed (separate commit).
This is a belt-and-suspenders guard for the Engram side.

See: engram-embed main.rs spawn_blocking fix
…agentId

API key is sufficient to scope memory access — no caller-supplied agentId
needed. The guard already resolves the correct user from the API key +
X-AM-User-ID header combination.

Changes:
- GenerateContextOptions: userId is now preferred; agentId kept for
  backward compat (dream-cycle internal callers)
- GenerateContextService: queries by userId when present, falls back
  to agentId. Also fixes raw SQL cluster query to use same scope.
- ConsolidationController: injects @userid() decorator and passes
  resolved userId through; agentId in body is now truly optional.

This resolves the recurring 0-memory context generation issue where
'clawd-agent-001' (or empty string) didn't match the actual stored
agentId 'cmmm09r3t000dc9zkk9xfzc97'. The agentId concept is being
phased out in favor of API key + userId scoping.
…requirement

Stage 5 (generate-context) no longer requires DREAM_CONTEXT_AGENT_ID env var.
It now passes the userId from the current dream-cycle run, which is always
present and correctly scopes the memory query.

DREAM_CONTEXT_AGENT_ID is kept for backward compat but is no longer a gate —
the stage will run as long as DREAM_GENERATE_CONTEXT=true and userId is set.
Rework scope resolution to use accountId as primary key:
- accountId (from API key) → queries all users under account
- userId (X-AM-User-ID header) → optional narrowing to one user
- agentId → legacy fallback only

generate-context no longer requires X-AM-User-ID. Callers only
need a valid API key. dream-cycle Stage 5 resolves accountId from
the current run's userId for correct per-user scoping.
…-user narrowing

The guard always resolves a user (falling back to isDefault=true) even
when no X-AM-User-ID header is sent. This caused generate-context to
silently scope to only the default user's 1,840 memories instead of
all account memories (7,277 across beaux + default users).

Fix: check raw request header to distinguish explicit userId from guard
fallback. Without X-AM-User-ID, pass accountId only so generate-context
queries all users under the account.
…d (schema migration)

The User model was migrated from agentId-scoped to accountId-scoped in
migration 20260313_user_identity_consolidation. The cloud-sync-ingest
service was still using the old agentId_externalId unique index for
findUnique and the agentId field in user.create — both removed from the
schema.

Fix:
- Resolve accountId from the agent record first
- Use accountId_externalId for the findUnique unique constraint
- Drop agentId from user.create (no longer in schema)

Also fixes stale 4-arg constructor in memory-import-async.spec.ts
(RetrievalSignals arg was removed from MemoryBulkController).
True merge of origin/production into staging. Prior back-merges (#273/#275)
merged the back-merge branch into itself rather than origin/production, so
production was never an ancestor of staging and every staging→production sync
PR (#272, #274) kept conflicting on the base side.

All 36 conflicts resolved to staging: it carries the dream-cycle ARCHIVAL
stage (ENG-123), correct 768D embedding test vectors, current formatting, and
newer specs. Production's behavioral hotfixes (dedup always-queue,
generate-context userId scoping, X-AM-User-ID header) live in cleanly-merged
files and are preserved.

Gate: git merge-base --is-ancestor origin/production HEAD must pass.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

✅ Recall Benchmark Results

╔══════════════════════════════════════════════════════════════╗
      ║              ENGRAM RECALL BENCHMARK REPORT                 ║
      ╚══════════════════════════════════════════════════════════════╝
      
        Git SHA:    47e93d9
        Branch:     HEAD
        Timestamp:  2026-06-01T13:08:34.627Z
      
      ┌─────────────────────────────────────────────────────────────┐
      │  OVERALL SCORES                                            │
      ├─────────────────────────────────────────────────────────────┤
      │  Total Queries:   81                                        │
      │  Passed:          79 / 81 (97.5%)                                        
      │  Precision@5:     96.9%  ✅  (threshold: 70%)
      │  Recall@20:       97.5%
      │  MRR:             0.9172
      │  Isolation:       100.0%  ✅  (threshold: 100%)
      └─────────────────────────────────────────────────────────────┘
      
      ┌──────────────────┬───────┬────────┬──────────┬──────────┬──────────┬───────────┐
      │ Category         │ Total │ Passed │ Prec@5   │ Rec@20   │ MRR      │ Isolation │
      ├──────────────────┼───────┼────────┼──────────┼──────────┼──────────┼───────────┤
      │ adversarial      │ 10    │ 10     │ 100.0%   │ 100.0%   │ 1.0000   │ 100.0%    │
      │ cross_feature    │ 10    │ 10     │ 100.0%   │ 100.0%   │ 1.0000   │ 100.0%    │
      │ edge_case        │ 16    │ 16     │ 100.0%   │ 100.0%   │ 0.9479   │ 100.0%    │
      │ emotional        │ 10    │ 8      │ 75.0%    │ 100.0%   │ 0.7708   │ 100.0%    │
      │ rls_isolation    │ 10    │ 10     │ 100.0%   │ 100.0%   │ 0.9500   │ 100.0%    │
      │ semantic         │ 14    │ 14     │ 100.0%   │ 100.0%   │ 0.8810   │ 100.0%    │
      │ temporal         │ 11    │ 11     │ 100.0%   │ 81.8%    │ 0.8712   │ 100.0%    │
      └──────────────────┴───────┴────────┴──────────┴──────────┴──────────┴───────────┘
      
      ❌ FAILED QUERIES (2):
      
        [emotional_001] "What makes me happy?" (user: alice)
          ⚠️  ZERO HITS: expected alice_joy_001 in top 5
          📊 Precision@5: 0.0% — hit: [], missed: [alice_joy_001]
          📋 Actual top 5: [alice_pride_001, alice_calm_001, alice_mixed_emotion_001, alice_cooking_001, alice_identity_project_001]
      
        [emotional_002] "times I felt sad or grieving" (user: alice)
          ⚠️  ZERO HITS: expected alice_grief_001 in top 5
          📊 Precision@5: 0.0% — hit: [], missed: [alice_grief_001]
          📋 Actual top 5: [alice_calm_001, alice_stress_001, alice_mixed_emotion_001, alice_coffee_004_correction, alice_emotion_change_001]
      
      
      ✅ ALL THRESHOLDS PASSED

      at Object.<anonymous> (benchmark/recall-benchmark-dream.e2e-spec.ts:244:15)

    console.log
      Report saved: /home/runner/work/engram/engram/test/benchmark/results/benchmark-2026-06-01T13-08-34-635Z.json

      at Object.<anonymous> (benchmark/recall-benchmark-dream.e2e-spec.ts:247:15)

    console.warn
      ⚠️  2 zero-hit queries (tracked, not blocking): emotional_001, emotional_002

    �[0m �[90m 198 |�[39m   �[90m// Zero-hit queries are tracked as warnings — P@5 threshold is the hard gate.�[39m
     �[90m 199 |�[39m   �[36mif�[39m (zeroHitQueries�[33m.�[39mlength �[33m>�[39m �[35m0�[39m) {
    �[31m�[1m>�[22m�[39m�[90m 200 |�[39m     console�[33m.�[39mwarn(
     �[90m     |�[39m             �[31m�[1m^�[22m�[39m
     �[90m 201 |�[39m       �[32m`⚠️  ${zeroHitQueries.length} zero-hit queries (tracked, not blocking): ${zeroHitQueries.map((q) => q.queryId).join(', ')}`�[39m�[33m,�[39m
     �[90m 202 |�[39m     )�[33m;�[39m
     �[90m 203 |�[39m   }�[0m

      at checkThresholds (benchmark/scoring.ts:200:13)
      at buildReport (benchmark/scoring.ts:181:23)
      at Object.<anonymous> (benchmark/recall-benchmark-dream.e2e-spec.ts:293:33)

    console.warn
      ⚠️  Zero-hit queries after dream cycle (2): emotional_001, emotional_002

    �[0m �[90m 303 |�[39m       �[36mif�[39m (zeroHitQueries�[33m.�[39mlength �[33m>�[39m �[35m0�[39m) {
     �[90m 304 |�[39m         �[36mconst�[39m ids �[33m=�[39m zeroHitQueries�[33m.�[39mmap((q) �[33m=>�[39m q�[33m.�[39mqueryId)�[33m.�[39mjoin(�[32m', '�[39m)�[33m;�[39m
    �[31m�[1m>�[22m�[39m�[90m 305 |�[39m         console�[33m.�[39mwarn(
     �[90m     |�[39m                 �[31m�[1m^�[22m�[39m
     �[90m 306 |�[39m           �[32m`⚠️  Zero-hit queries after dream cycle (${zeroHitQueries.length}): ${ids}`�[39m�[33m,�[39m
     �[90m 307 |�[39m         )�[33m;�[39m
     �[90m 308 |�[39m       }�[0m

      at Object.<anonymous> (benchmark/recall-benchmark-dream.e2e-spec.ts:305:17)

[13:09:28.119] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3270
[13:09:30.739] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2608
[13:09:34.236] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3487
[13:09:35.471] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1229
[13:09:36.893] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1417
[13:09:39.452] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2553
[13:09:43.099] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3643
[13:09:44.402] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1298
[13:09:45.979] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1571
[13:09:47.638] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1654
[13:09:47.755] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 111
[13:09:50.048] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2289
[13:09:51.395] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1342
[13:09:52.267] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 863
[13:09:54.470] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2196
[13:09:56.093] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1619
[13:09:58.171] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2074
[13:10:02.852] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4674
[13:10:06.900] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4044
[13:10:09.264] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2360
[13:10:14.911] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5642
[13:10:20.149] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5233
[13:10:25.918] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5762
[13:10:27.649] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1726
[13:10:28.131] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 478
[13:10:28.579] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 444
[13:10:29.655] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1067
[13:10:31.262] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1604
[13:10:33.531] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2265
[13:10:34.500] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 966
[13:10:35.424] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 919
[13:10:39.679] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4251
[13:10:39.755] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 71
[13:10:39.807] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 49
[13:10:42.276] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2466
[13:10:44.182] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1903
[13:10:45.329] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1144
[13:10:46.971] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1639
[13:10:48.042] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1067
[13:10:49.267] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1221
[13:10:50.455] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1183
[13:10:52.765] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2307
[13:10:54.150] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1381
[13:10:55.293] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1140
[13:10:56.537] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1241
[13:10:59.279] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2738
[13:11:02.127] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2845
[13:11:04.039] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1907
[13:11:06.323] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2280
[13:11:07.515] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1189
[13:11:08.833] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1315
[13:11:11.754] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2918
[13:11:13.111] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1350
[13:11:14.079] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 964
[13:11:15.284] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1201
[13:11:16.066] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 778
[13:11:16.838] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 767
[13:11:26.947] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10105
[13:11:37.165] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10208
[13:11:47.311] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10141
[13:11:58.305] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10981
[13:12:08.569] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10256
[13:12:18.827] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10252
[13:12:29.004] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10165
[13:12:36.868] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 7856
[13:12:38.770] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1898
[13:12:40.572] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1798
[13:12:42.283] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1707
[13:12:43.023] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 736
[13:12:46.279] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3252
[13:12:49.089] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2807
[13:12:50.015] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 922
[13:12:52.914] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2895
[13:12:54.309] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1390
[13:12:55.365] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1053
[13:12:57.413] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2044
[13:13:01.242] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3826
[13:13:02.224] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 977
[13:13:03.177] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 949
[13:13:03.948] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319317027"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 766
PASS test/benchmark/recall-benchmark.e2e-spec.ts (269.322 s)
  ● Console

    console.warn
      ⚠️  1 zero-hit queries (tracked, not blocking): emotional_001

    �[0m �[90m 198 |�[39m   �[90m// Zero-hit queries are tracked as warnings — P@5 threshold is the hard gate.�[39m
     �[90m 199 |�[39m   �[36mif�[39m (zeroHitQueries�[33m.�[39mlength �[33m>�[39m �[35m0�[39m) {
    �[31m�[1m>�[22m�[39m�[90m 200 |�[39m     console�[33m.�[39mwarn(
     �[90m     |�[39m             �[31m�[1m^�[22m�[39m
     �[90m 201 |�[39m       �[32m`⚠️  ${zeroHitQueries.length} zero-hit queries (tracked, not blocking): ${zeroHitQueries.map((q) => q.queryId).join(', ')}`�[39m�[33m,�[39m
     �[90m 202 |�[39m     )�[33m;�[39m
     �[90m 203 |�[39m   }�[0m

      at checkThresholds (benchmark/scoring.ts:200:13)
      at buildReport (benchmark/scoring.ts:181:23)
      at Object.<anonymous> (benchmark/recall-benchmark.e2e-spec.ts:144:33)

    console.log
      
      ╔══════════════════════════════════════════════════════════════╗
      ║              ENGRAM RECALL BENCHMARK REPORT                 ║
      ╚══════════════════════════════════════════════════════════════╝
      
        Git SHA:    47e93d9
        Branch:     HEAD
        Timestamp:  2026-06-01T13:13:03.977Z
      
      ┌─────────────────────────────────────────────────────────────┐
      │  OVERALL SCORES                                            │
      ├─────────────────────────────────────────────────────────────┤
      │  Total Queries:   81                                        │
      │  Passed:          80 / 81 (98.8%)                                        
      │  Precision@5:     98.1%  ✅  (threshold: 70%)
      │  Recall@20:       97.5%
      │  MRR:             0.9224
      │  Isolation:       100.0%  ✅  (threshold: 100%)
      └─────────────────────────────────────────────────────────────┘
      
      ┌──────────────────┬───────┬────────┬──────────┬──────────┬──────────┬───────────┐
      │ Category         │ Total │ Passed │ Prec@5   │ Rec@20   │ MRR      │ Isolation │
      ├──────────────────┼───────┼────────┼──────────┼──────────┼──────────┼───────────┤
      │ adversarial      │ 10    │ 10     │ 100.0%   │ 100.0%   │ 1.0000   │ 100.0%    │
      │ cross_feature    │ 10    │ 10     │ 100.0%   │ 100.0%   │ 1.0000   │ 100.0%    │
      │ edge_case        │ 16    │ 16     │ 100.0%   │ 100.0%   │ 0.9479   │ 100.0%    │
      │ emotional        │ 10    │ 9      │ 85.0%    │ 100.0%   │ 0.7885   │ 100.0%    │
      │ rls_isolation    │ 10    │ 10     │ 100.0%   │ 100.0%   │ 0.9500   │ 100.0%    │
      │ semantic         │ 14    │ 14     │ 100.0%   │ 100.0%   │ 0.8988   │ 100.0%    │
      │ temporal         │ 11    │ 11     │ 100.0%   │ 81.8%    │ 0.8712   │ 100.0%    │
      └──────────────────┴───────┴────────┴──────────┴──────────┴──────────┴───────────┘
      
      ❌ FAILED QUERIES (1):
      
        [emotional_001] "What makes me happy?" (user: alice)
          ⚠️  ZERO HITS: expected alice_joy_001 in top 5
          📊 Precision@5: 0.0% — hit: [], missed: [alice_joy_001]
          📋 Actual top 5: [alice_pride_001, alice_calm_001, alice_mixed_emotion_001, alice_cooking_001, alice_identity_project_001]
      
      
      ✅ ALL THRESHOLDS PASSED

      at Object.<anonymous> (benchmark/recall-benchmark.e2e-spec.ts:147:15)

    console.log
      📁 Report saved: /home/runner/work/engram/engram/test/benchmark/results/benchmark-2026-06-01T13-13-03-982Z.json

      at Object.<anonymous> (benchmark/recall-benchmark.e2e-spec.ts:151:15)

    console.warn
      ⚠️  1 zero-hit queries (tracked, not blocking): emotional_001

    �[0m �[90m 198 |�[39m   �[90m// Zero-hit queries are tracked as warnings — P@5 threshold is the hard gate.�[39m
     �[90m 199 |�[39m   �[36mif�[39m (zeroHitQueries�[33m.�[39mlength �[33m>�[39m �[35m0�[39m) {
    �[31m�[1m>�[22m�[39m�[90m 200 |�[39m     console�[33m.�[39mwarn(
     �[90m     |�[39m             �[31m�[1m^�[22m�[39m
     �[90m 201 |�[39m       �[32m`⚠️  ${zeroHitQueries.length} zero-hit queries (tracked, not blocking): ${zeroHitQueries.map((q) => q.queryId).join(', ')}`�[39m�[33m,�[39m
     �[90m 202 |�[39m     )�[33m;�[39m
     �[90m 203 |�[39m   }�[0m

      at checkThresholds (benchmark/scoring.ts:200:13)
      at buildReport (benchmark/scoring.ts:181:23)
      at Object.<anonymous> (benchmark/recall-benchmark.e2e-spec.ts:172:33)

    console.warn
      ⚠️  Zero-hit queries (1): emotional_001

    �[0m �[90m 194 |�[39m         �[36mif�[39m (zeroHitQueries�[33m.�[39mlength �[33m>�[39m �[35m0�[39m) {
     �[90m 195 |�[39m           �[36mconst�[39m ids �[33m=�[39m zeroHitQueries�[33m.�[39mmap((q) �[33m=>�[39m q�[33m.�[39mqueryId)�[33m.�[39mjoin(�[32m', '�[39m)�[33m;�[39m
    �[31m�[1m>�[22m�[39m�[90m 196 |�[39m           console�[33m.�[39mwarn(
     �[90m     |�[39m                   �[31m�[1m^�[22m�[39m
     �[90m 197 |�[39m             �[32m`⚠️  Zero-hit queries (${zeroHitQueries.length}): ${ids}`�[39m�[33m,�[39m
     �[90m 198 |�[39m           )�[33m;�[39m
     �[90m 199 |�[39m         }�[0m

      at Object.<anonymous> (benchmark/recall-benchmark.e2e-spec.ts:196:19)


Test Suites: 2 passed, 2 total
Tests:       168 passed, 168 total
Snapshots:   0 total
Time:        547.63 s
Ran all test suites matching benchmark.
Force exiting Jest: Have you considered using `--detectOpenHandles` to detect async operations that kept running after all tests finished?

Full output

> engram@1.5.0 benchmark /home/runner/work/engram/engram
> jest --config ./test/jest-e2e.json --testPathPatterns=benchmark --runInBand --forceExit

�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-25: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-25: Timeline LOD generation failed for 2026-05-25: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-26: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-26: Timeline LOD generation failed for 2026-05-26: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-27: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-27: Timeline LOD generation failed for 2026-05-27: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-28: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-28: Timeline LOD generation failed for 2026-05-28: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-29: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-29: Timeline LOD generation failed for 2026-05-29: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-30: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-30: Timeline LOD generation failed for 2026-05-30: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[TimelineLodService] �[39m�[31mFailed to generate timeline LOD for 2026-05-31: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:52 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleTimelineSynthesisStage] �[39m�[31mTimeline synthesis failed for default on 2026-05-31: Timeline LOD generation failed for 2026-05-31: Cannot read properties of undefined (reading 'json')�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39mTypeError: Cannot read properties of undefined (reading 'json')
    at LLMService.json �[90m(/home/runner/work/engram/engram/�[39msrc/llm/llm.service.ts:169:21�[90m)�[39m
    at ConsolidationService.extractGist �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:399:37�[90m)�[39m
    at ConsolidationService.promoteRecurringPatterns �[90m(/home/runner/work/engram/engram/�[39msrc/memory/consolidation.service.ts:172:49�[90m)�[39m
�[90m    at processTicksAndRejections (node:internal/process/task_queues:95:5)�[39m
    at DreamCyclePatternsStage.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/stages/dream-cycle-patterns.stage.ts:41:20�[90m)�[39m
    at DreamCycleService.runInternal �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:469:33�[90m)�[39m
    at DreamCycleService.run �[90m(/home/runner/work/engram/engram/�[39msrc/consolidation/dream-cycle.service.ts:156:14�[90m)�[39m
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCyclePatternsStage] �[39m�[31m[DreamCycle:Patterns] Pattern extraction failed for cluster�[39m
TypeError: Cannot read properties of undefined (reading 'json')
�[31m[Nest] 3343  - �[39m06/01/2026, 1:04:54 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleService] �[39m�[31mIdentity stage failed: Cannot read properties of undefined (reading 'chat')�[39m
[13:04:55.303] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3843
[13:04:55.317] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 8
[13:04:55.325] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5
[13:04:55.332] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5
[13:04:55.340] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5
[13:04:58.322] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2967
[13:05:01.281] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2952
[13:05:06.639] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5352
[13:05:08.103] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1451
[13:05:10.205] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2093
[13:05:14.523] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4307
[13:05:20.339] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5806
[13:05:22.553] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2207
[13:05:25.233] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2673
[13:05:27.853] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2614
[13:05:32.362] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4504
[13:05:34.570] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2202
[13:05:35.829] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1255
[13:05:36.532] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 699
[13:05:38.520] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1982
[13:05:40.084] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1559
[13:05:42.024] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1933
[13:05:45.306] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3278
[13:05:47.554] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2243
[13:05:48.726] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1167
[13:05:52.202] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3471
[13:05:55.158] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2951
[13:05:58.375] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3208
[13:05:59.440] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1059
[13:05:59.886] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 438
[13:06:00.316] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 425
[13:06:01.439] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1115
[13:06:03.166] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1719
[13:06:05.409] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2240
[13:06:06.250] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 836
[13:06:07.265] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1009
[13:06:11.407] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4137
[13:06:11.473] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 62
[13:06:11.606] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 129
[13:06:14.067] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2447
[13:06:15.790] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1715
[13:06:16.890] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1094
[13:06:18.341] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1444
[13:06:19.464] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1117
[13:06:20.741] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1273
[13:06:21.884] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1138
[13:06:24.182] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2294
[13:06:25.630] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1444
[13:06:26.790] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1156
[13:06:27.887] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1093
[13:06:30.671] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2780
[13:06:33.460] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2786
[13:06:35.230] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1767
[13:06:37.278] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2042
[13:06:38.452] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1170
[13:06:39.738] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1280
[13:06:42.508] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2766
[13:06:43.723] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1212
[13:06:44.703] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 976
[13:06:45.730] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1023
[13:06:46.461] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 727
[13:06:47.265] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 800
[13:06:57.369] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10100
[13:07:07.512] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10139
[13:07:17.654] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10124
[13:07:28.427] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10768
[13:07:38.677] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10242
[13:07:48.946] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10259
[13:07:59.128] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10173
[13:08:08.773] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 9640
[13:08:10.541] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1762
[13:08:12.163] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1617
[13:08:13.814] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1644
[13:08:14.493] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 670
[13:08:17.456] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2957
[13:08:20.249] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2789
[13:08:21.267] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1010
[13:08:24.192] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2919
[13:08:25.453] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1256
[13:08:26.623] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1163
[13:08:28.569] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1942
[13:08:32.112] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3537
[13:08:33.041] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 921
[13:08:33.852] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 804
[13:08:34.599] �[32mINFO�[39m (3343): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780319044839"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 742
PASS test/benchmark/recall-benchmark-dream.e2e-spec.ts (277.996 s)
  

Commit: 47e93d9

@heybeaux heybeaux merged commit 84ea0b2 into staging Jun 1, 2026
9 of 10 checks passed
@heybeaux heybeaux deleted the chore/align-staging-with-production-20260601 branch June 1, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants