Files
jobtrackingapp/docs/ui-modernisation/PASTED_EMAIL_RECOVERY.md
T

3.0 KiB
Raw Blame History

Manual pasted-email recording recovery

Baseline 1f3bdbcd; implementation/test/verifier 5f61d8f7.

The manual note and pasted-email forms now share their existing submission guard. Pasted-email recording locks the captured source, tabs and dismissal actions during a pending POST, excludes duplicate clicks and preserves the complete source on rejection. Late previous-job completions cannot clear or close the next application's draft. Committed recording followed by failed refresh uses the message-list read notice; Retry performs GET only. The source field now has a visible accessible label using the existing translation key.

Parser behaviour, date/header conversion, sender selection and /correspondence payload are preserved. This records pasted text; it neither connects to a mailbox nor sends email.

Verification

  • RED: five of six new cases failed against the preceding implementation: duplicate/pending exclusion, false failure after commitment, two stale-context completions and the missing field label. Rejected-write draft retention already passed.
  • PASSED:33 cases/two suites:20 recovery cases (six new) and13 existing Gmail cases. Earlier27 overlap this count. The unit checks preserve exact parsed synthetic headers, body, timestamp, sender and job ID. A transient incomplete setter rename was corrected before the final passing run/build.
  • PASSED: static production build/TypeScript and scoped ESLint.
  • PASSED:eight actual exported-application fixture journeys,390/1440 ×EN/NB ×light/dark;40 accessibility captures;16 intercepted write attempts (eight pre-commit fixture failures/eight fixture commitments). Each journey covers read failure/language change, rejected recording, pending duplicate/close/tab exclusion, committed-recording/refresh failure and GET-only recovery. The separate unsaved note remains intact. Zero page errors/unavailable reads; external fonts blocked. The single pilot overlaps the final eight configurations.
  • Mobile Bokmål dark pending dialog was visually inspected. The labelled pasted source fits its scrollable dialog and footer actions remain available after failure/completion.

Evidence: evidence/pasted-email-recovery/; source/evidence/export content bindings: PASTED_EMAIL_SOURCE_MANIFEST.json. Prior note matrices remain bound to their earlier source; do not add overlapping suite or journey counts.

Limits and rollback

This is controlled API traffic, not database, provider, native-device or final security/recovery acceptance. The pending guard prevents repeated clicks in this mounted UI; it does not establish server idempotency or settle an ambiguous real network failure after server commitment. No automatic POST retry was added. Cross-job unsaved-draft navigation policy, other Gmail mutation/candidate races and remaining correspondence visual surfaces remain open.

Rollback: revert 5f61d8f7, rebuild and run affected correspondence checks. No dependency, migration, backend or stored data changes are involved. Final A3, Phase10, human/device, security and release gates remain separate.