292 293 Technical Summary

Documentation for Sessions

S292-293: Technical Summary — Vitto Capability System

Date: 2026-03-31 | Branch: session-290-299 | Status: Phase 1+2 complete, pending commit


Security Audit Findings (S292)

Backend-ai-api (port 3001) — CRITICAL

Backend-vitto-api (port 3003) — SERIOUS

Backend-api (port 3000) — SOLID WITH GAPS

Frontend — BINARY


Architecture Decisions

1. Capability Matrix (Single Source of Truth)

@libs-foundational/core-models/src/lib/capabilities/
├── capability.enum.ts      — VittoCapability (85 values, 9 categories)
├── capability.types.ts     — CapabilityDefinition, CapabilityOverride, CapabilityResolution
├── capability-matrix.ts    — CAPABILITY_MATRIX constant + CAPABILITY_MAP (O(1) lookup)
├── capability-resolver.ts  — resolveCapability(), hasCapability(), getAllCapabilities(), etc.
├── capability-resolver.spec.ts — 15 unit tests
├── __tests__/capability-matrix-integrity.spec.ts — 183 integrity tests
└── index.ts

2. Three-Decorator Model

Decorator Auth Capability Use
@Public() No No Health, auth, webhooks
@Authenticated() JWT No Own-data, chat, browsing
@RequireCapability(X) JWT Matrix+overrides Role-gated features

3. Three-Tier Override Resolution

userOverride > spaceOverride > matrixDefault
(non-overridable capabilities skip overrides entirely)

4. Guard Chain (APP_GUARD order)

UnifiedAuthGuard → RolesGuard → CapabilityGuard

CapabilityGuard skips if @Public, @Authenticated, or no @RequireCapability metadata (backward compat).


Implementation Inventory

Phase 1: Foundation (14 new files, 9 modified)

Pure Logic Layer:

Backend Guard Layer:

Frontend Signal Layer:

Critical Endpoint Enforcement (58 decorators):

Phase 2: Feature Wiring (7 new files, 4 modified)

Mind Features Controller (10 endpoints):

Override Storage:

Frontend Migration:


Test Coverage

Suite Tests What it covers
capability-resolver.spec.ts 15 Matrix-only checks, 3-tier override, non-overridable, revocation
capability-matrix-integrity.spec.ts 183 Enum completeness, role validity, invariants, god mode, hierarchy
capability.guard.spec.ts 57 All 6 roles × key capabilities, edge cases, legacy normalization
Total 375

Bugs Found and Fixed

Bug Root Cause Fix
Legacy role denial JWT role: 'manager' not in PlatformRole — hasCapability() returned false normalizeToPlatformRole() in guard + service
Startup validator blind Reading Express handler metadata instead of NestJS controller prototypes Rewrote to use ModulesContainer + Reflect.getMetadata on prototypes
GDPR export unprotected GET /compliance/gdpr/export/:userId had no decorator Added @RequireCapability(GDPR_DELETE)
CapabilityDefinition.key typed as string No compile-time safety on matrix entries Changed to VittoCapability (enum)
Fragile category test Hardcoded string prefixes broke when capabilities added Matrix-derived assertions

Files Changed (Complete List)

New Files (21)

libs/libs-foundational/core-models/src/lib/capabilities/capability.types.ts
libs/libs-foundational/core-models/src/lib/capabilities/capability.enum.ts
libs/libs-foundational/core-models/src/lib/capabilities/capability-matrix.ts
libs/libs-foundational/core-models/src/lib/capabilities/capability-resolver.ts
libs/libs-foundational/core-models/src/lib/capabilities/capability-resolver.spec.ts
libs/libs-foundational/core-models/src/lib/capabilities/__tests__/capability-matrix-integrity.spec.ts
libs/libs-foundational/core-models/src/lib/capabilities/index.ts
libs/libs-api/auth-core/src/lib/decorators/authenticated.decorator.ts
libs/libs-api/auth-core/src/lib/decorators/capability.decorator.ts
libs/libs-api/auth-core/src/lib/guards/capability.guard.ts
libs/libs-api/auth-core/src/lib/guards/__tests__/capability.guard.spec.ts
libs/libs-api/auth-core/src/lib/validators/capability-validator.service.ts
libs/libs-foundational/auth-core/src/lib/role-access/role-access.service.ts
libs/libs-foundational/auth-core/src/lib/role-access/capability.guard.ts
libs/libs-foundational/auth-core/src/lib/role-access/index.ts
APIs/backend-vitto-api/src/app/mind/mind-features.controller.ts
APIs/backend-vitto-api/src/app/mind/schemas/capability-override.schema.ts
APIs/backend-vitto-api/src/app/engine/capability-override.service.ts
APIs/backend-vitto-api/src/app/engine/capability-override.controller.ts
libs/libs-ai/vitto-hub/src/lib/components/capability-matrix/capability-matrix-table.component.ts
libs/libs-ai/vitto-hub/src/lib/components/capability-matrix/capability-matrix-table.component.html
libs/libs-ai/vitto-hub/src/lib/components/capability-matrix/capability-matrix-table.component.scss
docs/english/sessions/S292/292-293-capability-system-progress-report.md
docs/english/sessions/S292/292-293-technical-summary.md
docs/superpowers/specs/2026-03-31-vitto-capability-system-and-enhancements-design.md
docs/superpowers/plans/2026-03-31-vitto-capability-system-phase1.md
docs/superpowers/plans/2026-03-31-vitto-capability-system-phase2.md

Modified Files (13)

libs/libs-foundational/core-models/src/lib/utils/index.ts
libs/libs-api/auth-core/src/lib/auth-core.module.ts
libs/libs-api/auth-core/src/index.ts
libs/libs-foundational/auth-core/src/index.ts
APIs/backend-vitto-api/src/app/security/vault.controller.ts
APIs/backend-vitto-api/src/app/security/security.controller.ts
APIs/backend-vitto-api/src/app/module-generation/module-generation.controller.ts
APIs/backend-vitto-api/src/app/engine/vitto.controller.ts
APIs/backend-vitto-api/src/app/engine/engine.module.ts
APIs/backend-vitto-api/src/app/mind/mind.module.ts
APIs/backend-ai-api/src/app/learning/learning.controller.ts
libs/libs-ai/vitto-hub/src/lib/routes/vitto-hub.routes.ts
libs/libs-ai/vitto-hub/src/lib/components/vitto-unified-shell/vitto-unified-shell.component.ts
apps/gograb-ai/src/app/app.routes.ts

Remaining Work (Phases 3-4)

Phase 3: Full Migration + Intelligence Layering

Phase 4: New Features + Strict Enforcement