Files
Codeman/.changeset
Codeman maintainer 1082724db9 perf(zerolag): rebuild only the changed overlay line, one paint layer per line
The local echo overlay rebuilt every character of the prompt on each
keystroke, one absolutely positioned span per character, so a keystroke
cost O(prompt length) in DOM work, style, layout and paint. Every
positioned span was also its own paint layer, so the browser re-layerized
and repainted thousands of them per frame. In headless Chromium with a 6x
CPU slowdown, a ~4,100-character prompt ran at a median 813 ms per frame,
and ~300 characters already missed 60 fps (54 ms).

renderOverlay() now keeps a per-container record of the line elements it
drew and rebuilds only lines whose text, position or composition range
changed. It starts over when the font, colour, cell size or Unicode
version changes, or when something else emptied or edited the container.

makeLine() lays the spans out in a flex row instead of positioning each
one, and sets the shared font styles once on the line. Cell edges are
snapped to a quarter pixel, which Blink, WebKit and Gecko all store
exactly, so the widths add up to the grid without drift and every edge
stays within 1/8 px of col * cellW. Same prompt: 17 ms per frame.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 06:07:34 +01:00
..
2026-02-27 10:58:10 +01:00
2026-02-27 10:58:10 +01:00

Changesets

Hello and welcome! This folder has been automatically generated by @changesets/cli, a build tool that works with multi-package repos, or single-package repos to help you version and publish your code. You can find the full documentation for it in the repository.

What is a changeset?

A changeset is a piece of information about changes made in a branch or commit. It holds three bits of information:

  • What packages need to be released
  • What semver bump type each package should receive (major / minor / patch)
  • A summary of the changes

How do I create a changeset?

Run npx changeset or create a .md file in this directory with the following format:

---
"codeman": patch
---

Description of changes

The frontmatter specifies which package(s) to bump and the bump type. The body is the changelog entry.