# Phase 2 checkpoint report

Base checkpoint: `1195d6e`

## Implemented

- Buyer/seller order authorization and dashboard data isolation.
- Server-authoritative order snapshots from active listings; self-purchase and invalid quantity blocked.
- Compatible-cart validation for currency and delivery mode.
- Digital inventory funded/delivered/read lifecycle; only the owning buyer may retrieve a delivered ciphertext for secure decryption.
- Active-only marketplace search with text, kind, region, server, currency, price, sorting and bounded pagination.
- Public listing detail that returns non-active records as not found.
- Admin listing approval/rejection with permission checks, current KYC recheck, mandatory rejection reason and immutable event data.
- Admin-only catalog availability control.
- MySQL/MariaDB migration target correction.

## Migrations

- Reworked `0001`–`0003` from PostgreSQL syntax to MySQL 8.0+/MariaDB 10.6+ InnoDB syntax before deployment.
- Added `0004_orders_and_delivery.sql`.
- Added `0005_categories_and_moderation.sql`.

## Security preserved

- Mandatory seller KYC at listing creation, submission and approval.
- Deny-by-default staff permissions.
- Buyer/seller ownership checks and inactive-listing non-disclosure.
- Integer minor-unit pricing and server-calculated totals.
- Encrypted inventory storage contract, code fingerprint uniqueness and one allocation per order.
- Atomic/idempotent inventory repository contract.
- PayPal live mode remains blocked unless acceptance is explicitly recorded; no provider or payout was enabled.

## Status

- **PASS:** 28 domain/security/static migration tests; zero failures.
- **NOT TESTED:** actual staging database engine/version, migration execution, MySQL/MariaDB row-lock races, persistent API/UI adapters, private key-management adapter and browser acceptance.
- **FAIL:** overall production readiness; Phase 2 and later financial/trust/admin/hardening work remain incomplete.
