Markdown

Markdown from a model or a person, safely: headings, lists, tables, code blocks and links, with raw HTML kept as text.

View source

Why the 429s started

Requests to gpt-5 from checkout-api hit the project's limit of 60 a minute at 14:05 UTC. Three things changed:

  1. The retry loop in the worker doubled its traffic.
  2. A new key, kae_live_…3f9a, shares the same limit.
  3. The budget alert fired at 80% — see the usage page (opens in a new tab).
ModelRequestsp95
gpt-54,8122.4 s
gpt-5-mini1,2040.9 s
for attempt in range(3):    try:        return client.responses.create(model="gpt-5", input=prompt)    except RateLimitError:        time.sleep(2 ** attempt)

Raise the limit only after the retry loop backs off.

  • [x]
    Find the cause
  • [ ]
    Ship the backoff
import { Markdown } from "@logicplanes/kaeso-ui/markdown";

Props

  • collapseAfter
    number = 24000

    Texts longer than this many characters show their start and "Show all" (24,000 by default; 0 never collapses).

  • headingLevel
    4 | 1 | 2 | 3 | 5 | 6 = 3

    The heading level # becomes (3 by default: below a page's and a section's own headings).

  • size
    "lg" | "body" | "small" = body

    The text size: small, body or lg.

  • streaming
    boolean = false

    The text is still arriving: nothing collapses, and the tokens aren't cached.

  • text
    string

    The Markdown source. Raw HTML in it stays text.

  • tone
    "secondary" | "default" = default

    Primary text (default) or secondary text (secondary).

  • trailing
    ReactNode

    Drawn inline after the last word of a paragraph, heading or list item (never on a line of its own).

  • wrapCode
    boolean = false

    Long code lines wrap instead of scrolling sideways (narrow columns).