Files
jobtrackingapp/docs/verification/ops-001b-notifications.md
T

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 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.