diff --git a/.changeset/emudhra-bun-1-4-4-runtime.md b/.changeset/emudhra-bun-1-4-4-runtime.md deleted file mode 100644 index 3d6d4fda6..000000000 --- a/.changeset/emudhra-bun-1-4-4-runtime.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hunkdiff": patch ---- - -Upgrade the bundled Bun runtime to 1.4.4 so Hunk's own HTTPS requests (GitHub review via `hunk gh`, extension fetches) reject certificates issued by the compromised eMudhra intermediate CAs. diff --git a/.changeset/launch-video-0-24-roundup.md b/.changeset/launch-video-0-24-roundup.md deleted file mode 100644 index a845151cc..000000000 --- a/.changeset/launch-video-0-24-roundup.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/nix-baseline-runtime.md b/.changeset/nix-baseline-runtime.md deleted file mode 100644 index d9ab31c26..000000000 --- a/.changeset/nix-baseline-runtime.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hunkdiff": patch ---- - -Build the Nix package with the same script as the npm and GitHub release binaries, so Nix installs always ship the same entrypoints and x64 baseline runtime policy. diff --git a/.changeset/nix-compile-entrypoints-drift.md b/.changeset/nix-compile-entrypoints-drift.md deleted file mode 100644 index a845151cc..000000000 --- a/.changeset/nix-compile-entrypoints-drift.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/nix-highlight-worker.md b/.changeset/nix-highlight-worker.md deleted file mode 100644 index 208be01af..000000000 --- a/.changeset/nix-highlight-worker.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hunkdiff": patch ---- - -Fix missing syntax highlighting in Nix-built binaries by bundling the highlighting worker. diff --git a/.changeset/current-stable-changelog-smoke.md b/.changeset/patch-release-preparation.md similarity index 100% rename from .changeset/current-stable-changelog-smoke.md rename to .changeset/patch-release-preparation.md diff --git a/.changeset/search-every-occurrence.md b/.changeset/search-every-occurrence.md deleted file mode 100644 index 10330add6..000000000 --- a/.changeset/search-every-occurrence.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"hunkdiff": minor ---- - -`n` / `N` now stop at every search match, including later matches in the same hunk or on the same line, in on-screen order: top to bottom in unified view and row by row, old side first, in split view. Extension API 32 adds `ctx.selection.layout`, the resolved `split` or `unified` layout; TypeScript authors constructing `ExtensionReviewSelection` must add the field. A new `/` search now starts at the cursor line instead of skipping the selected hunk. diff --git a/.changeset/stable-release-preparation.md b/.changeset/stable-release-preparation.md deleted file mode 100644 index a845151cc..000000000 --- a/.changeset/stable-release-preparation.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/ubuntu-qemu-user.md b/.changeset/ubuntu-qemu-user.md deleted file mode 100644 index a845151cc..000000000 --- a/.changeset/ubuntu-qemu-user.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.changeset/vector-brand-exports.md b/.changeset/vector-brand-exports.md deleted file mode 100644 index a845151cc..000000000 --- a/.changeset/vector-brand-exports.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/CHANGELOG.md b/CHANGELOG.md index 3940ecc64..6b5920124 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 0.24.1 + +### Patch Changes + +- [#1218](https://github.com/modem-dev/hunk/pull/1218) [`8da0984`](https://github.com/modem-dev/hunk/commit/8da098499e44808a19d6bfe6df91ac9ebd26521e) - Upgrade the bundled Bun runtime to 1.4.4 so Hunk's own HTTPS requests (GitHub review via `hunk gh`, extension fetches) reject certificates issued by the compromised eMudhra intermediate CAs. + +- [#1214](https://github.com/modem-dev/hunk/pull/1214) [`43138ca`](https://github.com/modem-dev/hunk/commit/43138ca1b997a1245fa3d2e5523a140f7d456766) - Build the Nix package with the same script as the npm and GitHub release binaries, so Nix installs always ship the same entrypoints and x64 baseline runtime policy. + +- [#1211](https://github.com/modem-dev/hunk/pull/1211) [`96619db`](https://github.com/modem-dev/hunk/commit/96619dbcde205b3a296df6970aa82e46b33e955b) - Fix missing syntax highlighting in Nix-built binaries by bundling the highlighting worker. + +- [#1212](https://github.com/modem-dev/hunk/pull/1212) [`0f33a95`](https://github.com/modem-dev/hunk/commit/0f33a952b5610c7aa7e5d8c0341716a7398343e0) - `n` / `N` now stop at every search match, including later matches in the same hunk or on the same line, in on-screen order: top to bottom in unified view and row by row, old side first, in split view. Extension API 32 adds `ctx.selection.layout`, the resolved `split` or `unified` layout; TypeScript authors constructing `ExtensionReviewSelection` must add the field. A new `/` search now starts at the cursor line instead of skipping the selected hunk. + ## 0.24.0 ### Minor Changes diff --git a/benchmarks/release/bench-0.24.1.json b/benchmarks/release/bench-0.24.1.json new file mode 100644 index 000000000..16ff6834b --- /dev/null +++ b/benchmarks/release/bench-0.24.1.json @@ -0,0 +1,1822 @@ +{ + "version": 1, + "generatedAt": "2026-10-24T17:54:14.404Z", + "gitSha": "c3af44f8c8f2c661545f89f91e48ac142c4d9368", + "packageVersion": "0.24.1", + "runtime": { + "bunVersion": "1.4.4", + "platform": "linux", + "arch": "x64" + }, + "samplesPerBenchmark": 5, + "results": [ + { + "name": "bootstrap-load/file_pair_bootstrap_ms", + "source": "bootstrap-load", + "samples": [22.06, 19.92, 20.07, 20.29, 20.46], + "median": 20.29, + "p75": 20.46, + "p95": 22.06, + "min": 19.92, + "max": 22.06, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "bootstrap-load/files", + "source": "bootstrap-load", + "samples": [64, 64, 64, 64, 64], + "median": 64, + "p75": 64, + "p95": 64, + "min": 64, + "max": 64, + "unit": "count", + "comparable": false + }, + { + "name": "bootstrap-load/git_bootstrap_ms", + "source": "bootstrap-load", + "samples": [44.91, 45.32, 44.01, 44.11, 46.26], + "median": 44.91, + "p75": 45.32, + "p95": 46.26, + "min": 44.01, + "max": 46.26, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "bootstrap-load/git_diff_subprocess_ms", + "source": "bootstrap-load", + "samples": [10.45, 10.74, 9.99, 10.59, 10.08], + "median": 10.45, + "p75": 10.59, + "p95": 10.74, + "min": 9.99, + "max": 10.74, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "bootstrap-load/git_parse_patch_ms", + "source": "bootstrap-load", + "samples": [7.53, 6.52, 5.88, 4.88, 5.16], + "median": 5.88, + "p75": 6.52, + "p95": 7.53, + "min": 4.88, + "max": 7.53, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "bootstrap-load/git_split_patch_chunks_ms", + "source": "bootstrap-load", + "samples": [1.68, 1.39, 1.4, 1.76, 1.38], + "median": 1.4, + "p75": 1.68, + "p95": 1.76, + "min": 1.38, + "max": 1.76, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "bootstrap-load/lines_per_file", + "source": "bootstrap-load", + "samples": [420, 420, 420, 420, 420], + "median": 420, + "p75": 420, + "p95": 420, + "min": 420, + "max": 420, + "unit": "count", + "comparable": false + }, + { + "name": "bootstrap-load/parsed_files", + "source": "bootstrap-load", + "samples": [64, 64, 64, 64, 64], + "median": 64, + "p75": 64, + "p95": 64, + "min": 64, + "max": 64, + "unit": "count", + "comparable": false + }, + { + "name": "bootstrap-load/patch_chunks", + "source": "bootstrap-load", + "samples": [64, 64, 64, 64, 64], + "median": 64, + "p75": 64, + "p95": 64, + "min": 64, + "max": 64, + "unit": "count", + "comparable": false + }, + { + "name": "changeset-parse/balanced_changeset_build_diff_files_ms", + "source": "changeset-parse", + "samples": [0.29, 0.26, 0.3, 0.3, 0.3], + "median": 0.3, + "p75": 0.3, + "p95": 0.3, + "min": 0.26, + "max": 0.3, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/balanced_changeset_files", + "source": "changeset-parse", + "samples": [96, 96, 96, 96, 96], + "median": 96, + "p75": 96, + "p95": 96, + "min": 96, + "max": 96, + "unit": "count", + "comparable": false + }, + { + "name": "changeset-parse/balanced_changeset_normalize_patch_ms", + "source": "changeset-parse", + "samples": [0.23, 0.21, 0.2, 0.21, 0.2], + "median": 0.21, + "p75": 0.21, + "p95": 0.23, + "min": 0.2, + "max": 0.23, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/balanced_changeset_parse_patch_ms", + "source": "changeset-parse", + "samples": [2.49, 5.69, 2.5, 2.44, 2.32], + "median": 2.49, + "p75": 2.5, + "p95": 5.69, + "min": 2.32, + "max": 5.69, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/balanced_changeset_patch_bytes", + "source": "changeset-parse", + "samples": [682727, 682727, 682727, 682727, 682727], + "median": 682727, + "p75": 682727, + "p95": 682727, + "min": 682727, + "max": 682727, + "unit": "bytes", + "comparable": false + }, + { + "name": "changeset-parse/balanced_changeset_split_chunks_ms", + "source": "changeset-parse", + "samples": [0.71, 0.72, 0.76, 0.67, 0.71], + "median": 0.71, + "p75": 0.72, + "p95": 0.76, + "min": 0.67, + "max": 0.76, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/large_single_file_build_diff_files_ms", + "source": "changeset-parse", + "samples": [0.05, 0.07, 0.07, 0.07, 0.06], + "median": 0.07, + "p75": 0.07, + "p95": 0.07, + "min": 0.05, + "max": 0.07, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/large_single_file_files", + "source": "changeset-parse", + "samples": [1, 1, 1, 1, 1], + "median": 1, + "p75": 1, + "p95": 1, + "min": 1, + "max": 1, + "unit": "count", + "comparable": false + }, + { + "name": "changeset-parse/large_single_file_normalize_patch_ms", + "source": "changeset-parse", + "samples": [0.09, 0.09, 0.08, 0.09, 0.08], + "median": 0.09, + "p75": 0.09, + "p95": 0.09, + "min": 0.08, + "max": 0.09, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/large_single_file_parse_patch_ms", + "source": "changeset-parse", + "samples": [0.71, 0.95, 0.72, 0.77, 0.74], + "median": 0.74, + "p75": 0.77, + "p95": 0.95, + "min": 0.71, + "max": 0.95, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/large_single_file_patch_bytes", + "source": "changeset-parse", + "samples": [284479, 284479, 284479, 284479, 284479], + "median": 284479, + "p75": 284479, + "p95": 284479, + "min": 284479, + "max": 284479, + "unit": "bytes", + "comparable": false + }, + { + "name": "changeset-parse/large_single_file_split_chunks_ms", + "source": "changeset-parse", + "samples": [0.22, 0.2, 0.24, 0.24, 0.19], + "median": 0.22, + "p75": 0.24, + "p95": 0.24, + "min": 0.19, + "max": 0.24, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/many_small_files_build_diff_files_ms", + "source": "changeset-parse", + "samples": [0.96, 1.05, 1.01, 1.07, 3.48], + "median": 1.05, + "p75": 1.07, + "p95": 3.48, + "min": 0.96, + "max": 3.48, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/many_small_files_files", + "source": "changeset-parse", + "samples": [240, 240, 240, 240, 240], + "median": 240, + "p75": 240, + "p95": 240, + "min": 240, + "max": 240, + "unit": "count", + "comparable": false + }, + { + "name": "changeset-parse/many_small_files_normalize_patch_ms", + "source": "changeset-parse", + "samples": [0.45, 0.47, 0.48, 0.44, 0.44], + "median": 0.45, + "p75": 0.47, + "p95": 0.48, + "min": 0.44, + "max": 0.48, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/many_small_files_parse_patch_ms", + "source": "changeset-parse", + "samples": [6.02, 4.47, 3.99, 4.14, 4.01], + "median": 4.14, + "p75": 4.47, + "p95": 6.02, + "min": 3.99, + "max": 6.02, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "changeset-parse/many_small_files_patch_bytes", + "source": "changeset-parse", + "samples": [376703, 376703, 376703, 376703, 376703], + "median": 376703, + "p75": 376703, + "p95": 376703, + "min": 376703, + "max": 376703, + "unit": "bytes", + "comparable": false + }, + { + "name": "changeset-parse/many_small_files_split_chunks_ms", + "source": "changeset-parse", + "samples": [0.65, 0.93, 0.69, 0.83, 0.71], + "median": 0.71, + "p75": 0.83, + "p95": 0.93, + "min": 0.65, + "max": 0.93, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "highlight-prefetch/adjacent_ready_before_move", + "source": "highlight-prefetch", + "samples": [1, 1, 1, 1, 1], + "median": 1, + "p75": 1, + "p95": 1, + "min": 1, + "max": 1, + "unit": "boolean", + "comparable": false + }, + { + "name": "highlight-prefetch/files", + "source": "highlight-prefetch", + "samples": [4, 4, 4, 4, 4], + "median": 4, + "p75": 4, + "p95": 4, + "min": 4, + "max": 4, + "unit": "count", + "comparable": false + }, + { + "name": "highlight-prefetch/iterations", + "source": "highlight-prefetch", + "samples": [2, 2, 2, 2, 2], + "median": 2, + "p75": 2, + "p95": 2, + "min": 2, + "max": 2, + "unit": "count", + "comparable": false + }, + { + "name": "highlight-prefetch/next_file_ready_ms", + "source": "highlight-prefetch", + "samples": [7.91, 7.92, 8.85, 9.66, 9.67], + "median": 8.85, + "p75": 9.66, + "p95": 9.67, + "min": 7.91, + "max": 9.67, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "highlight-prefetch/selected_startup_ms", + "source": "highlight-prefetch", + "samples": [5.32, 6.21, 5.58, 5.38, 5.58], + "median": 5.58, + "p75": 5.58, + "p95": 6.21, + "min": 5.32, + "max": 6.21, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/after_first_frame_heap_used_bytes", + "source": "interaction-latency", + "samples": [39873664, 39896258, 39961302, 39905476, 39928914], + "median": 39905476, + "p75": 39928914, + "p95": 39961302, + "min": 39873664, + "max": 39961302, + "unit": "bytes", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.2, + "minAbsoluteRegression": 8388608 + } + }, + { + "name": "interaction-latency/after_first_frame_rss_bytes", + "source": "interaction-latency", + "samples": [181067776, 181399552, 186445824, 182022144, 180269056], + "median": 181399552, + "p75": 182022144, + "p95": 186445824, + "min": 180269056, + "max": 186445824, + "unit": "bytes", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.2, + "minAbsoluteRegression": 8388608 + } + }, + { + "name": "interaction-latency/after_navigation_heap_used_bytes", + "source": "interaction-latency", + "samples": [49829935, 50997818, 50989256, 49828019, 49640018], + "median": 49829935, + "p75": 50989256, + "p95": 50997818, + "min": 49640018, + "max": 50997818, + "unit": "bytes", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.2, + "minAbsoluteRegression": 8388608 + } + }, + { + "name": "interaction-latency/after_navigation_rss_bytes", + "source": "interaction-latency", + "samples": [295985152, 296173568, 306249728, 293347328, 287207424], + "median": 295985152, + "p75": 296173568, + "p95": 306249728, + "min": 287207424, + "max": 306249728, + "unit": "bytes", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.2, + "minAbsoluteRegression": 8388608 + } + }, + { + "name": "interaction-latency/files", + "source": "interaction-latency", + "samples": [180, 180, 180, 180, 180], + "median": 180, + "p75": 180, + "p95": 180, + "min": 180, + "max": 180, + "unit": "count", + "comparable": false + }, + { + "name": "interaction-latency/first_frame_ms", + "source": "interaction-latency", + "samples": [7.17, 7.48, 12.56, 7.56, 7.94], + "median": 7.56, + "p75": 7.94, + "p95": 12.56, + "min": 7.17, + "max": 12.56, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/hunk_nav_press_median_ms", + "source": "interaction-latency", + "samples": [22.15, 14.22, 12.93, 22.21, 23.73], + "median": 22.15, + "p75": 22.21, + "p95": 23.73, + "min": 12.93, + "max": 23.73, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/hunk_nav_press_p95_ms", + "source": "interaction-latency", + "samples": [27.46, 26.84, 25.44, 33.32, 30.35], + "median": 27.46, + "p75": 30.35, + "p95": 33.32, + "min": 25.44, + "max": 33.32, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/lines_per_file", + "source": "interaction-latency", + "samples": [120, 120, 120, 120, 120], + "median": 120, + "p75": 120, + "p95": 120, + "min": 120, + "max": 120, + "unit": "count", + "comparable": false + }, + { + "name": "interaction-latency/navigation_presses", + "source": "interaction-latency", + "samples": [6, 6, 6, 6, 6], + "median": 6, + "p75": 6, + "p95": 6, + "min": 6, + "max": 6, + "unit": "count", + "comparable": false + }, + { + "name": "interaction-latency/scroll_tick_median_ms", + "source": "interaction-latency", + "samples": [0.84, 0.84, 0.86, 0.86, 0.98], + "median": 0.86, + "p75": 0.86, + "p95": 0.98, + "min": 0.84, + "max": 0.98, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/scroll_tick_p95_ms", + "source": "interaction-latency", + "samples": [2.46, 2.32, 2.64, 2.84, 3.99], + "median": 2.64, + "p75": 2.84, + "p95": 3.99, + "min": 2.32, + "max": 3.99, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "interaction-latency/scroll_ticks", + "source": "interaction-latency", + "samples": [8, 8, 8, 8, 8], + "median": 8, + "p75": 8, + "p95": 8, + "min": 8, + "max": 8, + "unit": "count", + "comparable": false + }, + { + "name": "large-stream/cold_first_frame_ms", + "source": "large-stream", + "samples": [2.42, 2.5, 3.02, 2.36, 2.37], + "median": 2.42, + "p75": 2.5, + "p95": 3.02, + "min": 2.36, + "max": 3.02, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "large-stream/files", + "source": "large-stream", + "samples": [180, 180, 180, 180, 180], + "median": 180, + "p75": 180, + "p95": 180, + "min": 180, + "max": 180, + "unit": "count", + "comparable": false + }, + { + "name": "large-stream/lines_per_file", + "source": "large-stream", + "samples": [120, 120, 120, 120, 120], + "median": 120, + "p75": 120, + "p95": 120, + "min": 120, + "max": 120, + "unit": "count", + "comparable": false + }, + { + "name": "large-stream/scroll_ticks", + "source": "large-stream", + "samples": [4, 4, 4, 4, 4], + "median": 4, + "p75": 4, + "p95": 4, + "min": 4, + "max": 4, + "unit": "count", + "comparable": false + }, + { + "name": "large-stream/warm_first_frame_ms", + "source": "large-stream", + "samples": [1.79, 1.65, 1.99, 1.73, 1.69], + "median": 1.73, + "p75": 1.79, + "p95": 1.99, + "min": 1.65, + "max": 1.99, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "large-stream/windowed_scroll_ticks_ms", + "source": "large-stream", + "samples": [79.79, 87.84, 82.48, 85.33, 78.22], + "median": 82.48, + "p75": 85.33, + "p95": 87.84, + "min": 78.22, + "max": 87.84, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "non-ascii-stream/files", + "source": "non-ascii-stream", + "samples": [120, 120, 120, 120, 120], + "median": 120, + "p75": 120, + "p95": 120, + "min": 120, + "max": 120, + "unit": "count", + "comparable": false + }, + { + "name": "non-ascii-stream/lines_per_file", + "source": "non-ascii-stream", + "samples": [120, 120, 120, 120, 120], + "median": 120, + "p75": 120, + "p95": 120, + "min": 120, + "max": 120, + "unit": "count", + "comparable": false + }, + { + "name": "non-ascii-stream/non_ascii_cold_first_frame_ms", + "source": "non-ascii-stream", + "samples": [6.3, 6.63, 6.76, 6.59, 7], + "median": 6.63, + "p75": 6.76, + "p95": 7, + "min": 6.3, + "max": 7, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "non-ascii-stream/non_ascii_scroll_tick_median_ms", + "source": "non-ascii-stream", + "samples": [1.08, 1.13, 1.17, 1.14, 1.19], + "median": 1.14, + "p75": 1.17, + "p95": 1.19, + "min": 1.08, + "max": 1.19, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "non-ascii-stream/non_ascii_scroll_tick_p95_ms", + "source": "non-ascii-stream", + "samples": [4.95, 5.03, 10.1, 4.53, 5.08], + "median": 5.03, + "p75": 5.08, + "p95": 10.1, + "min": 4.53, + "max": 10.1, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "non-ascii-stream/scroll_ticks", + "source": "non-ascii-stream", + "samples": [8, 8, 8, 8, 8], + "median": 8, + "p75": 8, + "p95": 8, + "min": 8, + "max": 8, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/balanced_stream_files", + "source": "render-layout", + "samples": [180, 180, 180, 180, 180], + "median": 180, + "p75": 180, + "p95": 180, + "min": 180, + "max": 180, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/balanced_stream_geometry_ms", + "source": "render-layout", + "samples": [10.64, 10.88, 11.42, 10.44, 13.39], + "median": 10.88, + "p75": 11.42, + "p95": 13.39, + "min": 10.44, + "max": 13.39, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/balanced_stream_planned_rows", + "source": "render-layout", + "samples": [10260, 10260, 10260, 10260, 10260], + "median": 10260, + "p75": 10260, + "p95": 10260, + "min": 10260, + "max": 10260, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/balanced_stream_review_plan_ms", + "source": "render-layout", + "samples": [9.07, 7.35, 8.92, 7.97, 8.92], + "median": 8.92, + "p75": 8.92, + "p95": 9.07, + "min": 7.35, + "max": 9.07, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/balanced_stream_split_rows", + "source": "render-layout", + "samples": [10260, 10260, 10260, 10260, 10260], + "median": 10260, + "p75": 10260, + "p95": 10260, + "min": 10260, + "max": 10260, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/balanced_stream_split_rows_ms", + "source": "render-layout", + "samples": [3.18, 3.21, 2.91, 3.07, 4.14], + "median": 3.18, + "p75": 3.21, + "p95": 4.14, + "min": 2.91, + "max": 4.14, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/balanced_stream_unified_rows", + "source": "render-layout", + "samples": [18900, 18900, 18900, 18900, 18900], + "median": 18900, + "p75": 18900, + "p95": 18900, + "min": 18900, + "max": 18900, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/balanced_stream_unified_rows_ms", + "source": "render-layout", + "samples": [3.66, 3.26, 3.87, 3.05, 4.37], + "median": 3.66, + "p75": 3.87, + "p95": 4.37, + "min": 3.05, + "max": 4.37, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/large_single_file_files", + "source": "render-layout", + "samples": [1, 1, 1, 1, 1], + "median": 1, + "p75": 1, + "p95": 1, + "min": 1, + "max": 1, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/large_single_file_geometry_ms", + "source": "render-layout", + "samples": [19.57, 18.95, 20.58, 18.05, 20.52], + "median": 19.57, + "p75": 20.52, + "p95": 20.58, + "min": 18.05, + "max": 20.58, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/large_single_file_planned_rows", + "source": "render-layout", + "samples": [16010, 16010, 16010, 16010, 16010], + "median": 16010, + "p75": 16010, + "p95": 16010, + "min": 16010, + "max": 16010, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/large_single_file_review_plan_ms", + "source": "render-layout", + "samples": [13.53, 13.44, 13.68, 11.37, 12.51], + "median": 13.44, + "p75": 13.53, + "p95": 13.68, + "min": 11.37, + "max": 13.68, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/large_single_file_split_rows", + "source": "render-layout", + "samples": [16010, 16010, 16010, 16010, 16010], + "median": 16010, + "p75": 16010, + "p95": 16010, + "min": 16010, + "max": 16010, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/large_single_file_split_rows_ms", + "source": "render-layout", + "samples": [3.61, 3.31, 3.8, 3.35, 3.38], + "median": 3.38, + "p75": 3.61, + "p95": 3.8, + "min": 3.31, + "max": 3.8, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/large_single_file_unified_rows", + "source": "render-layout", + "samples": [32011, 32011, 32011, 32011, 32011], + "median": 32011, + "p75": 32011, + "p95": 32011, + "min": 32011, + "max": 32011, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/large_single_file_unified_rows_ms", + "source": "render-layout", + "samples": [6.25, 6.27, 8.93, 7.88, 6.03], + "median": 6.27, + "p75": 7.88, + "p95": 8.93, + "min": 6.03, + "max": 8.93, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/many_small_files_files", + "source": "render-layout", + "samples": [360, 360, 360, 360, 360], + "median": 360, + "p75": 360, + "p95": 360, + "min": 360, + "max": 360, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/many_small_files_geometry_ms", + "source": "render-layout", + "samples": [13.19, 11.98, 12.68, 11.11, 10.85], + "median": 11.98, + "p75": 12.68, + "p95": 13.19, + "min": 10.85, + "max": 13.19, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/many_small_files_planned_rows", + "source": "render-layout", + "samples": [6120, 6120, 6120, 6120, 6120], + "median": 6120, + "p75": 6120, + "p95": 6120, + "min": 6120, + "max": 6120, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/many_small_files_review_plan_ms", + "source": "render-layout", + "samples": [5.33, 6.39, 5.97, 5.27, 4.95], + "median": 5.33, + "p75": 5.97, + "p95": 6.39, + "min": 4.95, + "max": 6.39, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/many_small_files_split_rows", + "source": "render-layout", + "samples": [6120, 6120, 6120, 6120, 6120], + "median": 6120, + "p75": 6120, + "p95": 6120, + "min": 6120, + "max": 6120, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/many_small_files_split_rows_ms", + "source": "render-layout", + "samples": [3.81, 3.66, 3.75, 4.04, 3.58], + "median": 3.75, + "p75": 3.81, + "p95": 4.04, + "min": 3.58, + "max": 4.04, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "render-layout/many_small_files_unified_rows", + "source": "render-layout", + "samples": [10440, 10440, 10440, 10440, 10440], + "median": 10440, + "p75": 10440, + "p95": 10440, + "min": 10440, + "max": 10440, + "unit": "count", + "comparable": false + }, + { + "name": "render-layout/many_small_files_unified_rows_ms", + "source": "render-layout", + "samples": [3.68, 3.59, 3.86, 3.74, 3.38], + "median": 3.68, + "p75": 3.74, + "p95": 3.86, + "min": 3.38, + "max": 3.86, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "startup-first-frame/files", + "source": "startup-first-frame", + "samples": [8, 8, 8, 8, 8], + "median": 8, + "p75": 8, + "p95": 8, + "min": 8, + "max": 8, + "unit": "count", + "comparable": false + }, + { + "name": "startup-first-frame/startup_first_color_ms", + "source": "startup-first-frame", + "samples": [300.86, 301.29, 292.22, 293.93, 289.55], + "median": 293.93, + "p75": 300.86, + "p95": 301.29, + "min": 289.55, + "max": 301.29, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "startup-first-frame/startup_first_frame_min_ms", + "source": "startup-first-frame", + "samples": [239.57, 232.2, 226.13, 231.31, 230.95], + "median": 231.31, + "p75": 232.2, + "p95": 239.57, + "min": 226.13, + "max": 239.57, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "startup-first-frame/startup_first_frame_ms", + "source": "startup-first-frame", + "samples": [241.49, 239.74, 232.21, 233.62, 232.32], + "median": 233.62, + "p75": 239.74, + "p95": 241.49, + "min": 232.21, + "max": 241.49, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "startup-first-frame/startup_launches", + "source": "startup-first-frame", + "samples": [5, 5, 5, 5, 5], + "median": 5, + "p75": 5, + "p95": 5, + "min": 5, + "max": 5, + "unit": "count", + "comparable": false + }, + { + "name": "startup-first-frame/startup_post_paint_key_max_ms", + "source": "startup-first-frame", + "samples": [35.78, 35.98, 34.12, 34.73, 33.78], + "median": 34.73, + "p75": 35.78, + "p95": 35.98, + "min": 33.78, + "max": 35.98, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "startup-first-frame/startup_post_paint_keys", + "source": "startup-first-frame", + "samples": [8, 8, 8, 8, 8], + "median": 8, + "p75": 8, + "p95": 8, + "min": 8, + "max": 8, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/cjk_scalar_text_width_ms", + "source": "terminal-width", + "samples": [10.82, 11.28, 12.95, 10.65, 10.15], + "median": 10.82, + "p75": 11.28, + "p95": 12.95, + "min": 10.15, + "max": 12.95, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "terminal-width/cjk_scalar_width_checksum", + "source": "terminal-width", + "samples": [664000, 664000, 664000, 664000, 664000], + "median": 664000, + "p75": 664000, + "p95": 664000, + "min": 664000, + "max": 664000, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/cjk_scalar_width_measurements", + "source": "terminal-width", + "samples": [12000, 12000, 12000, 12000, 12000], + "median": 12000, + "p75": 12000, + "p95": 12000, + "min": 12000, + "max": 12000, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/competitor_string_width_cjk_scalar_ms", + "source": "terminal-width", + "samples": [61.43, 61.5, 66.17, 65.26, 61.06], + "median": 61.5, + "p75": 65.26, + "p95": 66.17, + "min": 61.06, + "max": 66.17, + "unit": "ms", + "comparable": false + }, + { + "name": "terminal-width/competitor_string_width_complex_cluster_ms", + "source": "terminal-width", + "samples": [15.26, 15.53, 14.69, 16.61, 14.62], + "median": 15.26, + "p75": 15.53, + "p95": 16.61, + "min": 14.62, + "max": 16.61, + "unit": "ms", + "comparable": false + }, + { + "name": "terminal-width/competitor_string_width_emoji_scalar_ms", + "source": "terminal-width", + "samples": [11.97, 12.11, 12.11, 12.03, 11.53], + "median": 12.03, + "p75": 12.11, + "p95": 12.11, + "min": 11.53, + "max": 12.11, + "unit": "ms", + "comparable": false + }, + { + "name": "terminal-width/complex_cluster_text_width_ms", + "source": "terminal-width", + "samples": [9.25, 9.64, 9.4, 10.1, 8.87], + "median": 9.4, + "p75": 9.64, + "p95": 10.1, + "min": 8.87, + "max": 10.1, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "terminal-width/complex_cluster_width_checksum", + "source": "terminal-width", + "samples": [196000, 196000, 196000, 196000, 196000], + "median": 196000, + "p75": 196000, + "p95": 196000, + "min": 196000, + "max": 196000, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/complex_cluster_width_measurements", + "source": "terminal-width", + "samples": [4000, 4000, 4000, 4000, 4000], + "median": 4000, + "p75": 4000, + "p95": 4000, + "min": 4000, + "max": 4000, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/emoji_scalar_text_width_ms", + "source": "terminal-width", + "samples": [5.26, 4.97, 5.02, 5.23, 4.69], + "median": 5.02, + "p75": 5.23, + "p95": 5.26, + "min": 4.69, + "max": 5.26, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "terminal-width/emoji_scalar_width_checksum", + "source": "terminal-width", + "samples": [170000, 170000, 170000, 170000, 170000], + "median": 170000, + "p75": 170000, + "p95": 170000, + "min": 170000, + "max": 170000, + "unit": "count", + "comparable": false + }, + { + "name": "terminal-width/emoji_scalar_width_measurements", + "source": "terminal-width", + "samples": [4000, 4000, 4000, 4000, 4000], + "median": 4000, + "p75": 4000, + "p95": 4000, + "min": 4000, + "max": 4000, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/large_worktree_additions", + "source": "working-tree-load", + "samples": [8640, 8640, 8640, 8640, 8640], + "median": 8640, + "p75": 8640, + "p95": 8640, + "min": 8640, + "max": 8640, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/large_worktree_deletions", + "source": "working-tree-load", + "samples": [8640, 8640, 8640, 8640, 8640], + "median": 8640, + "p75": 8640, + "p95": 8640, + "min": 8640, + "max": 8640, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/large_worktree_files", + "source": "working-tree-load", + "samples": [240, 240, 240, 240, 240], + "median": 240, + "p75": 240, + "p95": 240, + "min": 240, + "max": 240, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/large_worktree_load_ms", + "source": "working-tree-load", + "samples": [50.1, 50.06, 48.82, 49.24, 47.77], + "median": 49.24, + "p75": 50.06, + "p95": 50.1, + "min": 47.77, + "max": 50.1, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "working-tree-load/medium_worktree_additions", + "source": "working-tree-load", + "samples": [2880, 2880, 2880, 2880, 2880], + "median": 2880, + "p75": 2880, + "p95": 2880, + "min": 2880, + "max": 2880, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/medium_worktree_deletions", + "source": "working-tree-load", + "samples": [2880, 2880, 2880, 2880, 2880], + "median": 2880, + "p75": 2880, + "p95": 2880, + "min": 2880, + "max": 2880, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/medium_worktree_files", + "source": "working-tree-load", + "samples": [96, 96, 96, 96, 96], + "median": 96, + "p75": 96, + "p95": 96, + "min": 96, + "max": 96, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/medium_worktree_load_ms", + "source": "working-tree-load", + "samples": [23.08, 21.51, 23.87, 24.51, 22.83], + "median": 23.08, + "p75": 23.87, + "p95": 24.51, + "min": 21.51, + "max": 24.51, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "working-tree-load/small_worktree_additions", + "source": "working-tree-load", + "samples": [208, 208, 208, 208, 208], + "median": 208, + "p75": 208, + "p95": 208, + "min": 208, + "max": 208, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/small_worktree_deletions", + "source": "working-tree-load", + "samples": [208, 208, 208, 208, 208], + "median": 208, + "p75": 208, + "p95": 208, + "min": 208, + "max": 208, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/small_worktree_files", + "source": "working-tree-load", + "samples": [16, 16, 16, 16, 16], + "median": 16, + "p75": 16, + "p95": 16, + "min": 16, + "max": 16, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/small_worktree_load_ms", + "source": "working-tree-load", + "samples": [14.93, 12.16, 12.88, 13.26, 13.09], + "median": 13.09, + "p75": 13.26, + "p95": 14.93, + "min": 12.16, + "max": 14.93, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "working-tree-load/untracked_few_large_additions", + "source": "working-tree-load", + "samples": [30104, 30104, 30104, 30104, 30104], + "median": 30104, + "p75": 30104, + "p95": 30104, + "min": 30104, + "max": 30104, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_few_large_deletions", + "source": "working-tree-load", + "samples": [104, 104, 104, 104, 104], + "median": 104, + "p75": 104, + "p95": 104, + "min": 104, + "max": 104, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_few_large_files", + "source": "working-tree-load", + "samples": [14, 14, 14, 14, 14], + "median": 14, + "p75": 14, + "p95": 14, + "min": 14, + "max": 14, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_few_large_load_ms", + "source": "working-tree-load", + "samples": [17.02, 14.76, 16.47, 18.79, 17.87], + "median": 17.02, + "p75": 17.87, + "p95": 18.79, + "min": 14.76, + "max": 18.79, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "working-tree-load/untracked_many_small_additions", + "source": "working-tree-load", + "samples": [4528, 4528, 4528, 4528, 4528], + "median": 4528, + "p75": 4528, + "p95": 4528, + "min": 4528, + "max": 4528, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_many_small_deletions", + "source": "working-tree-load", + "samples": [208, 208, 208, 208, 208], + "median": 208, + "p75": 208, + "p95": 208, + "min": 208, + "max": 208, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_many_small_files", + "source": "working-tree-load", + "samples": [136, 136, 136, 136, 136], + "median": 136, + "p75": 136, + "p95": 136, + "min": 136, + "max": 136, + "unit": "count", + "comparable": false + }, + { + "name": "working-tree-load/untracked_many_small_load_ms", + "source": "working-tree-load", + "samples": [20.14, 18.56, 19.03, 18.28, 17.84], + "median": 18.56, + "p75": 19.03, + "p95": 20.14, + "min": 17.84, + "max": 20.14, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "wrapped-cjk/long_line_characters", + "source": "wrapped-cjk", + "samples": [8736, 8736, 8736, 8736, 8736], + "median": 8736, + "p75": 8736, + "p95": 8736, + "min": 8736, + "max": 8736, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/physical_lines", + "source": "wrapped-cjk", + "samples": [518, 518, 518, 518, 518], + "median": 518, + "p75": 518, + "p95": 518, + "min": 518, + "max": 518, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/wheel_burst_events", + "source": "wrapped-cjk", + "samples": [12, 12, 12, 12, 12], + "median": 12, + "p75": 12, + "p95": 12, + "min": 12, + "max": 12, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/wrapped_cjk_518_mount_first_frame_ms", + "source": "wrapped-cjk", + "samples": [79.93, 79.77, 83.52, 81.98, 82.02], + "median": 81.98, + "p75": 82.02, + "p95": 83.52, + "min": 79.77, + "max": 83.52, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "wrapped-cjk/wrapped_cjk_long_line_mount_first_frame_ms", + "source": "wrapped-cjk", + "samples": [21.18, 20.56, 20.89, 20.91, 19.45], + "median": 20.89, + "p75": 20.91, + "p95": 21.18, + "min": 19.45, + "max": 21.18, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "wrapped-cjk/wrapped_cjk_wheel_burst_immediate_content_rows", + "source": "wrapped-cjk", + "samples": [55, 55, 55, 55, 55], + "median": 55, + "p75": 55, + "p95": 55, + "min": 55, + "max": 55, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/wrapped_cjk_wheel_burst_immediate_ms", + "source": "wrapped-cjk", + "samples": [3.73, 4.05, 3.89, 3.55, 3.59], + "median": 3.73, + "p75": 3.89, + "p95": 4.05, + "min": 3.55, + "max": 4.05, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + }, + { + "name": "wrapped-cjk/wrapped_cjk_wheel_burst_initial_content_rows", + "source": "wrapped-cjk", + "samples": [54, 54, 54, 54, 54], + "median": 54, + "p75": 54, + "p95": 54, + "min": 54, + "max": 54, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/wrapped_cjk_wheel_burst_settled_content_rows", + "source": "wrapped-cjk", + "samples": [55, 55, 55, 55, 55], + "median": 55, + "p75": 55, + "p95": 55, + "min": 55, + "max": 55, + "unit": "count", + "comparable": false + }, + { + "name": "wrapped-cjk/wrapped_cjk_wheel_burst_settled_ms", + "source": "wrapped-cjk", + "samples": [26.26, 27.37, 29.42, 25.94, 27.34], + "median": 27.34, + "p75": 27.37, + "p95": 29.42, + "min": 25.94, + "max": 29.42, + "unit": "ms", + "comparable": true, + "threshold": { + "maxRegressionRatio": 1.15, + "minAbsoluteRegression": 5 + } + } + ] +} diff --git a/bun.lock b/bun.lock index 968a689e4..f0dc31775 100644 --- a/bun.lock +++ b/bun.lock @@ -41,7 +41,7 @@ }, "packages/hunk": { "name": "hunkdiff", - "version": "0.24.0", + "version": "0.24.1", "bin": { "hunk": "./bin/hunk.cjs", "hunkdiff": "./bin/hunk.cjs", diff --git a/packages/hunk/package.json b/packages/hunk/package.json index b24033fc3..c8a1e0dac 100644 --- a/packages/hunk/package.json +++ b/packages/hunk/package.json @@ -1,6 +1,6 @@ { "name": "hunkdiff", - "version": "0.24.0", + "version": "0.24.1", "description": "Desktop-inspired terminal diff viewer for understanding agent-authored changesets.", "keywords": [ "ai", diff --git a/website/releases/cards.json b/website/releases/cards.json index a38237958..1d5080df4 100644 --- a/website/releases/cards.json +++ b/website/releases/cards.json @@ -11,10 +11,10 @@ "slug": "0.24", "title": "Hunk 0.24", "tagline": "Hunk 0.24 adds complete-file and directory browsing, a live workspace status view, npm-installed extensions, shell completions, and…", - "meta": "October 13, 2026 – October 19, 2026 · 3 releases · 119 changes", + "meta": "October 13, 2026 – October 19, 2026 · 4 releases · 123 changes", "chips": ["0.24.0", "0.24.0-beta.1", "0.24.0-beta.0"], "latest": true, - "alt": "Hunk 0.24 release notes — October 13, 2026 – October 19, 2026 · 3 releases · 119 changes" + "alt": "Hunk 0.24 release notes — October 13, 2026 – October 19, 2026 · 4 releases · 123 changes" }, { "slug": "0.23", diff --git a/website/src/content/docs/changelog/0.24.md b/website/src/content/docs/changelog/0.24.md index 0c2df95d2..d6a9b9709 100644 --- a/website/src/content/docs/changelog/0.24.md +++ b/website/src/content/docs/changelog/0.24.md @@ -11,7 +11,7 @@ head: - tag: meta attrs: property: og:image:alt - content: "Hunk 0.24 release notes — October 13, 2026 – October 19, 2026 · 3 releases · 119 changes" + content: "Hunk 0.24 release notes — October 13, 2026 – October 19, 2026 · 4 releases · 123 changes" - tag: meta attrs: name: twitter:image @@ -20,7 +20,7 @@ head: -October 13, 2026 – October 19, 2026 · 3 releases +October 13, 2026 – October 19, 2026 · 4 releases Hunk 0.24 adds complete-file and directory browsing, a live workspace status view, npm-installed extensions, shell completions, and pane-aware automatic diff layout, while moving syntax highlighting off the review's main thread by default. @@ -48,6 +48,19 @@ On an older Hunk release, update once through the installer or package manager t ## Releases in this series + + +### 0.24.1 + +Unreleased + +#### Patch Changes + +- Upgrade the bundled Bun runtime to 1.4.4 so Hunk's own HTTPS requests (GitHub review via `hunk gh`, extension fetches) reject certificates issued by the compromised eMudhra intermediate CAs. ([#1218](https://github.com/modem-dev/hunk/pull/1218)) +- Build the Nix package with the same script as the npm and GitHub release binaries, so Nix installs always ship the same entrypoints and x64 baseline runtime policy. ([#1214](https://github.com/modem-dev/hunk/pull/1214)) +- Fix missing syntax highlighting in Nix-built binaries by bundling the highlighting worker. ([#1211](https://github.com/modem-dev/hunk/pull/1211)) +- `n` / `N` now stop at every search match, including later matches in the same hunk or on the same line, in on-screen order: top to bottom in unified view and row by row, old side first, in split view. Extension API 32 adds `ctx.selection.layout`, the resolved `split` or `unified` layout; TypeScript authors constructing `ExtensionReviewSelection` must add the field. A new `/` search now starts at the cursor line instead of skipping the selected hunk. ([#1212](https://github.com/modem-dev/hunk/pull/1212)) + ### 0.24.0 diff --git a/website/src/content/docs/changelog/index.md b/website/src/content/docs/changelog/index.md index 5251c5234..e1191645d 100644 --- a/website/src/content/docs/changelog/index.md +++ b/website/src/content/docs/changelog/index.md @@ -24,7 +24,7 @@ head: ## [Hunk 0.24](/changelog/0.24/) -Latest · October 13, 2026 – October 19, 2026 · 3 releases · 119 changes +Latest · October 13, 2026 – October 19, 2026 · 4 releases · 123 changes Hunk 0.24 adds complete-file and directory browsing, a live workspace status view, npm-installed extensions, shell completions, and pane-aware automatic diff layout, while moving syntax highlighting off the review's main thread by default.