docs(oplog): update architecture doc with December 2025 fixes

Add recently completed items to the architecture documentation:

- Compaction race safety check
- Entity validation in meta-reducers (getTag/getProject)
- Project cleanup in deleteTasks handler
- archiveOld validation and null-safety
- Lock service robustness (NaN handling)
- Array payload rejection
- Pending operation expiry (24h timeout)

Also updated Last Updated date to December 6, 2025.
This commit is contained in:
Johannes Millan 2025-12-06 11:12:42 +01:00
parent 9628279da7
commit f8d652062b

View file

@ -2,7 +2,7 @@
**Status:** Parts A, B, C, D Complete (single-version; cross-version sync requires A.7.11)
**Branch:** `feat/operation-logs`
**Last Updated:** December 5, 2025
**Last Updated:** December 6, 2025
---
@ -2128,6 +2128,13 @@ To detect silent divergence between clients:
> - **Plugin data sync**: Operation logging for plugin user data and metadata
> - **Gap detection**: Download operations detect and report sequence gaps
> - **Server-side conflict detection**: Prevents concurrent modifications on server
> - **Compaction race safety**: Safety check to abort deletion if new ops written during snapshot
> - **Entity validation in meta-reducers**: Improved getTag/getProject helpers with validation and safe variants
> - **Project cleanup in deleteTasks**: handleDeleteTasks now cleans up project taskIds/backlogTaskIds
> - **Archive validation**: archiveOld tasks now validated for project/tag references, null-safety added
> - **Lock service robustness**: Handle NaN timestamps and invalid lock formats in fallback lock
> - **Array payload rejection**: Explicit check to reject arrays (which bypass `typeof === 'object'`)
> - **Pending operation expiry**: Operations pending >24h are rejected instead of replayed (PENDING_OPERATION_EXPIRY_MS)
---