useSnapshotEditor.save now validates all simple/priced lines in-memory before any DB write, then delegates to a new saveSnapshotAtomic helper that wraps INSERT snapshot + INSERT lines in an explicit BEGIN/COMMIT transaction (ROLLBACK on catch). Pattern matches categorizationService. Migration v11 cleans existing orphan snapshots in profiles that hit the old race; new orphans are no longer possible thanks to the transaction. Resolves #176 |
||
|---|---|---|
| .. | ||
| __fixtures__ | ||
| __integration__ | ||
| components | ||
| contexts | ||
| data | ||
| hooks | ||
| i18n | ||
| pages | ||
| services | ||
| shared | ||
| utils | ||
| App.tsx | ||
| main.tsx | ||
| styles.css | ||
| vite-env.d.ts | ||