Skip to content

chore: remove the Docker Sandboxes AI workspace setup - #385

Draft
HendrikThePendric wants to merge 3 commits into
masterfrom
chore/remove-docker-sandbox-config
Draft

HendrikThePendric wants to merge 3 commits into
masterfrom
chore/remove-docker-sandbox-config

Conversation

@HendrikThePendric

@HendrikThePendric HendrikThePendric commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

Implements N/A

Description

This PR removes virtually all Docker Sandbox related code from the repo. What is left are a few minor things:

  • Some .gitignore entries that will prevent polluting the repo if a developer ends up using similar (self-managed) tooling as we did in the sandboxes
  • The branching logic in the pre-commit hook on the RUN_PRE_COMMIT_HOOK env var. This is a flag that can be used to lint a commit title but skip the code-linting. This is useful in general if you let Claude do commits, because it is configured to always finish with linting and testing. So then doing it in the pre-commit is a bit of a waste of time and energy. So we need a way to lint the commit but not the code in the pre-commit. For pre-push we don't need this, because --no-verify can be used.

Background

For a while we've shipped some scripts that enable running Claude in a Docker Sandbox with this repo. It proved to be impossible to get to a stable solution that's both convenient and secure:

  • We had a "mount" sandbox, which was somewhat convenient but not stable and insecure. There was editor integration, but this kept breaking when quitting the editor. The project files from the host were mounted in the sandbox's VM. This part made it insecure. To fix that I tried giving the VM a dedicated node_modules dir (so a sub-directory override from the mount. This kept breaking when running pnpm install on the host. And ultimately some nasty code can still end up on the host filesystem so it was inherently insecure.
  • And a "clone" sandbox that just ran the sandbox in "copy mode" which means the file system is completely isolated. This was stable and secure but inconvenient because it was tricky to access the files.

A much better solution is to bring the dev tools - in my case NeoVim with a shedload of plugins and LazyGit - into the sandbox. This way you can have a stable solution thats both convenient and secure. However, this makes it a developer specific solution rather than a repo-specific one. So the Sandbox setup needs to be removed from the repo and moved to a separate repo.


Quality checklist

  • Cypress and/or Jest tests added/updated N/A
  • Docs updated
  • d2-ci dependency replaced N/A

ToDos


The sandbox setup is per-developer, not per-project: which editor and git UI
belong in the image depends on who is driving it, and the same setup is wanted
on projects that have no config of their own. It moves to a personal repo.

Removes .sbx/, scripts/sbx.sh, docs/claude-sandboxes.md, the sbx:* package
scripts, and the sandbox references in README.md and CLAUDE.md.

The .gitignore entries stay — they cover generated files regardless of what
generates them — but the comments naming the sandbox are dropped.

The pre-commit hook keeps its RUN_PRE_COMMIT_HOOK=0 escape hatch, now described
in general terms instead of naming the sandbox clone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dhis2-bot

Copy link
Copy Markdown
Contributor

🚀 Deployed on https://pr-385.event-visualizer.netlify.dhis2.org

@dhis2-bot
dhis2-bot temporarily deployed to netlify September 17, 2026 12:17 Inactive
@HendrikThePendric
HendrikThePendric force-pushed the chore/remove-docker-sandbox-config branch from 485d926 to 33ede46 Compare September 17, 2026 12:19
Comment thread .gitignore
.claude/settings.local.json
# Installed by `playwright-cli install --skills`, not authored here
.claude/skills/playwright-cli
cypress/downloads

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This was simply a duplicate line that was removed

@dhis2-bot
dhis2-bot temporarily deployed to netlify September 17, 2026 12:21 Inactive
@sonarqubecloud

Copy link
Copy Markdown

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