fix(notifications): preserve action state and accessible recovery

This commit is contained in:
cesnimda
2026-10-16 23:14:33 +02:00
parent 9dfea1226f
commit 40cfe04df5
22 changed files with 5963 additions and 66 deletions
+9 -3
View File
@@ -1,6 +1,6 @@
# P7-08 — Operation and notification UTC transport
**Local SQLite/direct-controller scope: CONDITIONAL GO; hygiene PASS. Hosted HTTP/native acceptance, separate commit and normal push follow.** This bounded compatibility repair precedes the two [P7-08 presentation boundaries](README.md). [Portable UTC results](evidence/utc-results.json) retain exact commands, reports, source observations and qualifications.
**SQLite/direct-controller and bounded available-field HTTP scope: CONDITIONAL GO; hygiene PASS, separate repair commit and normal push verified.** Full hosted date coverage and manual/production acceptance remain unverified. This bounded compatibility repair precedes the two [P7-08 presentation boundaries](README.md). [Portable UTC results](evidence/utc-results.json) retain exact commands, reports, source observations and qualifications; the later native observation is bounded below.
## Demonstrated defect and minimal correction
@@ -30,7 +30,13 @@ The original three controller cases remain. Added persisted readback assertions
The API DLL SHA256 `e1d2c1bfc7ba4d9816d5d7b80503e79d2a647ad0ae2f4777e2703508fd32681c` and test DLL SHA256 `425d098903732802b5b304072c6f2e2f4479d74a56cf292d8c152544592dd99a` are actual **post-build/run observations**. They do not prove binary equality across a compilation that changes the product. Frontend work is outside these backend source holds. Resumption at **20:52 UTC** confirms the controller/test sources remain held; no execution is inferred during the usage pause.
This gate uses **real disk-backed SQLite and direct-controller Web JSON serialization**. It hosts no HTTP server or cookie middleware. Test names containing “API” do not change that boundary. Actual Program/local-cookie native journeys must still verify available UTC fields over HTTP and existing consumers; no hosted all-five-operation-date fixture is claimed. MariaDB, external provider/model execution, human/device/output and production release remain unverified.
The four-case/73-consumer gate uses **real disk-backed SQLite and direct-controller Web JSON serialization**. It hosts no HTTP server or cookie middleware. Test names containing “API” do not change that boundary. The separate hosted observation below supplements this gate; it does not replace the all-seven-field deterministic precision proof. MariaDB, external provider/model execution, human/device/output and production release remain unverified.
## Bounded actual HTTP observation
Six actual Program/local-Identity-cookie native cases pass **21:00:34.683928–21:01:16.758533 UTC**, zero skipped/unexpected/flaky cases and retries 0. `.artifacts/phase7/p7-08/recent-native-verified/results.json` retains that execution, SHA256 `10ecebb46c208aa4241ad656bcb7ca03f417220f8cf008563896f2ccdda58659`. An inert test-only queued operation is seeded; existing real cancel/retry/read/dismiss endpoints own the subsequent persisted transitions, without worker/provider/model activation.
The actual lifecycle attachment records UTC-`Z` operation `createdAtUtc`/`completedAtUtc` and notification `createdAtUtc`/`readAtUtc` over HTTP. All available non-null `*AtUtc` fields are asserted as ISO UTC. Started/deadline/cancellation-request dates are null in that hosted fixture, and dismissed time is not a public notification field: **no all-seven-field hosted or deterministic tick-precision claim follows**. Controlled long-text/internal-link GET projections qualify their UI behavior only; actual notices retain `linkPath=null`. This supplies bounded transport evidence, not complete presentation, human/device or production acceptance.
## Preservation and publication
@@ -38,4 +44,4 @@ One new ordinary case derives backend inventory **1,054** from **1,053**; the ex
All **57 PRES groups remain 56 PARTIAL / C11 DEFERRED**, and the original 32 routes plus Documents remain **33**. P5-13 stays withheld with zero model qualification calls; followMode is deferred. This correction does not establish full notification/operation UX acceptance or F20 recovery.
The [repair static checks](evidence/utc-static-checks.json) pass: secret scan, working/staged/phase whitespace, local documentation links, all 57 preservation groups and 33 current route patterns. Commit this compatibility change separately before presentation commits. P7-07 publication and normal development push remain blocked by the recorded port-443 connection failures; the fresh 20:53 UTC fetch also failed, so no current live remote equality is claimed. Actual commit/push outcomes will be recorded after execution. **Production: NO-GO; main unchanged. Phase 8: no implementation.**
The [repair static checks](evidence/utc-static-checks.json) pass: secret scan, working/staged/phase whitespace, local documentation links, all 57 preservation groups and 33 current routes. Repair commit **`9dfea1226f57ba12b944e05e0e83fb2fea846131`** is separately committed and normally pushed at **21:00:51.343381–21:00:53.589287**, together with the previously blocked Documents implementation/documentation. The [publication recovery](../p7-07/evidence/ui-publication.json) preserves failed attempts and the immutable raw recovery receipt/hash. At **21:01:11.788733**, HEAD/origin/live development all equal `9dfea1226f57ba12b944e05e0e83fb2fea846131`; local/origin/live main remain `27657f31131cd95d42f0e1290853ec9c9b3959a4`. Known notification presentation/tests/native helpers remain unstaged WIP, so no clean-worktree or publication of that work is claimed. **Production: NO-GO; no main push or deployment. Phase 8: no implementation.**