notification-hub / dev branch

SPLITb: Atomic Commit Split

2026-03-19 — Split monolithic e0854a6 (40 files, 7,406 lines) into 7 focused commits

1
Commit Before
7
Commits After
41
Tests Passing
10
Patches Replayed
18
Total Commits
1
Monolithic Commit
40 files · 7,406 insertions
7
Atomic Commits
Logically grouped · reviewable
New Commits (split from e0854a6)
# Hash Type Description Files Lines
1 44b2886 chore Project scaffolding.gitignore, Cargo.toml, Cargo.lock 3 +3,524
2 7573dea feat Configuration and error handlingsrc/config.rs, src/error.rs 2 +175
3 a098816 feat Database migration with RLS policiesmigrations/001_init.sql 1 +88
4 16accb3 feat Domain models with validationsrc/domain/mod.rs, src/domain/models.rs — 34 unit tests 2 +562
5 48c955c feat Repositories with tenant-scoped queriessrc/repository/ + 16 sqlx cache files 20 +2,221
6 38a4af9 feat CloudEvents producer and service layersrc/events/, src/service/ 4 +267
7 f22ae9a feat REST API handlers and server entry pointsrc/api/, src/lib.rs, src/main.rs 8 +569
7 atomic commits 40 +7,406
Quality Gates
41 unit tests
All passing
clippy
0 warnings
cargo fmt
Clean
Tree hash match
824bbcc...verified
10 patches replayed
git am — all clean
Full Commit History (18 commits on dev)
  1. 1 44b2886 chore initialize project with Cargo dependencies
  2. 2 7573dea feat add configuration and error handling
  3. 3 a098816 feat add database migration with RLS policies
  4. 4 16accb3 feat implement domain models with validation
  5. 5 48c955c feat implement repositories with tenant-scoped queries
  6. 6 38a4af9 feat implement CloudEvents producer and service layer
  7. 7 f22ae9a feat implement REST API handlers and server
  8. 8 c59f9d7 feat add RLS tenant transaction helper
  9. 9 398f909 feat implement JWT verification in auth middleware
  10. 10 77bc29d feat implement Redpanda event producer and wire emission
  11. 11 40ef95d test add integration tests with testcontainers
  12. 12 a473cbe refactor split domain/models.rs into focused modules
  13. 13 8dd6cd2 chore fix Dockerfile EXPOSE port to 8085
  14. 14 5981652 feat add soft-delete to preferences
  15. 15 fd4a2cf feat emit CloudEvents from template handlers
  16. 16 2f33b1c feat defer notifications during quiet hours
  17. 17 35f5490 docs update progress for SPLITa round 2
  18. 18 d3f704a docs update progress for SPLITb
Split Methodology
Approach: Non-destructive history rewrite preserving tree integrity.
  1. Saved 10 subsequent patches via git format-patch
  2. Reset to parent commit c8854f2
  3. Checked out files from e0854a6 in 7 logical groups, committing each
  4. Verified tree hash identity: 824bbcc == 824bbcc
  5. Replayed all 10 patches via git am — zero conflicts
  6. Ran full quality gates (tests, clippy, fmt)