Fulgur v0.8.0
This version focuses on improving the file sharing with Fulgurant and supporting its newer API, and on code quality.
New features & functional improvements
- Multiple server profiles. Fulgur sync is no longer tied to a single Fulgurant server. You can now configure several server profiles, each with its own credentials and device, and manage them from a dedicated add/edit form in Settings.
- Per-server connections. Each configured profile maintains its own SSE connection, so live updates arrive independently per server.
- Multi-profile sharing. The share sheet now lets picking devices across all the configured profiles, so a single file can be shared to devices registered on different servers.
- Aggregated sync status in the status bar. The status bar combines the sync state of every active profile into a single indicator, with a tooltip breaking down the status per server.
- Developer mode. A development-specific user profile tied with the debug target avoids messing up with the actual production user profile.
Performance & technical improvements
- Begin-share fetches for the v2 sync API now run in parallel using scoped threads, reducing the time to establish a sync session. Requires Fulgurant v0.7.0+.
- The SSE stream uses a dedicated long-timeout agent and an absolute read deadline. This stops the repeated ~10s connection churn seen previously and lets Fulgur reliably detect dead connections.
- Sync now uses the v2 begin-connection API, with an automatic fallback to the legacy v1 API for older servers. Requires Fulgurant v0.7.0+.
- The file-watcher event channel is now bounded to avoid unbounded memory growth under heavy filesystem activity.
- Token refresh timeout handling was improved for more reliable session renewal.
- Minimum supported Rust version raised to 1.95.0.
- Bumped all the dependencies to their latest revisions, including the
GPUI/gpui-componentstack. - Implementation in progress for the
pedanticsupport ofcargo clippy.
Security
- Opening files now rejects non-
fileURL schemes, preventing unexpected handling of remote or non-local URLs. - The
keyringdependency was replaced withkeyring-corefor system keychain access.
Bug fixes
- Received tabs now detect their language from content when restored, so syntax highlighting is correct for files arriving via sync.
- The Markdown preview tab now preserves its scroll position when switching between tabs.
- Restored external (custom-registered) language imports that had been accidentally disabled.
- Fixed a formatting issue specific to Windows, alongside Windows- and Linux-specific lint and code-quality fixes.