Non-FUSE virtual working copy
AvailableLocal JJ fallback remains available for virtual clone workflows outside daemon mounts.
Source control
Vex source control combines physical backing repositories with virtual repository roots for imported projects and monorepo workflows.
Every organization's aggregate repository is canonically addressed as <org>/home. GitHub onboarding weaves each imported repository into a synced folder beneath that Home repository, so the organization keeps one shared history and trunk.
Existing <org>/main addresses remain a permanent compatibility alias for the same repository identity. This address migration does not rename a branch or bookmark named main.
vex pull refreshes hosted bookmarks as bookmark@vex without moving the working copy. Use vex sync --target main to pull and restack the current line of work; submitted stacks also reconcile their review state.
Publish an explicit source and destination with vex push -r @- --to main. Creating, forcing, and deleting hosted bookmarks require their explicit flags, and --dry-run previews the planned mutation.
Run vex submit to create or update one review per stable JJ change id. Amend and rebase preserve the diff identity; repeating an unchanged submit creates no patchsets. Run vex sync after target movement or landing to fetch the exact target, remove a landed prefix, restack remaining changes, and synchronize the server.
vex stack merge adds the current stack to its target queue. The repository queue page at /<org>/<repo>/queue shows ordered entries, candidate and check state, ejection reasons, and pause, promote, retry, cancel, and merge controls. Vex-primary is the default authority; a GitHub-backed virtual repository can explicitly switch to GitHub-primary after its queue and projections are clean and required App permissions are present.
In a repository's Browse view, open Clone and choose Download Trunk ZIP. Vex resolves the current trunk at download time and returns its materialized files without history, .git, .jj, or generated Vex cache directories. Virtual repository downloads stay inside their configured root and remove the parent monorepo prefix.
Signed-in browser sessions can also use GET /api/v1/organizations/<org>/repos/<repo>/vcs/archive.zip. API clients need a bearer token with repository read access. Use vex clone when you need history or a normal Vex working copy.
The web app publishes the safe platform model, but it does not open local daemon sockets from the browser. Use vex daemon capabilities or the desktop VCS panel for the live host report.
Local JJ fallback remains available for virtual clone workflows outside daemon mounts.
Requires local vexd plus Linux FUSE on the machine that owns the mount.
Uses daemon-owned overlay writes and requires the same local FUSE boundary.
Repo-owned code exists; live mounts need jj-backend coordinates, tenant/ref data, and auth.
Local encrypted export, inspect, and restore exist; server object storage and KMS are still pending.
Live remote fetch, live server-side cloud recovery, and privileged Linux FUSE smokes remain externally gated. Local encrypted cloud-workspace inspect is the current non-mutating review/build access path for unlanded workspace state.