Skip to content

v0.5.3 — fixes a crash on every fresh install

Choose a tag to compare

@udhawan97 udhawan97 released this 21 Jul 04:45

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-project exited 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.