Wierd issue with version 1.17.1

Hi folks :wave: I’ve run into an issue after upgrading to 1.17.1 for Mint. I don’t have a reproducible code yet, but I decided to ask in hopes that someone here has an idea :slight_smile:

This callback is only called once when the workspace is created: mint/src/ls/server.cr at master · mint-lang/mint · GitHub resulting in diagnostics not being pushed to the client when files change (works fine in 1.16.3).

Here are some information which I think might be relevant:

These are the steps to reproduce:

  • Create a project mint init (once).
  • Set up the language server in your editor to use the local to be built binary (once).
  • Build Mint from source.
  • Open Main.mint in your editor and change something, so an error diagnostic is published.
  • If the error appears in the editor, it’s good, if it’s not, it’s bad.

This is what I found out after asking in Discord and then building Crystal from source and then building Mint with that:

If anyone could verify my results would be great! I only tested the Linux versions, both statically built ones from GitHub actions and locally built ones.

Here is a video of it in action: Watch simplescreenrecorder-2025-08-13_21.32.28 | Streamable

For reference, the original discord discussion and a dedicated thread about bisecting.

Automatic bisect returned this commit as the first bad commit cb04e189e6acd349c8129880e1e3a44d2081822f

Files for reproducing the bisect: Auto bisect files. · GitHub

1 Like

Ping @ysbaddaden (he might take a couple of days to respond)

Since it’s related to STDIN and STDOUT and seems to be related to the detection of the blocking mode, then maybe these lines are fixing the issue?

That, and/or the changes to the evloop on the same commit.