bombshell-dev
tty
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
đ§ź generate compact `wcwidth` tables (#49) * ref(wcwidth): generate efficient wcwidth tables * ref(wcwidth): deslop * perf(wcwidth): add BMP filter + fast path, use single table for binary search * ref(ci): add verify task * deno fmt * ref(wcwidth): generate clang-format friendly code * fix(verify): handle --check flag * deno lint * ref(wcwidth): add datahash * ref(wcwidth): correctness pass * ref(wcwidth): performance pass * ref(wcwidth): upgrade to unicode 17 * ref(wcwidth): regen * fix format * fix(render): measure non-printable codepoints as one cell The draw path coerces wcwidth() == -1 to one cell and emits U+FFFD, but the Clay measure callback skipped those codepoints entirely, so a fit-sized box around text containing a control character or noncharacter measured narrower than what the renderer draws. Mirror draw_text in measure(): coerce -1 to 1, and substitute U+FFFD on UTF-8 decode failure instead of passing an uninitialized codepoint to wcwidth(). * fix(wcwidth): treat surrogates as non-printable utf8_decode() accepts CESU-8 surrogate encodings, and the Unicode 17 tables default unlisted codepoints to width 1, so a surrogate reaching draw_text was emitted to the terminal as invalid UTF-8 (the old termbox2 table returned -1 for U+D800..U+DFFF and the emit path sanitized it to U+FFFD). Guard the surrogate range in the generated wcwidth() so iswprint() rejects it and the emit path substitutes U+FFFD again. Also derive the generated header's Unicode version from the same constant as the data URL; it was left saying 16.0 after the 17.0 upgrade.
main
3 days ago
make tests visual
cowboyd/text-caret
3 days ago
fix(wcwidth): treat surrogates as non-printable utf8_decode() accepts CESU-8 surrogate encodings, and the Unicode 17 tables default unlisted codepoints to width 1, so a surrogate reaching draw_text was emitted to the terminal as invalid UTF-8 (the old termbox2 table returned -1 for U+D800..U+DFFF and the emit path sanitized it to U+FFFD). Guard the surrogate range in the generated wcwidth() so iswprint() rejects it and the emit path substitutes U+FFFD again. Also derive the generated header's Unicode version from the same constant as the data URL; it was left saying 16.0 after the 17.0 upgrade.
ref/wcwidth
3 days ago
build(deps): bump the github-actions group across 1 directory with 3 updates Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node) and [CodSpeedHQ/action](https://github.com/codspeedhq/action). Updates `actions/checkout` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1) Updates `actions/setup-node` from 6.4.0 to 7.0.0 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020) Updates `CodSpeedHQ/action` from 4.18.2 to 4.18.5 - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codspeedhq/action/compare/4e969336ab9acd4f6f8d025fdd793292b0835df0...f99becdce5e5d51fd556489ebef684f4ecfd6286) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: actions/setup-node dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: CodSpeedHQ/action dependency-version: 4.18.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot/github_actions/github-actions-ccf548cffb
11 days ago
build(deps): bump the github-actions group with 2 updates Bumps the github-actions group with 2 updates: [actions/setup-node](https://github.com/actions/setup-node) and [CodSpeedHQ/action](https://github.com/codspeedhq/action). Updates `actions/setup-node` from 6.4.0 to 7.0.0 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020) Updates `CodSpeedHQ/action` from 4.18.2 to 4.18.5 - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codspeedhq/action/compare/4e969336ab9acd4f6f8d025fdd793292b0835df0...f99becdce5e5d51fd556489ebef684f4ecfd6286) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: CodSpeedHQ/action dependency-version: 4.18.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot/github_actions/github-actions-23d0c9bbca
18 days ago
đ fix(term): resolve caret cell during the render walk Precompute the caret's byte offset within its text node at OP_TEXT decode time, then place the caret cell as a side effect of render_text's existing walk: at the top of each iteration, if the current pointer matches the target byte offset, record the cell. Two edge cases fall out of the same mechanism. A slice whose first byte is already past the target (Clay dropped whitespace at the wrap seam) snaps the caret to the slice's origin â the start of the next wrapped line â rather than orphaning it off the end of the previous line. And the trailing cell of the last walked caret slice is remembered as the end-of-content fallback for offset == content-length. Deletes locate_caret, which walked slices with a code-point accumulator that diverged from the caller's original offset whenever the layout engine's wrap pass either dropped or retained-off-screen the seam whitespace. Adds tests covering both wrap-boundary cases and tightens the previously-lax "correct wrapped line" assertion to an exact cell.
cowboyd/text-caret
23 days ago
⨠add 2048 example showcasing transitions (#107)
main
24 days ago
build(deps): bump the github-actions group with 2 updates (#108) Bumps the github-actions group with 2 updates: [denoland/setup-deno](https://github.com/denoland/setup-deno) and [CodSpeedHQ/action](https://github.com/codspeedhq/action). Updates `denoland/setup-deno` from 2.0.4 to 2.0.5 - [Release notes](https://github.com/denoland/setup-deno/releases) - [Commits](https://github.com/denoland/setup-deno/compare/667a34cdef165d8d2b2e98dde39547c9daac7282...22d081ff2d3a40755e97629de92e3bcbfa7cf2ed) Updates `CodSpeedHQ/action` from 4.18.1 to 4.18.2 - [Release notes](https://github.com/codspeedhq/action/releases) - [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codspeedhq/action/compare/a4a36bb07c0638b0b4ca52bf1f3dad1b4289e52f...4e969336ab9acd4f6f8d025fdd793292b0835df0) --- updated-dependencies: - dependency-name: denoland/setup-deno dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: CodSpeedHQ/action dependency-version: 4.18.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
main
24 days ago
Latest Branches
CodSpeed Performance Gauge
-12%
⨠hardware cursor positioning via text() caret
#103
3 days ago
ee012e8
cowboyd/text-caret
CodSpeed Performance Gauge
-7%
đ§ź generate compact `wcwidth` tables
#49
3 days ago
0c96ff3
ref/wcwidth
CodSpeed Performance Gauge
0%
build(deps): bump the github-actions group across 1 directory with 3 updates
#111
11 days ago
8d86cbd
dependabot/github_actions/github-actions-ccf548cffb
Š 2026 CodSpeed Technology
Home
Terms
Privacy
Docs