Repository navigation
feat(server): integrate Riftri worktree storage - #1
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Every T3 worktree currently materializes another full checkout. This fork uses Riftri's native copy-on-write storage where supported while retaining real Git linked worktrees and the existing project/thread model.
Implementation
auto; retain explicitgitand strictriftrimodes.riftri@0.6.3and its native optional dependency in Node, standalone CLI, and Electron distributions. Keep native packages external to bundles and unpack executables from ASAR.Verified
All 19 jobs passed on the exact PR head
4daf351d59112728e2cdf4410e6593c2aab31715: CI run. This includes lint, full typecheck, web tests, all six server shards, other workspace tests, native storage on both platforms, and the required aggregate check. Repository-wide checks ran in CI, not locally, per the contributor guide.PATH.--versionpasses and its server returns HTTP 200 from a disposable home. No live T3 data is used.Measured benefit and tradeoff
These are real physical allocation measurements through T3's Git driver and the published release binary, using dedicated disk images. Three worktrees; a 32 MiB incompressible payload plus 257 text files; the first immutable base is included. This is tracked-file storage, not shared dependency installs or build caches.
Creation was slower, not faster. In the same CI fixture, cold/cached/cached creation took 507/351/359 ms with Riftri versus 162/125/120 ms with Git on macOS, and 366/292/202 ms versus 85/68/69 ms on Linux. These are single-run diagnostics, not latency guarantees; CI retains the JSON reports and does not use a flaky timing threshold. The docs explain this tradeoff and the Git opt-out.
An earlier real-source APFS experiment using the Riftri repository also saved 64.77% physical allocation across three views, but used a debug binary and is not a release-speed claim. T3's own submodule-containing tree intentionally uses ordinary-Git fallback, not optimized creation.
Supporting Riftri PRs: assistant-ui/riftri#677, pingdotgg#678, pingdotgg#679, pingdotgg#681, pingdotgg#682, pingdotgg#683, and pingdotgg#684 (squash-merged).
Model: GPT-5. Harness: Codex.