Priority: High
Category: Storage & Metadata
Estimated Effort: Large
Description
Enhance the file system with metadata tracking and versioning capabilities:
- Original filename preservation
- File timestamps and size tracking
- Version history with content evolution
- File tags and descriptions
Implementation Plan
-
Metadata Structure (metadata.go)
type FileMetadata struct {
Hash string `json:"hash"`
OriginalName string `json:"original_name"`
Size int64 `json:"size"`
CreatedAt time.Time `json:"created_at"`
ModifiedAt time.Time `json:"modified_at"`
Tags []string `json:"tags"`
Description string `json:"description"`
Versions []string `json:"versions"`
}
-
Metadata Storage
- SQLite database for local metadata
- JSON files for simple deployments
- Metadata replication across peers
-
Versioning Logic
- Track file evolution by linking hashes
- Implement copy-on-write semantics
- Garbage collection for old versions
-
API Integration
- Extend file operations to include metadata
- Search files by name, tags, date ranges
- Version management endpoints
Files to Create/Modify:
metadata.go - Metadata structures and operations
database.go - SQLite integration
store.go - Add metadata hooks to file operations
server.go - Metadata-aware file operations
Priority: High
Category: Storage & Metadata
Estimated Effort: Large
Description
Enhance the file system with metadata tracking and versioning capabilities:
Implementation Plan
Metadata Structure (
metadata.go)Metadata Storage
Versioning Logic
API Integration
Files to Create/Modify:
metadata.go- Metadata structures and operationsdatabase.go- SQLite integrationstore.go- Add metadata hooks to file operationsserver.go- Metadata-aware file operations