v0.5.3 — fixes a crash on every fresh install
Codemble v0.5.3 — fixes a crash on every fresh install
If you installed Codemble recently and it died on a JavaScript or TypeScript
project, this is why. Please upgrade.
Codemble's dependency range allowed tree-sitter 0.26.0, which is
ABI-incompatible with the newest published grammar wheels
(tree-sitter-javascript 0.25.0 and tree-sitter-typescript 0.23.2 — the only
ones that exist). Partway through parsing a real project the parser died with a
segmentation fault inside node_get_named_children, taking the whole process
down with it.
What that looked like:
codemble ./my-projectexited partway through with no traceback.- In the app, the local server vanished mid-parse, so the loading screen stopped
on "Lost contact with the local server" and never recovered.
The core is now pinned <0.26.
Why it escaped every check
An environment that already had tree-sitter 0.25.x kept working, so it was
invisible from a developer checkout and from CI's cache. It only hit people
installing fresh — including through uvx codemble, the documented install
path, which resolves the newest permitted version.
It also could not be caught by a behavioural test. A small snippet parses and
walks its children perfectly well on 0.26.0; the crash needs a corpus of real
size, and every fixture in the suite is small. That is precisely how it reached
a release.
So the guard added here asserts the resolved dependency version rather than
the behaviour: the suite now fails if tree-sitter resolves to the segfaulting
release. Verified both ways — it passes on 0.25.2 and fails on 0.26.0.
Upgrading
uvx codemble@latest # or: uv tool upgrade codemble
No breaking changes: the CLI, the graph/checks API, and the on-disk progress
format are unchanged, and existing progress in ~/.codemble/ is read as-is.
Honest note
The upper bound is deliberate, not caution. It should be raised only once a
grammar release has been verified against the newer core on a project of real
size — a snippet test will not tell you anything useful here.