v0.4.5 What’s new

Theme it once. Every component follows.

59 Svelte components for apps and AI interfaces. Set colors, fonts, radius, and motion in one theme. Install with the CLI, or point your coding agent at the docs.

Coding agent Threads, diffs, checks, and a composer

Rate-limit the public API

Add per-key rate limits to the public API. 100 requests a minute, and return a proper 429 when a client goes over.

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
.use(authenticate)
.use(rateLimit({ limit: 100, window: "1m" }))
.route("/v1", routes);
.route("/v1", routes)
.onError(rateLimitErrors);

Each API key now gets 100 requests per minute. Over the limit, the API returns 429 and tells the client when to retry.

bun test api passes, including 4 new limiter tests.

Chat Reasoning and a streamed reply
Billing assistant Northwind · Team plan
When does my plan renew, and can I pay less?

Your Team plan renews on Oct 14 for $96.

Two seats are unused. Removing them before renewal brings the charge down to $72.

Who isn't using their seat?

Two people have not used their seat this month:

  • Priya Shah, last active Aug 2
  • Leo Martins, invited Jul 18, never signed in

Both can be removed without losing any work.

Issue Select, combobox, tags, and a switch

Checkout stalls on Safari 17

Tapping Pay leaves the spinner running after the card is approved.

Status
Assignee
Priority
Command palette Groups, shortcuts, and a footer

Open the palette and pick a command.