Skip to content

chore: staging → production sync (2026-06-01)#277

Merged
heybeaux merged 116 commits into
productionfrom
sync/staging-to-production-20260601
Jun 1, 2026
Merged

chore: staging → production sync (2026-06-01)#277
heybeaux merged 116 commits into
productionfrom
sync/staging-to-production-20260601

Conversation

@heybeaux

@heybeaux heybeaux commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Summary

Conflict Resolutions

Add/Add conflicts (21 files) — took staging version

All 21 were *.controller.spec.ts files independently created on both branches. Staging is downstream and contains the superset tests.

Files Resolution
src/agent-session/agent-session.controller.spec.ts staging
src/analytics/analytics.controller.spec.ts staging
src/anticipatory/feedback/feedback.controller.spec.ts staging
src/auto/auto.controller.spec.ts staging
src/awareness/awareness-source.controller.spec.ts staging
src/cloud-link/cloud-link.controller.spec.ts staging
src/consolidation/consolidation.controller.spec.ts staging
src/dashboard/dashboard.controller.spec.ts staging
src/delegation/task.controller.spec.ts staging
src/delegation/template.controller.spec.ts staging
src/embedding/embedding-proxy.controller.spec.ts staging
src/eval/eval.controller.spec.ts staging
src/fog-index/fog-index.controller.spec.ts staging
src/health/embedding-retry.service.spec.ts staging
src/memory-pool/memory-pool.controller.spec.ts staging
src/memory/memory-bulk.controller.spec.ts staging
src/monitoring/monitoring.controller.spec.ts staging
src/scoped-context/scoped-context.controller.spec.ts staging
src/session-indexing/session-indexing.controller.spec.ts staging
src/summarization/summarization.controller.spec.ts staging
src/teams/teams.controller.spec.ts staging

Content conflicts (15 files)

File Resolution Why
src/consolidation/dream-cycle.queue.ts staging Staging adds ARCHIVAL stage and its 600s timeout (ENG-123)
src/consolidation/dream-cycle-queue.processor.ts staging Staging adds DreamCycleArchivalStage import, constructor injection, dispatch case, and extractRowsTouched case; production had only a formatting difference (remainingLlm split)
src/consolidation/dream-cycle-queue.processor.spec.ts staging Staging uses multiline formatting and has consolidationStage typed without as any
src/consolidation/dream-cycle-queue.producer.ts staging Staging adds ARCHIVAL node between IDENTITY and REPORT in the BullMQ DAG
src/consolidation/dream-cycle-queue.producer.spec.ts staging Staging uses multiline formatting
src/consolidation/dream-cycle-scheduler.service.spec.ts staging Staging uses multiline formatting; production had a stray trailing space
src/consolidation/dream-cycle.service.ts staging Staging adds DreamCycleImportanceRescoreStage and DreamCycleArchivalStage imports + constructor params
src/cloud-sync/cloud-sync.service.spec.ts staging Formatting only (multiline mock.mockResolvedValue)
src/embedding/cloud-ensemble-embed.provider.ts staging Formatting only (multiline .map().join())
src/embedding/embedding.service.ts staging Formatting only (multiline import)
src/embedding/local-embed.provider.ts staging Staging uses single-line fetch(url, opts) — functionally identical to production's multiline
src/embedding/local-embed.provider.spec.ts staging Critical: staging adds dimension-validation tests and uses correct 768-D vectors; production had [0.1, 0.2] 2-D assertions which would fail validation at runtime
src/memory/memory-query.service.spec.ts staging Staging adds two new recall-filter edge-case tests (insight layer exclusion + filter propagation to insight lookup)
src/reembedding/reembedding.service.ts staging Formatting only
src/reembedding/reembedding.service.spec.ts staging Staging adds create field to upsert assertion (both update and create must match)

Safety checks

🤖 Generated with Claude Code

beaux-riel and others added 30 commits March 2, 2026 04:47
Architecture watchdog (2026-03-04) detected 10 undocumented modules.
Added: identity (65 files/11k lines), awareness (29 files/6k lines),
anticipatory, cloud-link, cloud-sync, delegation, challenge,
inbound-email, instance, queue, teams, session-indexing.

Also added file/line counts from watchdog for all modules and
noted known large-file candidates for future refactoring.
- 52 modules (was 50): added agent-recall, entity-profile
- Updated file counts and line counts across all modules
- Updated known architecture notes with current large file sizes
- Notable growth: memory (58→63 files), consolidation (24→33 files),
  anticipatory (18→19 files), health (6→9 files)
…raction

- Add v07-backfill.spec.ts: tests for P2002 duplicate handling, memory attribution,
  disconnect-on-error, and agentSession upsert logic
- Add backfill-graph-extraction.spec.ts: tests for parseArgs CLI parsing,
  batch chunking logic, stats accumulation, and dry-run mode
- Covers the scripts module which was the only untested module (55 modules total)

Refs: architecture-watchdog 2026-03-10
…sub-files

Split into:
- topic-keyword-rules.ts (302 lines) — KEYWORD_RULES constant
- topic-definitions-personal.ts (269 lines) — personal/professional topics
- topic-definitions-system.ts (178 lines) — health/identity/agent topics
- topic-helpers.ts (52 lines) — helper functions
- topic-taxonomy.ts (30 lines) — backward-compatible barrel re-export

All 167 prefetch tests passing. No public API changes.
28 tests covering calculateWeight (logarithmic curve), updateWeight
(create/upsert/error paths), applyWeights (topic matching, boost logic,
edge cases), and getWeights. All mocked with jest.

Closes test gap: src/identity/experience-weighted-recall.service.ts
19 tests covering isEnabled, expandQuery (happy path, defaults, validation,
error handling), getRulesInfo, and testExpansion (all strategies, fallback
on failure, result mapping). All mocked with jest.
19 tests covering syncBatchToCloud (header auth, counts, cloudSyncedAt marking,
HTTP error handling for 401/403/429/500, contentHash generation, extraction
payload, resilient prisma update failure) and performSyncWithClient (progress
tracking, abort signal, single batch, auth stop, error accumulation).
These 3 spec files were generated against staging (Prisma v7) patterns and
merged into main which is still on Prisma v6. They cannot compile on main:
- cloud-sync-push.service.spec.ts: uses prisma.memory.update (v7 style)
- entity-semantic.service.spec.ts: missing service file (v7 migration)
- experience-weighted-recall.service.spec.ts: prisma.experienceWeight (v7)

These will be re-added when main is upgraded to Prisma v7.
…ool, auto, anticipatory/feedback, cloud-link controllers + cloud-link-mapping service (#205)
…ck errors (#208)

ROOT CAUSE: runJob() inherits the AsyncLocalStorage context of the triggering
HTTP request via rlsContext. By the time getMemoriesForEnrichment() runs
(after the HTTP response is sent), the RLS Prisma transaction has already
committed and closed. Any DB query in the async callback throws:
  'Transaction already closed: A query cannot be executed on a committed transaction'

FIX: Wrap runJob() call in rlsContext.run(undefined, ...) to explicitly clear
the ALS context before the async job starts. DB calls in the job then use
the raw PrismaService (no closed transaction context).

ALSO:
- Log full error string in job failure handler (pino was dropping Error objects)
- CloudEnsembleEmbedProvider.healthCheck: lazy-init if not available, log
  per-model errors from embedAll response
- Better error message with hint to check API keys and quota
heybeaux and others added 23 commits May 22, 2026 06:38
ConfigService returns env vars as strings — `embedding.length !== this.dimensions`
evaluated `384 !== "384"` → strict-equality fail → "expected 384, got 384" error →
5 failures → circuit breaker opens → 500s on every embed call.

Coerce via Number() with a positive-integer guard so misconfig fails loudly at
boot instead of silently breaking embeddings at runtime.

Regression tests added (15/15 pass).

Co-authored-by: heybeaux <beaux.walton@gmail.com>
Merge origin/production into staging-based branch to reconcile staging
and production. Resolved 36 conflicts (21 add/add, 15 content).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4493435c-2055-47b6-8c45-04e382cf030f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/staging-to-production-20260601

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

✅ Recall Benchmark Results

╔══════════════════════════════════════════════════════════════╗
      ║              ENGRAM RECALL BENCHMARK REPORT                 ║
      ╚══════════════════════════════════════════════════════════════╝
      
        Git SHA:    d22022d
        Branch:     HEAD
        Timestamp:  2026-06-01T14:25:45.970Z
      
      ┌─────────────────────────────────────────────────────────────┐
      │  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-01T14-25-45-983Z.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)

[14:26:34.820] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2891
[14:26:37.331] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2503
[14:26:41.036] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3696
[14:26:42.047] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1007
[14:26:43.423] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1371
[14:26:45.766] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2338
[14:26:49.479] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3708
[14:26:50.645] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1162
[14:26:52.117] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1467
[14:26:53.633] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1509
[14:26:53.754] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 117
[14:26:55.973] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2216
[14:26:57.162] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1185
[14:26:57.871] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 704
[14:26:59.846] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1970
[14:27:01.445] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1595
[14:27:03.273] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1823
[14:27:06.401] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3120
[14:27:08.546] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2136
[14:27:09.787] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1237
[14:27:12.874] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3083
[14:27:15.795] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2918
[14:27:19.082] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3283
[14:27:20.204] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1119
[14:27:20.594] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 386
[14:27:20.991] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 393
[14:27:21.830] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 835
[14:27:23.542] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1706
[14:27:25.629] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2083
[14:27:26.502] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 869
[14:27:27.384] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 878
[14:27:31.018] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3630
[14:27:31.083] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 58
[14:27:31.137] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 50
[14:27:33.435] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2295
[14:27:35.203] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1764
[14:27:36.107] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 901
[14:27:37.658] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1547
[14:27:38.761] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1100
[14:27:39.869] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1103
[14:27:40.878] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1006
[14:27:42.870] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1988
[14:27:44.228] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1351
[14:27:45.238] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1006
[14:27:46.208] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 966
[14:27:48.914] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2702
[14:27:51.614] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2696
[14:27:53.536] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1918
[14:27:55.627] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2087
[14:27:56.763] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1132
[14:27:58.094] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1327
[14:28:00.764] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2662
[14:28:01.905] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1138
[14:28:02.768] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 860
[14:28:03.846] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1073
[14:28:04.486] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 636
[14:28:05.300] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 810
[14:28:15.395] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10092
[14:28:25.617] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10206
[14:28:35.743] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10118
[14:28:46.210] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10453
[14:28:56.395] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10176
[14:29:06.559] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10158
[14:29:16.788] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 10221
[14:29:25.124] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 8329
[14:29:26.898] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1770
[14:29:28.623] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1720
[14:29:30.269] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1642
[14:29:30.928] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 656
[14:29:33.838] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2906
[14:29:36.591] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2749
[14:29:37.473] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 878
[14:29:40.183] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2706
[14:29:41.451] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1264
[14:29:42.528] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1073
[14:29:44.385] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1854
[14:29:47.813] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3424
[14:29:48.679] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 862
[14:29:49.581] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 898
[14:29:50.280] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323948509"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 693
PASS test/benchmark/recall-benchmark.e2e-spec.ts (244.223 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:    d22022d
        Branch:     HEAD
        Timestamp:  2026-06-01T14:29:50.309Z
      
      ┌─────────────────────────────────────────────────────────────┐
      │  OVERALL SCORES                                            │
      ├─────────────────────────────────────────────────────────────┤
      │  Total Queries:   81                                        │
      │  Passed:          80 / 81 (98.8%)                                        
      │  Precision@5:     98.1%  ✅  (threshold: 70%)
      │  Recall@20:       97.5%
      │  MRR:             0.9163
      │  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.8631   │ 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-01T14-29-50-313Z.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:        505.12 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:19 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 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] 3327  - �[39m06/01/2026, 2:22:21 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleService] �[39m�[31mIdentity stage failed: Cannot read properties of undefined (reading 'chat')�[39m
[14:22:22.651] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3760
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[ConsolidationService] �[39m�[31m[Consolidation] Gist extraction failed:�[39m
�[31m[Nest] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 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] 3327  - �[39m06/01/2026, 2:22:23 PM �[31m  ERROR�[39m �[38;5;3m[DreamCycleService] �[39m�[31mIdentity stage failed: Cannot read properties of undefined (reading 'chat')�[39m
[14:22:24.387] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1730
[14:22:24.395] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-carol-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 5
[14:22:24.402] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4
[14:22:24.409] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/consolidation/dream-cycle"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 4
[14:22:27.209] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2789
[14:22:29.374] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2158
[14:22:32.522] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3141
[14:22:33.519] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 991
[14:22:34.769] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1244
[14:22:37.063] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2290
[14:22:40.497] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3429
[14:22:41.578] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1075
[14:22:43.136] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1553
[14:22:44.832] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1692
[14:22:48.727] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3890
[14:22:50.853] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2123
[14:22:51.988] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1132
[14:22:52.645] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-eve-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 653
[14:22:54.452] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1803
[14:22:56.107] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1651
[14:22:57.967] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1853
[14:23:01.053] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3079
[14:23:03.203] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2144
[14:23:04.511] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1301
[14:23:07.336] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2818
[14:23:09.973] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2632
[14:23:12.854] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2876
[14:23:13.904] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1045
[14:23:14.309] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 398
[14:23:14.705] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 391
[14:23:15.612] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 901
[14:23:17.039] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1423
[14:23:19.038] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1991
[14:23:19.988] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 935
[14:23:20.856] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 862
[14:23:24.796] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 3935
[14:23:24.867] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 65
[14:23:24.926] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-dave-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 56
[14:23:27.248] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 2318
[14:23:28.930] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-alice-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 1678
[14:23:29.864] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35maccountId�[39m: "eng_test..."
    �[35muserId�[39m: "test-corpus-user-bob-1780323693403"
    �[35mres�[39m: {
      "statusCode": 201
    }
    �[35mresponseTime�[39m: 930
[14:23:31.181] �[32mINFO�[39m (3327): �[36mrequest completed�[39m
    �[35mreq�[39m: {
      "method": "POST",
      "url": "/v1/memories/query"
    }
    �[35m

Commit: d22022d

@heybeaux heybeaux requested a review from beaux-riel June 1, 2026 14:30
@heybeaux heybeaux enabled auto-merge (squash) June 1, 2026 14:30
@heybeaux heybeaux merged commit 5eb426f into production Jun 1, 2026
4 checks passed
@heybeaux heybeaux deleted the sync/staging-to-production-20260601 branch June 1, 2026 14:31
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