Kirill Bulatov
8b32975a05
Fix workspace diagnostics polling ( #63336 )
...
Closes https://github.com/zed-industries/zed/issues/62391
Workspace diagnostics were polled incorrectly:
* Workspace pulls were cancelled and re-sent every 120s.
Pyright-family servers hold the request open forever and re-analyze the
whole workspace on every new one, so the retry loop leaked memory; the
request is now kept open (long-poll), as the spec recommends.
* No re-trigger after a server closed a workspace pull.
ty closes the request when diagnostics change and expects the client to
re-pull
* `ServerCancelled` / `retriggerRequest` was ignored.
The spec defaults cancellation data to `{ retriggerRequest: true }`, so
these errors now retrigger workspace pulls and retry document pulls
instead of failing them.
* LSP error codes were erased with `anyhow!(message)`
Errors now carry a typed `lsp::ResponseError` through the chain,
replacing four copies of `ends_with(...)` matching against
rust-analyzer's literal message texts.
* Workspace partial results were not tied to their request.
Stale or numeric-token `$/progress` reports were applied as current data
and could poison `previousResultIds` until a server restart; reports are
now matched against the exact in-flight token.
* `interFileDependencies` was never read.
Every edit re-pulled all other open buffers even for servers declaring
no inter-file dependencies (e.g. ruff); cross-buffer pulls are now gated
on that capability.
* Cross-buffer pulls were unpaced.
All open buffers were pulled back-to-back after each edit debounce; they
are now paced at one document per 500ms.
* The failure valve killed workspace pulls permanently.
51 hard errors over a server's lifetime silently stopped its workspace
pulls until restart
* Concurrent refresh waiters could be dropped instantly.
The capacity-1 refresh channel resolved a second concurrent waiter to
`false` immediately, and request errors dropped queued refreshes;
waiters now queue and carry over to the retried pull.
Release Notes:
- Fixed basedpyright memory leak caused by incorrect workspace
diagnostics polling
2026-09-02 19:12:35 +00:00
..
2026-09-01 15:52:33 +00:00
2026-08-20 10:08:48 +00:00
2026-09-01 15:52:33 +00:00
2026-09-02 18:23:27 +00:00
2026-08-31 17:37:00 +00:00
2026-08-20 10:08:48 +00:00
2026-08-18 12:40:18 +00:00
2026-06-08 14:57:47 +00:00
2026-09-01 15:52:33 +00:00
2026-08-20 10:08:48 +00:00
2026-09-01 18:58:47 +00:00
2026-08-20 10:08:48 +00:00
2026-08-31 17:37:00 +00:00
2026-08-20 10:08:48 +00:00
2026-08-19 14:32:19 +00:00
2026-08-19 14:32:19 +00:00
2026-08-20 10:08:48 +00:00
2026-08-24 20:32:44 +00:00
2026-08-31 11:58:50 +00:00
2026-06-01 04:40:13 +00:00
2026-09-01 15:52:33 +00:00
2026-08-09 22:29:52 +00:00
2026-08-28 11:51:00 +00:00
2026-08-31 11:58:50 +00:00
2026-08-26 14:33:13 +00:00
2026-08-09 22:29:52 +00:00
2026-08-31 05:45:47 +00:00
2026-07-30 14:55:00 +00:00
2026-08-20 17:53:44 +00:00
2026-08-20 16:42:42 +00:00
2026-09-02 18:23:27 +00:00
2026-08-27 16:21:41 +00:00
2026-06-05 10:32:57 +00:00
2026-08-28 22:35:33 +00:00
2026-06-05 10:32:57 +00:00
2026-05-29 07:06:57 +00:00
2026-08-26 14:33:10 +00:00
2026-08-29 22:33:39 +00:00
2026-08-28 18:06:41 +00:00
2026-09-01 18:58:47 +00:00
2026-07-30 10:34:16 +00:00
2026-08-31 15:29:14 +00:00
2026-08-20 10:08:48 +00:00
2026-08-26 14:33:13 +00:00
2026-08-20 10:08:48 +00:00
2026-04-24 10:29:51 +00:00
2026-05-13 23:35:10 +00:00
2026-08-28 18:59:38 +00:00
2026-08-14 09:38:52 +00:00
2026-08-20 10:08:48 +00:00
2026-08-27 12:55:42 +00:00
2026-08-09 22:29:52 +00:00
2026-09-01 16:07:40 +00:00
2026-08-31 17:37:00 +00:00
2026-08-31 12:04:06 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 16:42:42 +00:00
2026-09-01 16:07:40 +00:00
2026-09-02 18:23:56 +00:00
2026-06-05 19:24:28 +00:00
2026-08-27 16:21:41 +00:00
2026-09-02 18:21:25 +00:00
2026-08-09 22:29:52 +00:00
2026-08-20 10:08:48 +00:00
2026-09-02 18:21:25 +00:00
2026-09-02 18:23:27 +00:00
2026-08-20 10:08:48 +00:00
2026-08-21 15:34:46 +00:00
2026-09-02 18:23:27 +00:00
2026-08-27 16:21:41 +00:00
2026-08-04 15:35:05 +00:00
2026-05-04 06:30:47 +00:00
2026-08-27 16:21:41 +00:00
2026-08-27 20:11:28 +00:00
2026-08-29 22:18:44 +00:00
2026-07-30 13:24:19 +00:00
2026-07-30 12:59:16 +00:00
2026-08-29 12:11:25 +00:00
2026-08-21 21:31:55 +00:00
2026-09-02 14:48:12 +00:00
2026-09-01 15:52:33 +00:00
2026-08-20 10:08:48 +00:00
2026-08-28 14:06:27 +00:00
2026-09-02 18:23:32 +00:00
2026-08-31 17:37:00 +00:00
2026-09-01 15:53:08 +00:00
2026-08-31 14:31:41 +00:00
2026-07-08 15:52:48 +00:00
2026-08-26 11:00:10 +00:00
2026-09-01 21:39:47 +00:00
2026-06-16 13:47:55 +00:00
2026-09-01 21:39:47 +00:00
2026-09-02 18:23:07 +00:00
2026-08-25 17:56:09 +00:00
2026-09-02 18:21:25 +00:00
2026-08-31 17:37:00 +00:00
2026-08-11 15:16:03 +00:00
2026-08-26 14:33:13 +00:00
2026-07-14 15:29:30 +00:00
2026-08-31 14:36:04 +00:00
2026-08-26 21:36:59 +00:00
2026-08-25 23:21:19 +00:00
2026-08-31 17:37:00 +00:00
2026-06-22 18:20:57 +00:00
2026-08-20 10:08:48 +00:00
2026-08-27 17:09:28 +00:00
2026-08-26 14:33:10 +00:00
2026-09-02 18:23:27 +00:00
2026-08-19 16:26:14 +00:00
2026-08-28 13:19:29 +00:00
2026-09-02 18:23:27 +00:00
2026-08-28 14:06:27 +00:00
2026-09-02 15:41:05 +00:00
2026-09-02 15:41:05 +00:00
2026-09-02 15:41:05 +00:00
2026-08-27 16:21:41 +00:00
2026-09-02 18:23:27 +00:00
2026-08-27 12:55:42 +00:00
2026-08-27 16:21:41 +00:00
2026-08-26 14:33:13 +00:00
2026-08-20 10:20:14 +00:00
2026-09-02 15:41:05 +00:00
2026-09-02 15:41:05 +00:00
2026-09-02 19:12:35 +00:00
2026-08-20 11:17:57 +00:00
2026-08-28 17:13:46 +00:00
2026-08-26 14:33:10 +00:00
2026-09-02 18:21:25 +00:00
2026-09-02 18:21:25 +00:00
2026-08-29 22:33:35 +00:00
2026-08-21 07:28:05 +00:00
2026-08-25 09:46:30 +00:00
2026-08-31 15:07:24 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-05-14 21:03:56 +00:00
2026-06-23 09:21:31 +00:00
2026-08-27 16:21:41 +00:00
2026-09-02 15:41:05 +00:00
2026-08-27 16:21:41 +00:00
2026-09-02 15:41:05 +00:00
2026-09-02 13:50:06 +00:00
2026-08-19 11:07:38 +00:00
2026-08-28 03:28:04 +00:00
2026-08-31 14:36:04 +00:00
2026-05-12 15:52:52 +00:00
2026-08-19 12:16:37 +00:00
2026-07-15 08:33:25 +00:00
2026-08-19 21:10:56 +00:00
2026-07-14 17:18:23 +00:00
2026-08-18 07:00:34 +00:00
2026-06-13 05:21:05 +00:00
2026-09-02 19:12:35 +00:00
2026-08-18 10:02:20 +00:00
2026-08-27 20:11:28 +00:00
2026-08-28 11:51:00 +00:00
2026-08-27 12:55:42 +00:00
2026-09-02 18:21:02 +00:00
2026-07-23 22:46:06 +00:00
2026-08-27 17:09:28 +00:00
2026-07-27 18:20:35 +00:00
2026-08-31 17:37:00 +00:00
2026-08-18 10:02:20 +00:00
2026-09-02 18:23:27 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-08-27 16:21:41 +00:00
2026-09-02 18:21:25 +00:00
2026-08-31 13:35:07 +00:00
2026-08-20 10:08:48 +00:00
2026-08-31 11:41:34 +00:00
2026-08-24 10:41:04 +00:00
2026-09-02 18:17:30 +00:00
2026-09-02 18:17:30 +00:00
2026-08-28 17:22:25 +00:00
2026-06-23 09:33:47 +00:00
2026-09-02 18:17:30 +00:00
2026-05-05 16:25:56 +00:00
2026-08-31 17:38:52 +00:00
2026-07-20 11:17:43 +00:00
2026-04-29 10:27:47 +00:00
2026-08-27 16:21:41 +00:00
2026-08-24 20:13:37 +00:00
2026-08-09 22:29:52 +00:00
2026-05-27 19:33:04 +00:00
2026-08-20 10:08:48 +00:00
2026-07-20 04:08:28 +00:00
2026-08-28 03:28:04 +00:00
2026-05-04 06:30:47 +00:00
2026-07-31 19:57:13 +00:00
2026-08-31 12:04:06 +00:00
2026-08-18 07:58:21 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-08-27 06:40:50 +00:00
2026-08-26 14:33:10 +00:00
2026-08-28 18:05:57 +00:00
2026-08-29 22:00:45 +00:00
2026-07-29 20:59:24 +00:00
2026-08-27 16:21:41 +00:00
2026-08-16 11:41:17 +00:00
2026-05-28 19:43:30 +00:00
2026-08-28 12:15:55 +00:00
2026-08-28 17:31:36 +00:00
2026-09-02 17:46:50 +00:00
2026-07-01 04:25:40 +00:00
2026-05-29 07:06:57 +00:00
2026-06-08 14:59:39 +00:00
2026-09-01 21:42:01 +00:00
2026-08-27 23:24:52 +00:00
2026-05-27 10:31:53 +00:00
2026-08-20 10:08:48 +00:00
2026-08-20 10:08:48 +00:00
2026-08-28 09:03:27 +00:00
2026-05-01 22:33:54 +00:00
2026-09-02 18:17:30 +00:00
2026-08-20 12:29:17 +00:00
2026-08-28 14:06:27 +00:00
2026-09-02 18:23:27 +00:00
2026-08-27 16:21:41 +00:00
2026-08-20 10:08:48 +00:00
2026-08-09 22:29:52 +00:00
2026-09-01 21:39:47 +00:00
2026-09-01 21:39:47 +00:00
2026-09-01 21:39:47 +00:00