535b83996b
feat(spaces): implement Phase 5 Directory Sync Mode
...
Implements directory synchronization for Information Spaces:
- SpaceDirectoryExporter: Export space to directory structure
- Multiple variants: flat, hierarchical, by_path
- Manifest generation for reimport
- Incremental export (skip unchanged files)
- Metadata file export
- IncrementalExporter for change detection
- DirectorySpaceImporter: Import directory content into space
- Recursive directory scanning
- Multiple file pattern support
- Conflict detection with strategies (skip/overwrite/rename)
- Manifest-based import for intelligent reimport
- Structure preservation in space paths
- BidirectionalSyncCoordinator: Two-way sync with conflict detection
- Sync directions: space-to-directory, directory-to-space, bidirectional
- Conflict resolution strategies: space_wins, directory_wins, newer_wins, manual, skip
- Dry-run mode for preview
- Orphan cleanup option
- Event emission for progress tracking
45 unit tests covering all sync components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-08 12:11:37 +01:00
2a5c265458
feat(spaces): implement Phase 4 HTML Rendering Mode
...
Implements HTML rendering system for Information Spaces:
- SpaceRenderer: Abstract base class for renderers
- RenderConfig: Configuration for format, theme, TOC, etc.
- RenderResult: Immutable result with content hash and metadata
- ThemeConfig: Layered theme system with customization
- CompositeRenderer: Multi-format renderer delegation
- MarkdownToHTMLRenderer: Full markdown-to-HTML conversion
- Theme support (github, dark, minimal, academic)
- Code block handling
- Link target="_blank" for external links
- Table of contents generation
- Heading ID generation for navigation
- HTMLRendererFactory: Factory for common renderer configurations
- SpaceRenderingService: Orchestration layer
- Transclusion variable substitution
- Render caching with automatic invalidation
- Event emission (RENDER_STARTED, RENDER_COMPLETED, RENDER_FAILED)
- Batch rendering support
- Statistics tracking
- SpaceRenderingServiceBuilder: Fluent builder pattern
60 unit tests covering all components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-08 08:42:27 +01:00
7da77396a9
feat(spaces): implement Phase 3 Persistent Transclusion Context
...
Implements persistent transclusion context for Information Spaces:
- ScopedVariables: Variable scope layers (request > document > space)
- SpaceTransclusionContext: Extends TransclusionContext with DB persistence
- CrossSpaceResolver: Resolve references across space boundaries
- ReferenceGraph: Track document dependencies for cache invalidation
- PersistentReferenceGraph: Repository-backed reference tracking
- RenderCache: Cache rendered output with invalidation support
- CacheInvalidator: Event-driven cache invalidation using reference graph
Key features:
- Variable precedence: request overrides document overrides space
- Reference tracking during transclusion processing
- Transitive dependent calculation for cache invalidation
- Event bus integration for automatic invalidation on content changes
47 unit tests covering all components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-08 08:36:50 +01:00
0a494b2011
feat(spaces): implement Phase 2 Event System
...
Week 4 - Event Infrastructure:
- Create SpaceEventType enum with 18 event types covering space lifecycle,
document operations, variables, references, rendering, sync, and cache
- Create SpaceEvent dataclass with serialization/deserialization
- Create EventBus with sync/async handler support, priority ordering,
global handlers, and optional event history
- Add event factory functions for common events
Week 5 - Event Integration:
- Wire EventBus into SpaceService as optional dependency
- Emit events for all space operations:
- SPACE_CREATED, SPACE_UPDATED, SPACE_DELETED, SPACE_ACTIVATED, SPACE_ARCHIVED
- DOCUMENT_ADDED, DOCUMENT_REMOVED, DOCUMENT_MOVED, DOCUMENT_CONTENT_CHANGED
- VARIABLE_SET, VARIABLE_DELETED
- Create integration tests for event propagation patterns
Test coverage: 187 tests total
- 43 unit tests for event system
- 20 integration tests for event propagation
- 124 existing tests continue to pass
Capabilities delivered:
- CAP-010: SpaceEvent base with type, payload, timestamp
- CAP-011: EventBus with in-process publish/subscribe
- CAP-012: Event handlers registry with priority support
- CAP-013: Change detection via content hash comparison
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-08 07:41:47 +01:00
9b12875681
feat(spaces): implement Phase 0-1 of Information Space Service
...
Phase 0 - Project Organization:
- Create docs/PROJECT_STRUCTURE.md documenting codebase layout
- Create markitect/core/ with parser, serializer, document_manager, workspace
- Create markitect/schema/ consolidating 6 schema_*.py modules
- Create markitect/storage/ with database module
- Maintain backward compatibility via re-exports from original locations
- Add docs/roadmap/information-space-service/ with README and WORKPLAN
Phase 1 - Foundation (Weeks 1-3):
- Week 1: Core domain models (InformationSpace, SpaceDocument, SpaceConfig,
SpaceMetadata, SpaceVariable, TransclusionReference, SpaceStatus)
- Week 2: Repository layer with interfaces (ISpaceRepository,
IDocumentAssociationRepository, IVariableRepository, IReferenceRepository)
and SQLite implementations with foreign key cascade deletes
- Week 3: SpaceService orchestration layer with full CRUD, document,
variable, and reference tracking operations
Test coverage: 124 tests (25 model + 63 repository + 36 integration)
Capabilities delivered:
- CAP-001: InformationSpace entity with lifecycle management
- CAP-002: SpaceRepository CRUD with SQLite backing
- CAP-003: Document-Space associations with path-based organization
- CAP-004: Space metadata and configuration schemas
- CAP-005: Database schema with migrations
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-08 02:02:46 +01:00