Skip to content

Conversation

@cboone
Copy link
Owner

@cboone cboone commented Feb 9, 2026

Lay out five approaches to container filesystem isolation, from
the existing read-only worktrees mode through APFS copy-on-write
cloning, with intermediate isolated+ephemeral, named volume, and
host-side persistent directory options. Includes pros/cons, scope,
marketing blurbs, and a four-phase implementation roadmap that
builds toward the v1.2 APFS cloning target.

https://claude.ai/code/session_01Tds7kuhfb8X1tfVKTVP15q

Lay out five approaches to container filesystem isolation, from
the existing read-only worktrees mode through APFS copy-on-write
cloning, with intermediate isolated+ephemeral, named volume, and
host-side persistent directory options. Includes pros/cons, scope,
marketing blurbs, and a four-phase implementation roadmap that
builds toward the v1.2 APFS cloning target.

https://claude.ai/code/session_01Tds7kuhfb8X1tfVKTVP15q
Copilot AI review requested due to automatic review settings February 9, 2026 11:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new design/roadmap document that surveys filesystem isolation options for bopca—from the current read-only workspace + worktrees setup through APFS copy-on-write cloning—and proposes a phased implementation roadmap toward the v1.2 isolation target.

Changes:

  • Document five filesystem isolation approaches with pros/cons and suggested CLI/config surfaces.
  • Add a comparison section (isolation/startup cost/best-for) to clarify tradeoffs.
  • Propose a four-phase implementation plan culminating in APFS CoW cloning with diff/accept/reset workflow.

| 2. APFS CoW cloning | Yes (clone) | Yes (clone) | Yes | Yes (until reset) |
| 3. Isolated + ephemeral | No | No | No | No |
| 4. Isolated + named volume | No | No | No | Yes |
| 5. Isolated + host directory | No | No | Yes | Yes |
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The markdown table rows start with ||, which creates an extra empty first column in GitHub-flavored markdown. Use a single leading | for each row. Also, in this table Approach 5 bind-mounts a host-side directory, so the agent can read/write host files in that managed workspace; update the Approach 5 cells (or clarify the column headings if they specifically mean the original repo).

Suggested change
| 5. Isolated + host directory | No | No | Yes | Yes |
| 5. Isolated + host directory | Yes (managed dir) | Yes (managed dir) | Yes | Yes |

Copilot uses AI. Check for mistakes.
Comment on lines +241 to +247
| Approach | First run | Subsequent runs |
| --- | --- | --- |
| 1. Read-only + worktrees | Instant (bind mount) | Instant |
| 2. APFS CoW cloning | Near-instant (APFS clone) | Near-instant (snapshot reset) |
| 3. Isolated + ephemeral | Seconds (local git clone) | Seconds (clone every time) |
| 4. Isolated + named volume | Seconds (clone + seed) | Instant (volume reattach) |
| 5. Isolated + host directory | Seconds (clone + seed) | Instant (bind mount) |
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The table rows start with ||, which renders an unintended empty first column. Use a single leading | for each row.

Copilot uses AI. Check for mistakes.
Comment on lines +251 to +257
| Approach | Ideal workflow |
| --- | --- |
| 1. Read-only + worktrees | Daily dev with host editor, agent writes to worktrees |
| 2. APFS CoW cloning | Daily dev with rollback, review-and-accept workflow |
| 3. Isolated + ephemeral | Untrusted agents, one-shot tasks, CI-like runs |
| 4. Isolated + named volume | Full remote dev, long-running isolated projects |
| 5. Isolated + host directory | Isolated dev with host-side editor access |
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The table rows start with ||, which renders an unintended empty first column. Use a single leading | for each row.

Copilot uses AI. Check for mistakes.
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.

2 participants