Skip to content

v0.14.0 — Structured Merge Engine

Choose a tag to compare

@MHASK MHASK released this 31 Mar 09:48
· 16 commits to master since this release

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 save pushes both functions AND scaffolds
  • aura merge merges 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 tracking
  • merge_text() — line-level 3-way merge with conflict markers
  • merge_env() — key-value merge for .env files
  • merge_file() — unified interface, auto-detects file type
  • extract_scaffold() / apply_scaffold() — code file scaffold management
  • 4 unit tests covering all merge strategies

Update

sudo aura update

Full Changelog: v0.13.1...v0.14.0