• v1.4.0 336783feb6

    v1.4.0 Stable

    mik-tf released this 2026-03-26 00:16:19 +00:00 | 17 commits to development since this release

    v1.4.0 — Unified release (clean baseline for v2.0 work)

    All repos aligned at v1.4.0

    Includes all work from v0.5.0 through v1.3.x:

    • Ed25519 keypair identity + signature auth
    • Stripe + ClickPesa + Bank payments (live Stripe webhook configured)
    • Signed wallet transactions with server-signed receipts
    • 53/53 issue #19 items complete
    • Product detail 404 fixed (Axum :id route syntax)
    • SQLi + XSS input validation
    • 132 automated tests across 7 layers, ALL PASS
    • FOSS-sovereign DESIGN.md
    • Service worker, visual + chaos Playwright tests

    Clean state

    • All repos on development, 0 dirty files
    • .gitignore added for target/ and test-results/
    • No stale branches

    Signed-off-by: mik-tf

    Downloads
  • v1.3.0 a93f01299c

    v1.3.0 Stable

    mik-tf released this 2026-03-25 21:55:22 +00:00 | 18 commits to development since this release

    v1.3.0 — Issue #19 COMPLETE (53/53 items)

    Every single checklist item from the v1.0 roadmap is done.

    Final items completed in v1.3.0

    • East African currencies (TZS, KES, UGX) in Buy Credits modal
    • Stripe API keys configured from env.sh
    • Clickpesa API keys configured from env.sh
    • Payment credentials deployed to dev VM

    113 tests ALL PASS

    Complete release history

    v0.5.0→v1.3.0 (10 releases across 3 repos)

    Signed-off-by: mik-tf

    Downloads
  • v1.2.0 e613ee81cb

    v1.2.0 Stable

    mik-tf released this 2026-03-25 21:45:25 +00:00 | 19 commits to development since this release

    v1.2.0 — 50/53 Issue #19 Items Complete

    New in v1.2.0

    • Server-signed receipts (HMAC-SHA256)
    • Admin bank transfer approval endpoint
    • Category dropdown in product search
    • Auto top-up frontend wiring
    • Optimistic wallet UI updates
    • Service request forms wired to API
    • Service worker for offline static caching

    Status: 50/53 done

    3 items blocked on external credentials:

    • East African currencies (needs Clickpesa API config)
    • Production Stripe keys (needs account)
    • Production Clickpesa keys (needs account)

    113 tests ALL PASS (25 unit + 50 smoke + 22 integration + 16 Playwright)

    Signed-off-by: mik-tf

    Downloads
  • v1.1.0 a9319cf77f

    v1.1.0 Stable

    mik-tf released this 2026-03-25 21:16:21 +00:00 | 20 commits to development since this release

    v1.1.0 — Issue #19 Complete

    New features

    • Messaging compose — send new messages from compose form
    • SSH key CRUD — list, add SSH keys in settings
    • Receipt storage — transaction receipts stored in localStorage
    • Refund endpoint — POST /api/wallet/refund credits wallet
    • Instant purchase — debit wallet (was NOT_IMPLEMENTED)
    • Quick top-up — credit wallet (was NOT_IMPLEMENTED)
    • Auto top-up — configure + trigger (was NOT_IMPLEMENTED)

    Test results: ALL 132 PASS

    • 25 unit, 50 smoke, 22 integration, 16 Playwright

    Signed-off-by: mik-tf

    Downloads
  • v1.0.2 05b83ac9a8

    v1.0.2 Stable

    mik-tf released this 2026-03-25 20:50:26 +00:00 | 21 commits to development since this release

    v1.0.2 — Comprehensive Test Suite

    Test pyramid (all green)

    Layer Tests Status
    1. Compile cargo check (2 repos) PASS
    2. Unit 25 Rust tests 25/25 PASS
    3. Smoke 69 curl tests 69/69 PASS
    4. API Integration 22 lifecycle tests 22/22 PASS
    5. Playwright E2E 16 browser tests 16/16 PASS
    Total 132 automated tests ALL PASS

    New test suites

    • tests/api_integration.sh — 22 tests: register, challenge, verify, wallet, payments, transact errors, products, SSR compat
    • tests/playwright/ — 16 Playwright tests: full user journey, adversarial (invalid sig, expired, duplicate, unauth), regression (8 known bugs)
    • Backend unit tests fixed: mcp.rs helpers + branding.toml

    Signed-off-by: mik-tf

    Downloads
  • v1.0.1 05b83ac9a8

    v1.0.1 Stable

    mik-tf released this 2026-03-25 04:51:09 +00:00 | 21 commits to development since this release

    v1.0.1 — E2E Bug Fixes

    Fixes (8 bugs resolved)

    1. Buy Now did add-to-cart instead of signed purchase → fixed with ed25519 spend intent
    2. Buy Now errors swallowed silently → now shows alert dialog
    3. New user balance was 0 MC (hardcoded override) → now 100 MC starter credits
    4. InsufficientFunds returned HTTP 200 → now returns 402 with clear message
    5. JWT fallback not sent in API requests → Bearer token now included alongside signatures
    6. Middleware didn't fall back to JWT when signature failed → added fallback
    7. Auth endpoints didn't return JWT → register + verify now return JWT token
    8. Unauthenticated Buy Now silently redirected → now shows "Please sign in" alert (matches SSR)

    Browser E2E verified

    • Register → 100 MC balance → Marketplace → Buy Now → Order Confirmed → 70.01 MC balance
    • Session persistence, Sign Out, auth alert for unauthenticated users
    • 26/26 + 24/24 smoke tests PASS

    Signed-off-by: mik-tf

    Downloads
  • v1.0.0 bdd4ca1677

    v1.0.0 Stable

    mik-tf released this 2026-03-25 01:48:52 +00:00 | 27 commits to development since this release

    v1.0.0 — Production-Ready FOSS-Sovereign Marketplace SPA

    Complete Feature Set

    Identity & Auth

    • Ed25519 keypair vault (AES-256-GCM + PBKDF2 100k iterations)
    • Signature-based auth (every API request signed)
    • Session persistence (sessionStorage, 30 min idle timeout)
    • Stateless HMAC challenges (horizontally scalable)
    • Full body SHA-256 verification in middleware
    • User-friendly UX (Sign In, Passphrase, Create Account)

    Payments

    • PaymentProvider trait + 4 implementations (Demo, Stripe, Clickpesa, Bank Transfer)
    • Webhook endpoints with HMAC signature verification
    • Payment initiation API with redirect URLs
    • Buy Credits modal with gateway selection

    Wallet

    • Signed spend intents (ed25519 signature required for purchases)
    • Credit/debit with balance tracking and receipts
    • Buy Now flow on product detail page
    • Balance + notification polling every 30s

    Polish

    • 45+ routes with 4 layout types
    • 48 dioxus-bootstrap-css signal-driven components
    • Form validation (register, checkout)
    • SSR visual parity (same Bootstrap 5.3.3 CSS)
    • DESIGN.md — complete FOSS-sovereign architecture document (17 sections)

    Test Results

    • 26/26 API smoke tests (SSR domain) PASS
    • 24/24 API smoke tests (SPA domain) PASS
    • 19/19 SPA frontend smoke tests PASS
    • Browser E2E: register → dashboard → refresh → sign out → sign in (all PASS)

    Container Images

    forge.ourworld.tf/mycelium_code/projectmycelium_marketplace:v1.0.0
    forge.ourworld.tf/mycelium_code/projectmycelium_marketplace:latest
    forge.ourworld.tf/mycelium_code/projectmycelium_marketplace_frontend:v1.0.0
    forge.ourworld.tf/mycelium_code/projectmycelium_marketplace_frontend:latest
    

    Live

    Signed-off-by: mik-tf

    Downloads
  • v0.8.0 bdd4ca1677

    v0.8.0 Stable

    mik-tf released this 2026-03-25 01:39:53 +00:00 | 27 commits to development since this release

    v0.8.0 — Data Parity & Polish

    What is new

    • Balance polling — wallet balance + unread messages refreshed every 30s when authenticated
    • Buy Now flow — product detail page Buy Now signs spend intent, deducts wallet, redirects to confirmation
    • Form validation — register page validates name (required), email (format), passphrase (match + min 6 chars)
    • Unified polling — single async loop for balance + notification sync (stops when signed out)

    Test results

    • 26/26 API smoke tests (SSR) PASS
    • 24/24 API smoke tests (SPA) PASS
    • Deployed to dev

    Signed-off-by: mik-tf

    Downloads
  • v0.7.0 7ca431f09b

    v0.7.0 Stable

    mik-tf released this 2026-03-25 01:14:07 +00:00 | 28 commits to development since this release

    v0.7.0 — Signed Wallet Transactions

    What is new

    • Signed spend intents — client signs {action}\n{amount}\n{product_id}\n{timestamp} with ed25519 key
    • POST /api/wallet/transact — verify signature, check balance, deduct credits, return receipt
    • Checkout integration — Place Order → sign spend intent → deduct wallet → create order → show confirmation
    • Balance update — wallet balance display updates after purchase
    • Insufficient funds handling — returns shortfall amount if balance too low

    Flow

    User clicks Place Order
      → Vault signs spend intent (ed25519)
      → POST /api/wallet/transact { action, amount, product_id, public_key, timestamp, signature }
      → Backend verifies signature against registered pubkey
      → Backend checks balance >= amount
      → Backend deducts credits via WalletManager.debit()
      → Returns { receipt_id, new_balance }
      → Frontend creates order via POST /api/orders
      → User sees confirmation + updated balance
    

    Test results

    • 26/26 API smoke tests PASS
    • Both repos compile clean
    • Deployed to dev
    • Wallet balance tracking works (demo starts at 1250 MC)

    Signed-off-by: mik-tf

    Downloads
  • v0.6.0 094360a862

    v0.6.0 Stable

    mik-tf released this 2026-03-25 00:55:16 +00:00 | 29 commits to development since this release

    v0.6.0 — Payment Integration (Stripe, Clickpesa, Bank Transfer)

    What is new

    • PaymentProvider trait — abstract interface with 4 implementations (Demo, Stripe, Clickpesa, Bank)
    • Stripe provider — Checkout Sessions API, HMAC-SHA256 webhook signature verification
    • ClickPesa provider — JWT auth, checkout link generation, webhook HMAC verification
    • Bank Transfer provider — displays bank details, min $1000, manual admin confirmation
    • Demo provider — instant confirmation with fake URLs (DEMO_PAYMENT=true, default)
    • Webhook endpoints — POST /api/webhooks/stripe, POST /api/webhooks/clickpesa
    • Payment API — POST /api/payments/initiate (returns checkout URL), GET /api/payments/status
    • Buy Credits UI — wallet page modal with amount + gateway selection → redirects to payment URL
    • Provider registry — auto-selects provider from PAYMENT_PROVIDER env var

    Environment variables

    PAYMENT_PROVIDER=demo|stripe|clickpesa|bank
    DEMO_PAYMENT=true|false
    STRIPE_SECRET_KEY=sk_test_...
    STRIPE_WEBHOOK_SECRET=whsec_...
    CLICKPESA_CLIENT_ID=...
    CLICKPESA_API_SECRET=...
    CLICKPESA_WEBHOOK_SECRET=...
    

    Test results

    • 26/26 API smoke tests PASS
    • Payment initiation returns checkout URL (demo mode)
    • Webhook endpoint accepts and processes events
    • Buy Credits modal wired to payment API

    Signed-off-by: mik-tf

    Downloads