Marketplace v2.0 — Master Tracker #40

Closed
opened 2026-03-26 02:28:53 +00:00 by mik-tf · 3 comments
Member

Current State (2026-03-28)

What's live

  • SPA: https://dev-app.projectmycelium.org — 44-route Dioxus WASM app
  • Admin: https://dev-admin.projectmycelium.org — 10-tab admin dashboard, 25/25 RPC tests pass
  • Real TFGrid nodes: 6 compute node listings from hero_ledger blockchain displayed in marketplace
  • Release: v2.0.0 tagged on all 4 repos, images pushed (:v2.0.0 + :latest)
  • Tests: 283 automated tests, zero failures (7-layer pyramid)

Architecture

SPA Frontend (Dioxus WASM) → Marketplace Backend (Rust/Axum)
                                ├── OSIS (session state: cart, messaging, preferences)
                                ├── hero_ledger gateway (economic data: listings, balances, tokens)
                                └── hero_compute explorer (VM provisioning — code ready, untested)

hero_ledger is the backend for all marketplace economic data. OSIS handles session/local state only.


Completed Phases

Phase Issue Status
1. Embed OSIS mycelium_code/home#34 CLOSED
2. Single-VM deploy mycelium_code/home#35 CLOSED
3. Load testing mycelium_code/home#36 CLOSED
4. K3s infra mycelium_code/home#49 CLOSED (code complete, 5-node HA ready)
6. Operations + v2.0.0 mycelium_code/home#39 CLOSED (13/21 tasks, infra deferred)
E2E tests (187) mycelium_code/home#42 CLOSED
E2E tests (283) mycelium_code/home#45 CLOSED
ProductCatalog from ledger mycelium_code/home#52 CLOSED
SPA → ledger account mycelium_code/home#53 CLOSED
All bugs mycelium_code/home#43 mycelium_code/home#44 mycelium_code/home#46 mycelium_code/home#47 mycelium_code/home#48 ALL CLOSED

What's Done

Backend

  • Single Rust binary with embedded OSIS + AxumRpcServer
  • 4 backend modes: local (default), ledger, compute, full production
  • hero_ledger integration: wallet (impl_ledger/wallet_manager.rs) + catalog (impl_ledger/product_catalog.rs)
  • hero_compute integration: slice rental (impl_compute/slice_rental_manager.rs) + TCP client (20 RPC methods)
  • Health endpoints: /api/health, /api/ready, /api/metrics, /api/branding
  • Admin bank transfer secured (Admin role required)
  • Branding: white-label via branding.toml

Frontend

  • 44-route Dioxus WASM SPA with ed25519 vault
  • Registration creates hero_ledger account (account.activate)
  • Real TFGrid nodes displayed from hero_ledger marketplace contract

Admin

  • 10 tabs, all RPC working (25/25 smoke tests)
  • User suspend/activate buttons
  • System health with OSIS object counts
  • Bank transfer approval form

Infrastructure

  • K3s: Terraform (5 VMs + 3 gateways), Kustomize (base + prod-ha), 9 scripts
  • Docker: Containerfiles for backend, frontend, admin
  • White-label: make deploy-instance INSTANCE=xxx, make new-instance

Testing (283 tests)

  • API smoke: 27 | API integration: 65 | Provider: 34 | Messaging: 13
  • Rental: 12 | Pool: 5 | Admin smoke: 25 | Load: 7
  • SPA Playwright: 48 | Admin Playwright: 41
  • Ledger integration: 11 (real TFGrid nodes from hero_ledger)

Docs

  • docs/architecture.md — two data planes, backend modes, hero_ledger/compute
  • docs/deployment.md — build, deploy, white-label, release pipeline
  • docs/runbook.md — health checks, incident response, backup/restore
  • docs/complete_ux_map.md — 44 SPA routes, 11 admin tabs, 128 API endpoints

Open — Waiting on External

Issue What Blocked on
mycelium_code/home#50 hero_ledger wallet transfers Scott: SPORE tokens for devnet account
mycelium_code/home#51 hero_compute VM deployment Explorer not running (lhumina_code/hero_compute#48)
mycelium_code/home#54 Wire credentials on dev VM Scott: SPORE tokens
lhumina_code/hero_ledger#41 Generic listing type Scott: non-compute products on-chain

Open — Parked

Issue What When
mycelium_code/home#38 Backup & DR After K3s cluster is provisioned

Path to Production

  1. Scott sends SPORE tokens → test wallet transfers → close #50, #54
  2. hero_compute explorer available → test VM deployment → close #51
  3. Generic listing type → non-compute products on-chain
  4. Provision K3s cluster: cd k3s && make all ENV=prod
  5. DNS: Cloudflare A records for projectmycelium.org
  6. Deploy: make deploy-instance INSTANCE=mycelium ENV=prod
  7. Run 283 tests against production
  8. Close this tracker
## Current State (2026-03-28) ### What's live - **SPA**: https://dev-app.projectmycelium.org — 44-route Dioxus WASM app - **Admin**: https://dev-admin.projectmycelium.org — 10-tab admin dashboard, 25/25 RPC tests pass - **Real TFGrid nodes**: 6 compute node listings from hero_ledger blockchain displayed in marketplace - **Release**: v2.0.0 tagged on all 4 repos, images pushed (:v2.0.0 + :latest) - **Tests**: 283 automated tests, zero failures (7-layer pyramid) ### Architecture ``` SPA Frontend (Dioxus WASM) → Marketplace Backend (Rust/Axum) ├── OSIS (session state: cart, messaging, preferences) ├── hero_ledger gateway (economic data: listings, balances, tokens) └── hero_compute explorer (VM provisioning — code ready, untested) ``` hero_ledger is the backend for all marketplace economic data. OSIS handles session/local state only. --- ## Completed Phases | Phase | Issue | Status | |-------|-------|--------| | 1. Embed OSIS | https://forge.ourworld.tf/mycelium_code/home/issues/34 | CLOSED | | 2. Single-VM deploy | https://forge.ourworld.tf/mycelium_code/home/issues/35 | CLOSED | | 3. Load testing | https://forge.ourworld.tf/mycelium_code/home/issues/36 | CLOSED | | 4. K3s infra | https://forge.ourworld.tf/mycelium_code/home/issues/49 | CLOSED (code complete, 5-node HA ready) | | 6. Operations + v2.0.0 | https://forge.ourworld.tf/mycelium_code/home/issues/39 | CLOSED (13/21 tasks, infra deferred) | | E2E tests (187) | https://forge.ourworld.tf/mycelium_code/home/issues/42 | CLOSED | | E2E tests (283) | https://forge.ourworld.tf/mycelium_code/home/issues/45 | CLOSED | | ProductCatalog from ledger | https://forge.ourworld.tf/mycelium_code/home/issues/52 | CLOSED | | SPA → ledger account | https://forge.ourworld.tf/mycelium_code/home/issues/53 | CLOSED | | All bugs | https://forge.ourworld.tf/mycelium_code/home/issues/43 https://forge.ourworld.tf/mycelium_code/home/issues/44 https://forge.ourworld.tf/mycelium_code/home/issues/46 https://forge.ourworld.tf/mycelium_code/home/issues/47 https://forge.ourworld.tf/mycelium_code/home/issues/48 | ALL CLOSED | ## What's Done ### Backend - Single Rust binary with embedded OSIS + AxumRpcServer - 4 backend modes: local (default), ledger, compute, full production - hero_ledger integration: wallet (impl_ledger/wallet_manager.rs) + catalog (impl_ledger/product_catalog.rs) - hero_compute integration: slice rental (impl_compute/slice_rental_manager.rs) + TCP client (20 RPC methods) - Health endpoints: /api/health, /api/ready, /api/metrics, /api/branding - Admin bank transfer secured (Admin role required) - Branding: white-label via branding.toml ### Frontend - 44-route Dioxus WASM SPA with ed25519 vault - Registration creates hero_ledger account (account.activate) - Real TFGrid nodes displayed from hero_ledger marketplace contract ### Admin - 10 tabs, all RPC working (25/25 smoke tests) - User suspend/activate buttons - System health with OSIS object counts - Bank transfer approval form ### Infrastructure - K3s: Terraform (5 VMs + 3 gateways), Kustomize (base + prod-ha), 9 scripts - Docker: Containerfiles for backend, frontend, admin - White-label: make deploy-instance INSTANCE=xxx, make new-instance ### Testing (283 tests) - API smoke: 27 | API integration: 65 | Provider: 34 | Messaging: 13 - Rental: 12 | Pool: 5 | Admin smoke: 25 | Load: 7 - SPA Playwright: 48 | Admin Playwright: 41 - Ledger integration: 11 (real TFGrid nodes from hero_ledger) ### Docs - docs/architecture.md — two data planes, backend modes, hero_ledger/compute - docs/deployment.md — build, deploy, white-label, release pipeline - docs/runbook.md — health checks, incident response, backup/restore - docs/complete_ux_map.md — 44 SPA routes, 11 admin tabs, 128 API endpoints --- ## Open — Waiting on External | Issue | What | Blocked on | |-------|------|------------| | https://forge.ourworld.tf/mycelium_code/home/issues/50 | hero_ledger wallet transfers | Scott: SPORE tokens for devnet account | | https://forge.ourworld.tf/mycelium_code/home/issues/51 | hero_compute VM deployment | Explorer not running (https://forge.ourworld.tf/lhumina_code/hero_compute/issues/48) | | https://forge.ourworld.tf/mycelium_code/home/issues/54 | Wire credentials on dev VM | Scott: SPORE tokens | | https://forge.ourworld.tf/lhumina_code/hero_ledger/issues/41 | Generic listing type | Scott: non-compute products on-chain | ## Open — Parked | Issue | What | When | |-------|------|------| | https://forge.ourworld.tf/mycelium_code/home/issues/38 | Backup & DR | After K3s cluster is provisioned | --- ## Path to Production 1. Scott sends SPORE tokens → test wallet transfers → close #50, #54 2. hero_compute explorer available → test VM deployment → close #51 3. Generic listing type → non-compute products on-chain 4. Provision K3s cluster: `cd k3s && make all ENV=prod` 5. DNS: Cloudflare A records for projectmycelium.org 6. Deploy: `make deploy-instance INSTANCE=mycelium ENV=prod` 7. Run 283 tests against production 8. Close this tracker
Author
Member

v2.0.0 Milestone Complete

Closed issues

Phase Issue Status
1 mycelium_code/home#34 CLOSED — Embedded OSIS
2 mycelium_code/home#35 CLOSED — Single-VM deploy
3 mycelium_code/home#36 CLOSED — Load testing
E2E mycelium_code/home#42 CLOSED — 187 tests
E2E+ mycelium_code/home#45 CLOSED — 277 tests
6 mycelium_code/home#39 CLOSED — Code complete, v2.0.0 released
Bugs mycelium_code/home#43 mycelium_code/home#44 mycelium_code/home#46 mycelium_code/home#47 mycelium_code/home#48 ALL CLOSED

Deferred to post-v2.0.0

Phase Issue Reason
4 mycelium_code/home#37 K3s HA — needs TFGrid VMs
5 mycelium_code/home#38 Backup & DR — needs K3s first

v2.0.0 deliverables

Remaining for production

  1. DNS setup (Cloudflare) + email (Resend)
  2. Deploy to projectmycelium.org
  3. K3s HA (Phase 4) + Backup (Phase 5) — post-launch

— mik-tf

## v2.0.0 Milestone Complete ### Closed issues | Phase | Issue | Status | |-------|-------|--------| | 1 | https://forge.ourworld.tf/mycelium_code/home/issues/34 | **CLOSED** — Embedded OSIS | | 2 | https://forge.ourworld.tf/mycelium_code/home/issues/35 | **CLOSED** — Single-VM deploy | | 3 | https://forge.ourworld.tf/mycelium_code/home/issues/36 | **CLOSED** — Load testing | | E2E | https://forge.ourworld.tf/mycelium_code/home/issues/42 | **CLOSED** — 187 tests | | E2E+ | https://forge.ourworld.tf/mycelium_code/home/issues/45 | **CLOSED** — 277 tests | | 6 | https://forge.ourworld.tf/mycelium_code/home/issues/39 | **CLOSED** — Code complete, v2.0.0 released | | Bugs | https://forge.ourworld.tf/mycelium_code/home/issues/43 https://forge.ourworld.tf/mycelium_code/home/issues/44 https://forge.ourworld.tf/mycelium_code/home/issues/46 https://forge.ourworld.tf/mycelium_code/home/issues/47 https://forge.ourworld.tf/mycelium_code/home/issues/48 | **ALL CLOSED** | ### Deferred to post-v2.0.0 | Phase | Issue | Reason | |-------|-------|--------| | 4 | https://forge.ourworld.tf/mycelium_code/home/issues/37 | K3s HA — needs TFGrid VMs | | 5 | https://forge.ourworld.tf/mycelium_code/home/issues/38 | Backup & DR — needs K3s first | ### v2.0.0 deliverables - **Release**: https://forge.ourworld.tf/mycelium_code/projectmycelium_marketplace_deploy/releases/tag/v2.0.0 - **277 tests** across 7 layers, all passing - **Embedded OSIS** — single binary, no external containers - **RPC server** merged into main backend - **Admin dashboard** — 10 tabs, user mgmt, system health, bank transfer - **White-label** — branding.toml, make deploy-instance - **Docs** — architecture, deployment, runbook, complete UX map - **Dev live**: https://dev-app.projectmycelium.org ### Remaining for production 1. DNS setup (Cloudflare) + email (Resend) 2. Deploy to projectmycelium.org 3. K3s HA (Phase 4) + Backup (Phase 5) — post-launch — mik-tf
mik-tf changed title from Marketplace v2.0 — Production roadmap (master tracker) to Marketplace v2.0 — Master Tracker 2026-03-28 12:21:49 +00:00
Author
Member

All sub-issues closed or consolidated. New single launch checklist: mycelium_code/home#55

— mik-tf

All sub-issues closed or consolidated. New single launch checklist: https://forge.ourworld.tf/mycelium_code/home/issues/55 — mik-tf
Author
Member

v2.3.0 Update — Farmer→User Loop Complete (2026-04-08)

Closed

What's new

  • Farmer adds node → listing created on hero_ledger automatically
  • farmer_id attribute in product catalog → SPORE transfers to farmer on rental
  • Node identity mapping: ledger listing → OSIS node → hero_compute SID
  • Account provisioning: registration creates NEAR account via account_activate()
  • New test suite: farmer_integration.sh (27 tests)
  • All Playwright E2E fixed and passing: 48/48 SPA + 41/41 Admin + 33/33 Content

Test Pyramid: 354 tests, ALL PASS

Architecture (updated)

Marketplace (Axum :8000)
  ├── hero_ledger gateway → SPORE tokens + TFGrid node catalog (read AND write now)
  ├── hero_compute explorer → VM provisioning (node identity mapping)
  ├── OSIS embedded → users, orders, rentals, messages, SSH keys, API keys
  ├── wallet JSON files → persistent balances + transactions
  └── Stripe → payment gateway (test mode)

Remaining for production (mycelium_code/home#55)

  1. Dedicated PM compute nodes (not self-hosting on node 50)
  2. K3s cluster + DNS + email + backups
  3. Frontend: VM status page, rental management page
  4. External: SPORE funding from Scott
## v2.3.0 Update — Farmer→User Loop Complete (2026-04-08) ### Closed - https://forge.ourworld.tf/mycelium_code/home/issues/67 — Farmer→user deployment loop (all 5 steps implemented) ### What's new - Farmer adds node → listing created on hero_ledger automatically - farmer_id attribute in product catalog → SPORE transfers to farmer on rental - Node identity mapping: ledger listing → OSIS node → hero_compute SID - Account provisioning: registration creates NEAR account via `account_activate()` - New test suite: farmer_integration.sh (27 tests) - All Playwright E2E fixed and passing: 48/48 SPA + 41/41 Admin + 33/33 Content ### Test Pyramid: 354 tests, ALL PASS ### Architecture (updated) ``` Marketplace (Axum :8000) ├── hero_ledger gateway → SPORE tokens + TFGrid node catalog (read AND write now) ├── hero_compute explorer → VM provisioning (node identity mapping) ├── OSIS embedded → users, orders, rentals, messages, SSH keys, API keys ├── wallet JSON files → persistent balances + transactions └── Stripe → payment gateway (test mode) ``` ### Remaining for production (https://forge.ourworld.tf/mycelium_code/home/issues/55) 1. Dedicated PM compute nodes (not self-hosting on node 50) 2. K3s cluster + DNS + email + backups 3. Frontend: VM status page, rental management page 4. External: SPORE funding from Scott
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coopcloud_code/home#40
No description provided.