feat: add real-time cost ticker for Workshop interactions
Some checks failed
CI / Typecheck & Lint (pull_request) Failing after 0s
Some checks failed
CI / Typecheck & Lint (pull_request) Failing after 0s
Adds a live cost ticker (⚡ ~N sats) visible in the top-right HUD during active paid interactions. The ticker appears when a work invoice is issued with the estimated cost, updates to the final charged amount when the job completes, and auto-hides after 5s. Changes: - event-bus.ts: add CostEvent type { cost:update, jobId, sats, phase, isFinal } - events.ts: translate cost:update bus events → cost_update WS messages - jobs.ts: emit cost:update with estimated sats on invoice creation, and again with actual sats when work completes (paid jobs only) - sessions.ts: emit cost:update with debitedSats after each session request - ui.js: add showCostTicker/updateCostTicker/hideCostTicker (fixed-position HUD badge) - websocket.js: handle cost_update messages, drive the cost ticker Fixes #68 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -465,6 +465,11 @@ router.post("/sessions/:id/request", async (req: Request, res: Response) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Emit real-time cost update for the UI cost ticker (#68)
|
||||
if (finalState === "complete" && debitedSats > 0) {
|
||||
eventBus.publish({ type: "cost:update", jobId: requestId, sats: debitedSats, phase: "session", isFinal: true });
|
||||
}
|
||||
|
||||
// ── Trust scoring ────────────────────────────────────────────────────────
|
||||
if (session.nostrPubkey) {
|
||||
if (finalState === "complete") {
|
||||
|
||||
Reference in New Issue
Block a user