Skip to content

Persist Local VM workspaces across recreation - #151

Merged
milind-soni merged 1 commit into
mainfrom
codex/local-vm-persistence
Aug 16, 2026
Merged

Persist Local VM workspaces across recreation#151
milind-soni merged 1 commit into
mainfrom
codex/local-vm-persistence

Conversation

@milind-soni

Copy link
Copy Markdown
Owner

What changed

  • mounts a single private OpenMausBot-owned directory at /home/cua/workspace
  • treats that exact mount as part of the Local VM safety and compatibility contract
  • preserves Chrome and Chromium profiles inside the durable workspace
  • migrates an existing default profile on first boot and removes stale browser singleton locks
  • pins the VM hostname and versions the managed image layer
  • explains clearly which files survive VM replacement in the UI and agent instructions

Why

The Local VM previously stored every file and browser profile only in the container's writable layer. Recreating the container for an image or driver update therefore removed downloads, repositories, installed work, and authenticated browser sessions.

The VM is now disposable while one narrow workspace remains durable. Unexpected additional mounts are rejected instead of being exposed to a bot.

User impact

Users can recreate an outdated or unhealthy Local VM without losing files or browser sign-ins saved in the durable workspace. Existing VMs are intentionally marked for recreation once so they adopt the new storage boundary.

Validation

  • pnpm test — 440 passed, 8 skipped
  • pnpm build
  • focused post-rebase tests — 57 passed
  • live Docker Desktop image build and boot
  • verified the unprivileged cua user can write the workspace
  • verified files survive container removal and recreation
  • verified Chrome/Chromium profile links and stale-lock cleanup after recreation

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d6cd5085-e1c9-475e-91ef-6dba52d3a9e6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@milind-soni
milind-soni force-pushed the codex/local-vm-persistence branch from 8afcdf5 to 902f209 Compare August 16, 2026 21:08
@milind-soni
milind-soni marked this pull request as ready for review August 16, 2026 21:28
@milind-soni
milind-soni merged commit b08e166 into main Aug 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant