Zed Filesystem Handling Needs an Overhaul #64581
Replies: 4 comments 2 replies
|
@SomeoneToIgnore Could you please re-open the discussion? |
|
Had a session with Claude to generate an overview of all the issues related to this topic, and to compare with the improvements made in Gram Zed File-Watching / Manual Refresh SagaDiscussion lineage
Duplicate / root-cause bug reports
Fix attempts (Pull Requests)
How Gram resolved itThe more important fix, per Gram's own changelog (release 3.0.0, 2026-06-29),
This forces a reconciliation scan whenever you focus the Project Panel or Git Zed vs. Gram comparison
|
|
Here's an elaboration of what I think could be a comprehensive solution to have robust filesystem tracking in Zed
If these things are implemented, I think there's a high chance we wont have any more significant issue with file system watching in Zed. |
|
In researching issues from Gram, came across this issue which should probably also be looked at as part of this: https://codeberg.org/GramEditor/gram/issues/214
This is the right attitude. Don't assume that notify just works. Have mechanisms to detect failures, and surface issues to the user so they can update configurations as needed. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This is a continuation of the discussion in "Manual Refresh the File Tree" #54150
The discussion was closed, and has remained closed despite repeated comments pointing out that the issue being discussed is unresolved. The title of the issue also only captures one aspect of the overarching issue plaguing Zed.
The core of the issue is that Zed has a fundamentally broken model for handling the filesystem. It has been built on the assumption that Zed can reliably track the state of the filesystem with just file system notifications.
The poller backend that was implemented in #54481 by @probably-neb was a step in the right direction but still demonstrated a fundamentally flawed understanding of how to handle the filesystem. There should never have been one notification based backend and one poller based backend which is must be manually selected. There should only be one backend. Polling is always needed at some level to ensure that the view Zed has of the filesystem doesn't drift. The only question is how often to poll, and that's an answer that should probably depend on the view the user has of the project.
There is still no button or even context menu or commands to trigger a manual refresh, something which is an essential backstop implemented by almost every text editor for very good reasons.
I have seen top comments pointing this issue out when Zed has been discussed in Hacker News, so it's clearly not just me and the others complaining in #54150 who are experiencing this.
This wouldn't have been such a critical issue if Zed was still in Beta. But the release of 1.0 communicates a quality level which Zed simply does not reach. I can not recommend it to anyone despite how much I like every other aspect of Zed. I can also point out #58792 as another example of the basic fundamentals of being a Code Editor is neglected over landing trivial improvements to Markdown rendering or a bunch of AI features – which are all nice but should probably not be the top priority until the core of the software is robust.
This seems to have been resolved by Gram Editor, a fork of Zed. If I connect to the same remote server with Zed and Gram, Zed is unable to track changes, while Gram eventually catches the changes in both the Project Panel and Git Panel. So I can recommend others in the same situation to try to use Gram if they need to remote to a server for occasional work.
All reactions