### Description Add Ecto-backed persistent storage for DAG registry, run states, and task audit events. ### Tasks - [ ] Setup dual Ecto repos: `Levicon.Repo.System` and `Levicon.Repo.History` - [ ] Create `dags`, `runs`, `task_snapshots` Ecto schemas and implement migrations - [ ] Wire async DB writes from Task.Process state transitions (ETS primary, DB async) - [ ] Implement startup recovery: rebuild ETS from `task_snapshots` on boot - [ ] Create `audit_events` Ecto schema (append-only, no `timestamps/0`) - [ ] Implement log writer called on every Task.Process state transition - [ ] Phase 2: Enable TimescaleDB hypertable + retention policy migration
Description
Add Ecto-backed persistent storage for DAG registry, run states, and task audit events.
Tasks
Levicon.Repo.SystemandLevicon.Repo.Historydags,runs,task_snapshotsEcto schemas and implement migrationstask_snapshotson bootaudit_eventsEcto schema (append-only, notimestamps/0)