2.2 KiB
2.2 KiB
OPS-001B persistent notification verification
Date: 2026-08-02
Status: IMPLEMENTED — NOT VERIFIED. Repository, real-SQLite and generated provider checks pass. MariaDB execution, owner API/UI/browser checks and production rollout remain.
Verified locally
- Terminal success, permanent failure and cancellation each persist exactly one generic owner notification.
- The terminal operation mutation and notification insert share one relational transaction. A synthetic notification
SaveChangesfailure rolls the operation back torunningand leaves no notification. - Retryable failure creates no premature notification; duplicate completion/cancellation creates no duplicate.
- Lease-expiry failure/cancellation and queued-deadline failure use the same terminal transaction path.
- Owner query filters deny cross-user list/read/dismiss mutations. Unread, read and dismissed states behave consistently across file-backed SQLite contexts.
- Notifications contain bounded generic text and references only; no raw operation or private failure content is copied.
- The additive migration upgrades, downgrades and re-upgrades a disposable SQLite database. The model snapshot is current.
- Generated SQLite and MariaDB up/down scripts are under
docs/audits/evidence/ops-001b/. MariaDB DDL uses bounded strings anddatetime(6); it was inspected but not executed.
Commands and results
dotnet test ... --filter FullyQualifiedName~UserOperationStoreTests: PASS — 9/9.dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --no-restore: PASS — 541/541.dotnet ef migrations script ...for SQLite and MariaDB up/down: PASS after correcting the design-time MariaDB connection-string key; the invalid first output was overwritten.dotnet ef database updatenotification/up, operation/down, notification/up against disposable SQLite: PASS.dotnet ef migrations has-pending-model-changes ... --no-build: PASS — none.git diff --check: PASS — line-ending notices only.
Limitations
No MariaDB server, production environment or browser localhost access is available. No email was sent and no worker was enabled. API/UI verification belongs to OPS-001C; feature handlers and production canaries remain later packages.