v0.14.0 — Structured Merge Engine
Structured Merge Engine — Every File Type Handled
What's New
Aura now understands the structure of every file type and merges accordingly:
| File Type | Merge Strategy | Conflict Granularity |
|---|---|---|
| Code (.rs, .py, .ts, .js, etc) | AST function-level | Same function = conflict |
| JSON | Deep merge by key path | Same key = conflict |
| .env | Key=value merge | Same key = conflict |
| Text/Markdown/CSS/HTML | Line-level 3-way merge | Same line = conflict |
| YAML/TOML | Line-level merge | Same line = conflict |
| Binary | Cannot merge | Always manual |
| Lockfiles | Ignored | Regenerate locally |
Scaffold Sync
Code files are now synced as functions + scaffold:
- Functions: AST-level push/pull (already worked)
- Scaffold: imports, constants, type aliases, module-level code
aura savepushes both functions AND scaffoldsaura mergemerges both using the appropriate strategy
JSON Deep Merge Example
Person A: {"port": 3001, "debug": true} (changed port)
Person B: {"port": 3000, "debug": false} (changed debug)
Base: {"port": 3000, "debug": true}
Aura merges: {"port": 3001, "debug": false} ← zero conflict
New Module: merge_engine.rs
merge_json()— 3-way deep merge with key-path conflict trackingmerge_text()— line-level 3-way merge with conflict markersmerge_env()— key-value merge for .env filesmerge_file()— unified interface, auto-detects file typeextract_scaffold()/apply_scaffold()— code file scaffold management- 4 unit tests covering all merge strategies
Update
sudo aura updateFull Changelog: v0.13.1...v0.14.0