Frontend: VM status page + rental management (U17-U19) #68
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#68
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?
Context
Users can rent compute slices (nano/basic/standard/premium) and VMs deploy successfully on hero_compute. However, after purchase there is no way to view VM status, see the IP address, or manage active rentals from the frontend.
This is the highest-priority frontend gap — the backend APIs are fully implemented and tested.
Scope
Checklist items: U17 (VM status page), U18 (my active rentals), U19 (cancel rental).
What exists (backend — all ready)
/api/dashboard/slice-rentalsget_user_slice_rentals()/api/dashboard/slice-rentals/:id/managemanage_slice_rental_deployment()/api/dashboard/slice-rentals/:idcancel_slice_rental()Response fields:
rental_id,deployment_status,deployment_endpoint,deployment_name,monthly_cost,status.DeploymentStatus enum: pending, provisioning, deploying, running, scaling, updating, stopping, stopped, failed, terminated.
What to build (frontend only)
A. New page:
my_rentals.rs/dashboard/rentalsGET /api/dashboard/slice-rentalsDashboardSidebarLayout,StatusBadge,EmptyStatecomponentsB. New page:
vm_status.rs/dashboard/rentals/:idGET /api/dashboard/slice-rentals/:idssh root@<ip>), deployment status, uptimePOST /api/dashboard/slice-rentals/:id/managewith{"action": "start|stop|restart"}DELETE /api/dashboard/slice-rentals/:id(with confirmation modal)C. Navigation
components/layout/sidebar.rs)router.rspages/mod.rsRepos
projectmycelium_marketplace_frontend— all changesTest plan
/dashboard/rentals, verify table renders— mik-tf
Completed — 2026-04-10
What was built
Frontend (
projectmycelium_marketplace_frontend, commiteca086a):my_rentals.rs:/dashboard/rentals— list active slice rentals with status badges, click row → detailvm_status.rs:/dashboard/rentals/:id— VM detail, connection card (IP, SSH command + clipboard copy), Start/Stop/Restart/Cancel actionsregister.rs: skip check-email when email auto-verified (demo mode)Cargo.toml: web-sys Clipboard featureBackend (
projectmycelium_marketplace_backend, commit9aeb4d8):auth.rs: WhenDEMO_KYC=true, auto-verify email + accept TOS on registration (both password and pubkey paths)Tests (
projectmycelium_marketplace_deploy, commit3bd130e):rental_integration.sh: +2 tests (response body validation, unauth guard)marketplace-e2e.spec.ts: +6 Playwright tests (My Rentals + VM Status pages)content-regression.spec.ts: +2 tests, fixed 4 pre-existing failures (registerFundedUser + onboarding gate)e2e_checklist.md: U17 ✅, U18 ✅, U19 ✅, test count 354→391Test results (dev VM)
391 total, ALL PASS:
Checklist
— mik-tf