30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# 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 `SaveChanges` failure rolls the operation back to `running` and 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 and `datetime(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 update` notification/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.
|