SPA Production Readiness — Wire All Frontend Actions + Missing Flows #66
Labels
No labels
meeting-notes
meeting-sensitive
meeting-transcript
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coopcloud_code/home#66
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The Dioxus SPA frontend renders pages for all marketplace features but most action buttons contain
// TODOstubs — they render UI but don't call the backend API. Additionally, several flows that exist in the SSR templates are entirely missing from the SPA.This issue tracks wiring everything up for production readiness.
Blockers (must-fix)
/check-email→/verify-email→/tos-gate→ top-up → KYC → SSH key → rentPOST /api/wallet/transfer-credits)POST /api/wallet/stripe-topupfrom SPA)POST /api/messages/threads/:id/messages)POST /api/rentals/rent-slice)POST /api/products/:id/rent-node)POST /api/cart/add)POST /api/dashboard/resource-provider/nodes)PUT /api/dashboard/user/preferences)POST /api/wallet/auto-topup/configure)/kycroute, callPOST /api/auth/kyc/startImportant (not blocking but needed)
References
docs/onboarding_flow.mdin backend repoCompleted: SPA Production Readiness — All Frontend Actions Wired
What was done
All
// TODOstubs in the Dioxus WASM SPA have been replaced with working API calls. Zero TODOs remain across the entire frontend codebase.Changes (17 files, +513/-41 lines)
Step 0: New rpc_client helpers
api_put,api_put_data— PUT with ed25519 signingapi_delete,api_delete_data— DELETE with ed25519 signingStep 1: Wired 12 TODO stubs
Step 2: New pages
/kyc— KYC verification status + start verification (POST /auth/kyc/start)/api-keys— Create, list, revoke API keys (POST/GET/DELETE /auth/api-keys)Step 3: Polish
Verification
cargo check --target wasm32-unknown-unknown— 0 errorsgrep -r "// TODO" src/pages/— 0 resultsNot in scope (deferred)
Follow-up: All Previously Deferred Items Now Implemented
The 5 deferred items from the original plan have been implemented:
1. Account Recovery — Keypair Export/Import
vault::export_vault()/vault::import_vault()— no backend needed2. Real-Time Updates (Polling)
main.rs— polls every 30s when authenticated:AppState.wallet_balanceAppState.unread_messages(drives navbar badge)3. Statistics with Live Data
statistics.rsrewritten to fetch from live API endpoints:/dashboard/resource_provider-data/products/search/marketplace/statistics4. Contact Provider from Product Page
POST /messages/threadswith subject and provider email5. Cart Server-Side Sync
GET /cart/itemsfrom serverVerification
cargo check --target wasm32-unknown-unknown— 0 errorsgrep -r "// TODO" src/— 0 resultsDeployed & Tested — 7-Layer Test Results (dev)
Pipeline
developmentbranch (commit8b0a59a)projectmycelium_marketplace_frontend:development7-Layer Test Pyramid Results
cargo check --target wasm32-unknown-unknowncargo test(backend)admin_smoke.shapi_smoke.shapi_integration.shprovider_integration.shmessaging_ssh_integration.shrental_integration.shpool_integration.shonboarding_integration.shfunctional_smoke.shmcp_integration.shledger_integration.shvisual_parity.shSummary
Playwright test fix
Updated 6 registration tests to expect
/check-emailredirect instead of/dashboard— 3 tests fixed by this change.e2e_checklist.md
Updated to v2.3.0 with SPA action items #140-168.