Bugfix: Why do universe document _id and collection name prefixes mi...

Documentation for Sessions

🐛 Bugfix: Why do universe document _id and collection name prefixes mi...

Date: 2026-03-16
Time: 16:55:06 UTC
Session: gspace1-225.5
Agent: angular
Confidence: 95%
Status: ✅ Documented


📋 Decision Context

Question:

Why do universe document _id and collection name prefixes mismatch (wly1ktx vs w1y1ktx)?

Task: Not specified


🎯 Decision Made

Chosen:

Pass universeId as REQUIRED parameter in ALL generation requests. StudioVittoBridgeService.generateModule() and generatePlatform() now require universeId. CrudGeneratorService uses project.universeId instead of spaceId fallback.

Options Considered:

  1. Deduplicate Math.random ID generation into a single utility — partial fix, doesn't prevent omission
  2. Add backend validation that universeId matches existing doc — defense in depth but doesn't fix root
  3. Make universeId REQUIRED in generation API contracts (chosen) — prevents the mismatch at source
  4. Use deterministic IDs (hash-based) — would prevent randomness but doesn't fix the missing parameter

💭 Reasoning

Root cause chain: (A) StudioVittoBridgeService.generateModule() did NOT pass universeId to backend. (B) CrudGeneratorService line 39 used spaceId AS universeId: 'const universeId = spaceId'. (C) Universe IDs generated by Math.random().toString(36).substring(2,9) — two calls at different times produce different suffixes. (D) Without universeId in the request, BackendSetupPhase either skipped collection creation or used a regenerated ID. Result: universe doc _id='w1y1ktx' but collections created under 'wly1ktx'. Fix ensures single source of truth: universe _id from project context flows through every generation request unchanged.


📁 Files Involved


🔗 Related


Auto-generated by MCP Smart Consolidation