new tasks, devnet topup, cli, new model support
This commit is contained in:
38
docs/issues/40-devnet-dashboard-topup.md
Normal file
38
docs/issues/40-devnet-dashboard-topup.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# US-040 — Devnet top-up button on the dashboard
|
||||
|
||||
Status: planned
|
||||
Priority: High (friends-test convenience — refill without on-chain deposits)
|
||||
Stage: Designed
|
||||
|
||||
## Context
|
||||
|
||||
Once Caller Credit (US-039) is spent, the only refill path is a real USDT
|
||||
deposit through the treasury watcher — devnet Solana plumbing friends won't
|
||||
have. For test deployments the dashboard needs a "add $10" style button.
|
||||
This is a faucet: 0 disables it, and mainnet deployments must set 0.
|
||||
|
||||
## Design
|
||||
|
||||
1. **`--devnet-topup N`** (USDT per click) on `meshnet-tracker start`; stack
|
||||
variable `DEVNET_TOPUP`. Default is the single constant
|
||||
`DEFAULT_DEVNET_TOPUP_USDT = 1.0` in `server.py` (devnet-friendly alpha,
|
||||
revised 2026-07-06 — the alpha's public trackers are devnet-only).
|
||||
2. **`POST /v1/account/topup`** — session-authenticated (same as key
|
||||
management). Body: `{"api_key": "sk-mesh-..."}`. Rules:
|
||||
- 404 when the feature is disabled (flag absent/0)
|
||||
- key must belong to the logged-in account (403 otherwise)
|
||||
- credits exactly the configured amount (client cannot choose it),
|
||||
note `devnet-topup`; returns the new balance
|
||||
3. **Dashboard**: `/v1/account` response gains `topup_amount` (0 when
|
||||
disabled); when positive, each key row renders a `+$N (devnet)` button
|
||||
calling the endpoint.
|
||||
4. **Abuse bound**: per-click amount is operator-set and requires a registered
|
||||
session; acceptable for a friends-test faucet. Mainnet deployments simply
|
||||
never set the flag. (Rate limiting is deliberately out of scope.)
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- Flag off: endpoint 404s, dashboard shows no top-up button
|
||||
- Flag on: logged-in user tops up own key, balance rises by exactly N
|
||||
- Topping up another account's key → 403
|
||||
- `python -m pytest` passes from repo root
|
||||
Reference in New Issue
Block a user