Avatar for the bombshell-dev user
bombshell-dev
tty
BlogDocsChangelog

Performance History

Latest Results

style: clang-format
nm/cell-grapheme
1 day ago
style: deno fmt
nm/cell-grapheme
1 day ago
build(deps): bump the github-actions group across 1 directory with 3 updates (#111) 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 5.0.1 - [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...88472375d0a4572cf70a9f1fe3a4e0ab8da1b924) --- 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> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
main
2 days ago
โœจ hardware cursor positioning via text() caret (#103) * spec(renderer): add hardware cursor visibility and positioning * ๐Ÿ“ spec(renderer): note ยง7.6 carve-out in ยง11.2 output description * feat(term): emit hardware cursor at text() caret offset * ๐Ÿงช test(term): cursor hides on caret-present โ†’ caret-absent transition * ๐Ÿงช test(term): no cursor bytes when no caret ever declared * ๐Ÿงช test(term): caret at end-of-content positions one cell past last char * ๐Ÿงช test(term): caret lands on correct line after text wrapping * ๐Ÿงช test(term): caret accounts for wide-character cell widths * ๐Ÿงช test(term): first caret declaration wins when multiple present * โœจ example(term): interactive text input demonstrating caret * ๐Ÿ“ AGENTS.md: reflect ยง7.6 cursor management exception * ๐Ÿงช test(term): document v1 limitation for caret on empty text * ๐ŸŽจ example(term): simplify layout and fall back to space for empty input * linting & formatting * ๐Ÿ“ spec(renderer): specify caret behavior on empty text content Adds a normative paragraph to ยง7.6 stating that a `caret` declaration on empty content places the cursor at the text element's origin โ€” the cell where the first code point of `content` would be drawn if it were a single space. Frames the empty-content case as a rendering commitment the renderer must honor, without prescribing mechanism. * โœจ feat(term): resolve caret cell on empty text content Substitute a single-space slice for empty text nodes carrying a caret declaration so the layout engine emits one cell of geometry at the text element's origin. Replaces the v1-limitation test with one asserting the spec's outcome (CUP to row 1, col 1 + DECTCEM-show). * ๐Ÿ”ฅ example(term): drop empty-value workaround now handled by renderer The `value || " "` fallback previously worked around the renderer's inability to attach a caret to an empty text node. That case is now handled directly by the renderer, so the example can pass the raw value through and let the caret resolve at the input box's origin. * ๐Ÿ“ spec(renderer): specify caret behavior at wrap boundaries * ๐Ÿ› 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. * make tests visual
main
3 days ago

Latest Branches

CodSpeed Performance Gauge
-16%
fix: preserve grapheme clusters (combining marks) in cell emission#114
1 day ago
07a84e9
nm/cell-grapheme
CodSpeed Performance Gauge
0%
2 days ago
6203ef3
fix/border-reserves-space
CodSpeed Performance Gauge
0%
ยฉ 2026 CodSpeed Technology
Home Terms Privacy Docs