Skip to content

diffr: build and test with Bun 1.3.14 - #1021

Open
sidkmenon wants to merge 10 commits into
mainfrom
sm/diffr-bun-1.3.14
Open

sidkmenon wants to merge 10 commits into
mainfrom
sm/diffr-bun-1.3.14

Conversation

@sidkmenon

@sidkmenon sidkmenon commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #1016.

The diffr workflows now use Bun 1.3.14 instead of 1.3.10, in CI and in releases.

On Linux, Bun 1.3.10 reads process.ppid once and never updates it. The terminal UI (TUI) uses that value to notice when the program that started it is gone. So a released Linux TUI keeps running after its launcher is killed with SIGKILL. Bun 1.3.14 reads the value each time.

The Bun type declarations (@types/bun) move to 1.3.14 too.

Testing

In a Linux container, the TUI's shutdown.test.ts fails with Bun 1.3.10 and passes with 1.3.14. CI doesn't run the TUI tests on Linux yet; #1019 adds a job that does.

sidkmenon and others added 9 commits October 7, 2026 19:19
Reverse the temporary rollback and restore the exact tree from 6c2c5a2. The following commit reapplies the Whiteboard 0.2.1 version fields.

Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0
Carry forward the production release version in product.json and the two package manifests after restoring the original diffr import snapshot.

Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Agent-Session: ab10ae26-42f2-4ecd-86d0-79f5a9edecf0
Benchmark query compilation, full core/shape processing, and isolated context shaping with Criterion and bundled PR998 inputs. Document timing boundaries and plugin rebuild requirements.

Imported from devdotfast/diffr#103.

AI-assisted: OpenAI Codex.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
A leaf's new `pair` field names the leaf on the other side with the
same `alignment_id`, and is absent for an added or deleted leaf.
Projection sets it as it numbers leaves, and a cut names each new
tail's partner. diffr-ts and the TUI's wire schema accept the field.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`has_changes`, `is_one_sided` and change coverage asked whether a leaf
is paired by collecting every alignment id on the other side, once per
call. `paired_leaf` searched the other side for the matching leaf. They
now read the leaf's `pair`. Test fixtures name pairs from their
alignment ids.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Every lookup by id searched both trees. The cursor now keeps each
region's side, parent and path from its side's root, so a lookup is a
probe and a descent. `cut` and `join` rewrite the entries of the
regions they move. The sides become private so nothing else can move a
region; the plugin host takes them back with `into_sides`.

No behavior change.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`linked_regions`, `set_collapsed` and `link` walked both trees to find
the regions in a fold state. The cursor now keeps the regions of each
fold state, and `cut`, `join` and `link` update it.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
`startup/one_file` compiles the default queries, then diffs and projects
one fixture: what a run pays before its first result.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 01a1196d-bad4-7f61-bafc-f63d12217676
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Startup compiled the fold and context queries of every language before
diffing the first file. `Params` now keeps each language's assembled
sources and compiles them the first time that language is diffed.

A query that does not compile no longer fails the run at startup. It
fails each file in its language with a `query_error`; files in other
languages diff as usual. Reading query files and resolving their
imports still happens at startup.

AI-assisted: developed with Claude Code.
Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
Bun 1.3.10 on Linux reads process.ppid once and never again. The TUI's
watchdog compares it with the parent it started under, so a released Linux
TUI keeps running after its launcher is killed without a hangup. Bun 1.3.14
reads it each time.

The Bun type declarations move to 1.3.14 to match.

Agent-Session: fb96350b-c19e-48f0-b364-31e9ad2b72f4
Agent-Session: 7d7ac281-cc4b-4437-9e1e-3872651e8bcf
Agent-Session: a7af3b88-3bb7-48a2-ae20-7626a83628a1
@sidkmenon
sidkmenon force-pushed the sm/diffr-bun-1.3.14 branch from 5b5571c to b11b522 Compare October 8, 2026 07:17
@sidkmenon
sidkmenon force-pushed the sm/diffr-lazy-queries branch 2 times, most recently from 3df415d to 75cac02 Compare October 8, 2026 16:17
Base automatically changed from sm/diffr-lazy-queries to main October 8, 2026 16:17

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants