Files
danyang-match/docs/Phase-V12-Task2-Completion-Report.md
T
WorkBuddy 377429995c
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Waiting to run
CI/CD Pipeline / Backend Build & Test (push) Waiting to run
CI/CD Pipeline / Admin Web Build (push) Waiting to run
CI/CD Pipeline / Mini Program Compile Check (push) Waiting to run
CI/CD Pipeline / Migration Validation (push) Blocked by required conditions
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Waiting to run
CI/CD Pipeline / E2E (live stack) (push) Blocked by required conditions
release: freeze V1.2 demo acceptance 2026-10-25
2026-10-25 14:29:29 +08:00

1.4 KiB

V1.2 Task 2 Completion Report

Status

Completed

Implemented

  • Added POST /api/v1/auth/register for self-registration applications.
  • Added phone code send/verify endpoints with hashed Redis code storage, five-attempt limit, one-minute send cooldown, five-minute expiry, and one-time verification transaction.
  • Added SmsVerificationProvider abstraction.
  • Test/demo profiles use an in-memory mock provider; non-test profiles fail closed when SMS is not configured.
  • Replaced direct phone binding with a verified transaction requirement.
  • Added V065 registration application migration and H2 schema.
  • Added miniapp registration page and login entry.
  • Duplicate phone registration is rejected without overwriting the existing user.

Automated Tests

mvn -B -f backend/pom.xml test "-Dtest=PhoneVerificationGuardTest,UserRegistrationServiceTest,V12MigrationContractTest,MigrationValidationTest,EntityMigrationParityTest"
25 tests passed, 0 failures, 0 errors

npm --prefix miniapp run type-check
passed

Not Verified

  • Real SMS provider integration is not connected.
  • Clean PostgreSQL V001-V065 migration and live Redis behavior were not run in this step.
  • Historical WeChat account association UI and ambiguous-account manual queue remain deferred to the account lifecycle/onboarding stage.

Next Phase

Task 3: operator-created profiles, CSV preview/commit, review linkage, and account issuance.