Skip to content

feat(carat): Carat Calculator + timeline-proxy worker#57

Merged
jalbarrang merged 10 commits into
mainfrom
feat/carat-calculator
Jun 21, 2026
Merged

feat(carat): Carat Calculator + timeline-proxy worker#57
jalbarrang merged 10 commits into
mainfrom
feat/carat-calculator

Conversation

@jalbarrang

@jalbarrang jalbarrang commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the Carat Calculator — a banner-planning tool that pulls live banner/timeline data from uma.moe (via a new Cloudflare Worker proxy) and lets players plan pulls, see rate-up odds, and balance income against spend.

What's included

  • Carat Calculator page — sortable banner plan table/cards, banner identity, pulls field, add/remove banner controls, timeline and balance-verdict panels, summary stats, and live-data status.
  • Rate-up Uma odds — character banner rows show plain-language rate-up chance derived from real gacha rates (0.75% per pickup, 3% total 3-star), combining multi-pickup banners. Support rows keep the copies bar.
  • Income model — income tables, selectors, and store wiring for balance projection (with unit tests).
  • workers/timeline-proxy — Cloudflare Worker that holds the upstream UMA_MOE_API_KEY server-side and exposes a small read-only surface, gated by an origin allowlist or an optional proxy key.
  • CI / config — wires VITE_TIMELINE_WORKER_URL into the Cloudflare Pages deploy workflow; .env.example and worker .dev.vars.example updated.
  • Tooling — adds impeccable skill docs; removes the old .code-review/ and skills-lock.json tooling.

Data flow

flowchart LR
  UI[Carat Calculator page] -->|GET /timeline| W[timeline-proxy Worker]
  W -->|X-API-Key| M[uma.moe resources]
  M -->|manifest + gzipped JSON| W
  W -->|JSON| UI
  UI --> S[carat.store]
  S --> ODDS[odds + income model]
  ODDS --> UI
Loading

Secrets

No secrets committed. UMA_MOE_API_KEY / PROXY_API_KEY are set via wrangler secret put; VITE_TIMELINE_WORKER_URL is a public GitHub variable.

jalbarrang and others added 7 commits June 20, 2026 20:49
Split planning table into sortable rows/cards, banner identity, pulls
field, add/remove banner controls, timeline and balance verdict panels,
and live data status. Add income tables and wire store updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
Track impeccable SKILL.md and reference docs. Ignore .impeccable/ and
the impeccable scripts directory.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the LB/MLB copies distribution with a plain-language rate-up
chance for Uma banners. The odds are derived from the real gacha rates
(0.75% per pickup, 3% total 3-star) and combine multi-pickup banners by
counting rarity-3 pickup cards. Support card rows keep the copies bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jalbarrang jalbarrang changed the title feat/carat calculator feat(carat): Carat Calculator + timeline-proxy worker Jun 21, 2026
@jalbarrang jalbarrang merged commit 2292ba9 into main Jun 21, 2026
8 checks passed
@jalbarrang jalbarrang deleted the feat/carat-calculator branch June 21, 2026 21:36
jalbarrang pushed a commit that referenced this pull request Jun 21, 2026
## [0.17.0](v0.16.2...v0.17.0) (2026-06-21)

### Features

* **carat:** Carat Calculator + timeline-proxy worker ([#57](#57)) ([2292ba9](2292ba9))
@jalbarrang

Copy link
Copy Markdown
Owner Author

🎉 This PR is included in version 0.17.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant