Rift workspaces: a copy-on-write environment provider - #3229
Draft
ymichael wants to merge 13 commits into
Draft
Conversation
ymichael
force-pushed
the
bb/env-providers-3-rift
branch
from
September 8, 2026 02:30
c09d5ac to
696db2b
Compare
ymichael
changed the base branch from
bb/env-providers-1-environments
to
bb/env-providers-2-machines
September 8, 2026 02:36
ymichael
force-pushed
the
bb/env-providers-3-rift
branch
3 times, most recently
from
September 8, 2026 11:49
05707f6 to
9059e9b
Compare
ymichael
force-pushed
the
bb/env-providers-3-rift
branch
from
September 9, 2026 03:46
9059e9b to
d89789c
Compare
ymichael
removed this pull request from stack #3232
September 9, 2026 03:49
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.
Human comments
What was wrong
BB had no environment provider for copy-on-write workspace copies. A plugin could create a directory, but sidebar grouping was tied to Git worktree identity, so independent copies could not present threads sharing that environment consistently.
What changed
Reviewer report — overview, SDK contract, verification, review fixes, and screenshots
Adds the optional BB Official
environment-riftplugin (rift, “Rift workspace”). It checks the selected host for the Rift CLI, validates and initializes a standalone Git checkout, creates an all-files or filtered copy in a BB-managed attempt directory, creates the requested branch from the copied HEAD, and runs BB setup after Rift's hooks. Completed copies replay idempotently; incomplete copies are recreated. Removal respects ownership and confines fallback deletion to the exact managed attempt. Initialization is serialized and cancellation terminates hook process groups. The default retirement remains five minutes.Adds optional provider
presentation: { groupsThreads, kindLabel? }, with grouping defaulting to actualisWorktree, and wires it through the catalog, thread list, sidebar and info tab. SDK is bumped to 0.4.50 with API audit, API-map and skill entries. Shared setup/teardown execution is extracted for the worktree and Rift providers. No database migration or daemon wire change.Rift is not a Git worktree: refs are independent and linked-worktree sources are unsupported. Filtered mode omits
--copy-allbecause the current CLI has no--filteredflag. On this Mac, npm Rift 0.0.10's filtered copy also fails directly outside BB withPermission denied (os error 13); BB reports the failure without substituting all-files mode. Hook support depends on Rift's version.rift removetrashes the copy;rift gcphysically reclaims storage.How you verified
Rebased onto PR 1 head
2e5a6c0ba5, preserving its structural provider filtering and durable checkout-claim changes.pnpm exec turbo run typecheck lint: 96/96 tasks passed.@bb/app,@bb/server,@bb/plugin-api-map,@bb/client-core,@bb/core-ui, and@get-bb/plugin-sdk.cd tests/integration && pnpm exec vitest run --config vitest.config.ts --project @bb/integration-tests --maxWorkers=3, with the temporary Rift bin directory on PATH: 27 files, 55 tests passed (50.03s)./Users/michael/.bb/thread-storage/thr_w4cp8wrwjm/surface-report.md.