[WebIDE] [POC] Explore using origin private file system to power search & Language Server in the Web IDE
Problem to solve
Integrating the Language Server in the Web IDE and implementing full-text search are two highly-requested features and key technical priorities in the Web IDE project. The main technical challenge for both features is the lack of a full fledged file system in the Web IDE. The current file system implementation in the Web IDE is limited in several ways:
- Files are not available for read or write operations unless Web IDE fetch them using the Repository Files REST API.
- Git operations like checking out a new branch require reloading the entire system.
- The entire file system is stored in memory.
We have to implement a file system that address these limitations to unlock full-text search and advanced AI capabilities that require file system access for context.
Proposed solution
Implement a proof of concept of a file system that relies on the Origin Private File System (OPFS) Web API. This API allows web browsers to access a high-performant file system that is private to a single origin. Consider using the ZenFS library as an abstraction layer and isomorphic-git to enable efficient source control operations in the Web IDE.
Ensure that the file system runs in a SharedWorker that can be accessible by the Web IDE extension and the Language Server.
Acceptance criteria
-
A POC Merge Request that validates the proposed solution by implementing basic file text search and serves as a guide for the production-ready implementation. -
Create an epic and break down the requirements into issues to drive the production-ready implementation.