Bỏ qua để đến nội dung

STATE - Practice Attempt Execution

DomainsDOL EnglishProduct241 words1 min read
active

Attempt flow is baseline-locked for reliability: low-friction completion, answer safety, and deterministic submit behavior.

  • Attempt modes:
    • untimed for normal practice (default),
    • timed for simulation/full-test style attempts.
  • Entry contract:
    • attempt starts only when required routing metadata is valid.
  • Draft safety:
    • answers are continuously saved during attempt,
    • local fallback keeps progress if network is unstable,
    • re-entry to unfinished attempt resumes latest valid draft.
    • unfinished untimed drafts are retained for 7 days since last activity.
    • timed drafts are valid only within active timer window.
  • Submit review:
    • show lightweight answered/unanswered summary before submit,
    • keep submit non-blocking even with unanswered items.
    • for multi-section attempts, section-level breakdown is expandable (optional view).
  • Submit integrity:
    • use idempotent submit guard to prevent double-finalization.
  • Failure and retry:
    • failed submit keeps attempt state intact,
    • user can retry without losing answers,
    • clear status states: saving/submitting/retry-needed.
    • transient submit failure uses auto-retry up to 3 attempts.
    • after auto-retry exhausted, keep manual retry and show support CTA.
  • Timed expiration:
    • timed mode uses authoritative countdown,
    • timer continues in background/no manual pause,
    • on expiry, follow timeout-submit path and transition to result.
  • Result pipeline boundary:
    • only successful submit finalizes attempt for result pipeline.
  • Metrics attribution:
    • streak/progress uses submitted_at as source of truth.
  • DEC-0069
  • DEC-0068
  • DEC-0035
  • DEC-0051