- Mock purchase: order create → mock-pay → FlashToken issued instantly (no real billing)
- Flash page (/flash/:token): esp-web-tools integration, token state display, consume on complete
- Orders route: create/mock-pay/me/refund with full audit logging
- Flash route: GET validate, GET manifest (esp-web-tools compatible), POST consume
- MinIO file proxy (/api/files/*): browser CORS solved, firmware served through backend
- Schema: chipFamily on Project, flashOffset on ProjectFile
- ProjectNew: chipFamily selector + firmware flash offset option
- MyOrders: real order list with flash token status and buttons
- Dockerfile: prisma db push (no migration files needed for dev)
- TOSS_PAYMENT_GUIDE.md: step-by-step guide for real payment after business registration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Document concurrent flash architecture (client-side Web Serial),
bandwidth-based concurrency estimates, current MVP limitations,
and phased roadmap for commercial deployment including HTTPS,
auth, rate limiting, DB migration, S3 storage, and license model.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add new_install_improv_wait_ms: 0 to manifest — prevents esp-web-tools
from waiting for Improv WiFi provisioning response after installation,
so the completion dialog shows only Close instead of Next.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Auto-select uploaded firmware immediately after upload completes
- Auto-select single firmware on list load (no manual click needed)
- Hide flash button and show warning when no firmware is selected
- Re-apply manifest on list reload to avoid stale state
- Restore warning banner on firmware delete
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Default nginx limit is 1MB — merged.bin (16MB+) was rejected with 413
HTML response, causing JSON parse error in the frontend.
Added proxy_read_timeout 120s for slow upload connections.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add ESP8266, ESP32-C6, ESP32-C2, ESP32-H2 to chip selector with
optgroup layout. Generalize UI text from ESP32-S3-specific to
board-agnostic. Add esptool merge_bin examples for ESP32, ESP32-S3,
and ESP8266.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>