gmodules1 Consolidation Progress

Status of absorbing gmodules1 best work into gspace1

gmodules1 Consolidation Progress

Overview

gmodules1 (gograb-modules monorepo) contains module generation tools, mock APIs, and configuration systems. Per Session 136, the best work is being absorbed into gspace1 (this monorepo) with updates to use our real APIs. gmodules1 code remains untouched.

Library Comparison Results

mock-api (libs/core/mock-api)

Aspect gspace1 gmodules1 Winner
HTTP interceptor Identical Identical Tie
Data generators Identical Identical Tie
Persistence IndexedDB/LS/Memory IndexedDB/LS/Memory Tie
generateId() substring() (modern) substr() (deprecated) gspace1
Error handling Better (randomElement validation) No validation gspace1

Decision: Keep gspace1 version. It uses modern APIs and has better error handling.

module-config (libs/core/module-config)

Aspect gspace1 gmodules1 Winner
AppUiConfiguration Basic (6 fields) Extended (10+ fields with scenario, pages, modules, theme) gmodules1
Signals 4 signals 9 signals (adds pagesConfig, enabledModules, themeConfig, scenarioConfig) gmodules1
RBAC filtering Identical Identical Tie
Tenant customization Identical Identical Tie
API validation None isConfigurationUsable() validates before using gmodules1
Fallback logic None Enrichment methods (nav/dashboard/modules from registry) gmodules1
Widget resolution None resolveWidgetComponentTypes() gmodules1
AI generation tracking None generatedFrom?: AIGenerationMetadata gmodules1

Decision: Port gmodules1's extended features into gspace1's module-config. Key additions:

  1. Extended AppUiConfiguration interface (scenario, pages, modules, theme)
  2. Additional signals (pagesConfig, enabledModules, themeConfig, scenarioConfig)
  3. API config validation (isConfigurationUsable)
  4. Enrichment fallback methods
  5. Widget component type resolution

App Disposition

gmodules1 App Status Notes
ai-gateway Skip (absorb patterns into backend-vitto-api) Phase 7
gograb-admin Skip Covered by gspace1's gograb-space and gograb-admin apps
gograb-mcp-server Skip Covered by gspace1's MCP infrastructure
gograb-admin-e2e Skip E2E tests for skipped app
claude-agent-mcp Skip Evaluate if any capabilities are needed

Patterns to Port (into backend-vitto-api, Phase 7)

Pattern Source Target Status
Template registry system ai-gateway/templates/ backend-vitto-api/module-generation/ Pending (Phase 7)
Phase-based workflow ai-gateway/modules.service.ts backend-vitto-api/module-generation/ Pending (Phase 7)
Multi-provider LLM abstraction ai-gateway/providers/ Evaluate if backend-ai-api needs this Pending (Phase 7)
Checkpoint/recovery system ai-gateway/context/ backend-vitto-api/module-generation/ Pending (Phase 7)

Demo Modules to Port (as test fixtures)

Module Source Target Status
restaurant-core gmodules1/modules/restaurant-core/ gspace1/libs/modules/examples/ Pending
menu-management gmodules1/modules/menu-management/ gspace1/libs/modules/examples/ Pending
order-management gmodules1/modules/order-management/ gspace1/libs/modules/examples/ Pending
reservation-system gmodules1/modules/reservation-system/ gspace1/libs/modules/examples/ Pending
billing-system gmodules1/modules/billing-system/ gspace1/libs/modules/examples/ Pending

Core Library Disposition

gmodules1 Library Action Notes
mock-api Keep gspace1 version gspace1 is more modern
module-config Port gmodules1 features to gspace1 Extended AppUiConfiguration
module-base Keep gspace1 version (73 files, tests) gspace1 is more mature
module-integrator Keep gspace1 version (8-layer architecture) gspace1 is more mature
action-registry Keep gspace1 version Identical
data-access Keep gspace1 version Identical
data-binding Keep gspace1 version Identical
event-system Keep gspace1 version Identical
log-system Keep gspace1 version Identical
security Keep gspace1 version gspace1 has real auth
shared-models Keep gspace1 version Identical
ui-framework Keep gspace1 version gspace1 has @libs-ux
utilities Keep gspace1 version Identical
user-management Skip gspace1 has real user management via backend-api
widget-system Skip gspace1 has @libs-widgets
storage-system Keep gspace1 version gspace1 has @storage-system