feat(spaces): implement Phase 7 Composability

Implements space composition and inheritance features:
- SpaceReference model for space-to-space references (includes, extends, links_to, composed_of)
- Variable inheritance through parent chain with local override
- Config inheritance with source tracking
- Access control models (SpacePermission, SpaceRole, AccessLevel)
- InheritanceResolver for walking parent chains
- AccessControlService for permission management
- ComposableSpaceService integrating all composability features
- Circular reference detection for EXTENDS references
- SQLite repositories for references and permissions
- 57 comprehensive unit tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 17:41:40 +01:00
parent 7de57a389d
commit 727ce4d3c5
6 changed files with 2710 additions and 0 deletions

View File

@@ -60,6 +60,29 @@ from .events import (
reset_event_bus,
)
# Phase 7: Composability
from .composability import (
# Models
SpaceReference,
SpaceReferenceType,
SpacePermission,
SpaceRole,
AccessLevel,
SpaceAccess,
InheritedVariable,
InheritedConfig,
# Services
ComposableSpaceService,
InheritanceResolver,
AccessControlService,
# Repositories
ISpaceReferenceRepository,
IAccessControlRepository,
SqliteSpaceReferenceRepository,
SqliteAccessControlRepository,
)
from .composability.service import CircularReferenceError
__all__ = [
# Models
"InformationSpace",
@@ -88,4 +111,23 @@ __all__ = [
"EventBus",
"get_event_bus",
"reset_event_bus",
# Composability - Models
"SpaceReference",
"SpaceReferenceType",
"SpacePermission",
"SpaceRole",
"AccessLevel",
"SpaceAccess",
"InheritedVariable",
"InheritedConfig",
# Composability - Services
"ComposableSpaceService",
"InheritanceResolver",
"AccessControlService",
"CircularReferenceError",
# Composability - Repositories
"ISpaceReferenceRepository",
"IAccessControlRepository",
"SqliteSpaceReferenceRepository",
"SqliteAccessControlRepository",
]