Theme it once. Every component follows.
Browse components Give Sivir to your AI
$ `bunx @sivir-ui/svelte init -y` Copy command
SivirLegacyMagicProfitableRavenClawdInspirationGovernment
Coding agent Threads, diffs, checks, and a composer
Add per-key rate limits to the public API. 100 requests a minute, and return a proper 429 when a client goes over.
Searched twice, read 3 files 1.9s
Every request passes through `authenticate`, so the limiter sits right after it and keys on the API key. It uses a sliding window in Redis, so a client cannot burst across a minute boundary.
src/app.ts +3 −1
9 9
10 +
10 −
11 +
12 +
Created 2 files, ran 1 command 3.2s
Each API key now gets . Over the limit, the API returns `429` and tells the client when to retry.
`bun test api` passes, including 4 new limiter tests.
Copy
Message could not be sent.
Sivir 3.1
Chat Reasoning and a streamed reply
When does my plan renew, and can I pay less?
Checked the subscription and seat usage
Your plan renews on for .
Two seats are unused. Removing them before renewal brings the charge down to .
Who isn't using their seat?
Thinking Thought for 1.2s
Two people have not used their seat this month:
- , last active Aug 2
- , invited Jul 18, never signed in
- checkout
- safari
Both can be removed without losing any work.
Message could not be sent.
Issue Select, combobox, tags, and a switch
Tapping Pay leaves the spinner running after the card is approved.
Status
In progress
Assignee
Priority
High
Labels
Notify watchers 3 people follow this issue.
Command palette Groups, shortcuts, and a footer
Search Q3 launch plan ⌘K
Open the palette and pick a command.
