claudebox/.planning/phases/01-minimal-viable-sandbox/01-DISCUSSION-LOG.md

73 lines
2.7 KiB
Markdown

# Phase 1: Minimal Viable Sandbox - Discussion Log
> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
**Date:** 2026-04-09
**Phase:** 01-minimal-viable-sandbox
**Areas discussed:** Argument passthrough, nix-index database, Env edge cases, Git identity
---
## Argument Passthrough
| Option | Description | Selected |
|--------|-------------|----------|
| Forward all unknown | claudebox claims --yes, --dry-run, --check; everything else passes through to claude | ✓ |
| Explicit -- separator | claudebox args before --, claude args after -- | |
| Pass everything through | claudebox has no flags, controlled via env vars | |
**User's choice:** Forward all unknown
**Notes:** No -- separator needed. Simple and intuitive.
---
## nix-index Database
| Option | Description | Selected |
|--------|-------------|----------|
| comma-with-db | Use nix-community/nix-index-database flake, bundles the DB | ✓ |
| Mount host ~/.cache/nix-index | Bind-mount host's nix-index DB read-only | |
| Both — prefer host, fallback to bundled | Mount host DB if exists, otherwise comma-with-db | |
**User's choice:** comma-with-db
**Notes:** Self-contained, no host dependency.
---
## Env Edge Cases
| Option | Description | Selected |
|--------|-------------|----------|
| Strict allowlist | Only SAND-03 vars, rebuild to add more | |
| Allowlist + CLAUDEBOX_EXTRA_ENV | Core allowlist + user-specified extras via comma-separated env var | ✓ |
| Strict + computed vars | Allowlist from host + claudebox generates its own TMPDIR, COLORTERM, etc. | |
**User's choice:** Allowlist + CLAUDEBOX_EXTRA_ENV
**Notes:** Pragmatic escape hatch for power users, user takes responsibility for not leaking secrets.
---
## Git Identity
| Option | Description | Selected |
|--------|-------------|----------|
| Generate minimal .gitconfig | Create sandbox-only .gitconfig with user.name, user.email, safe.directory | ✓ |
| Mount host .gitconfig read-only | Bind-mount host config, carries over everything including broken credential helpers | |
| Mount + override dangerous keys | Mount host config but neutralize credential.helper and core.pager via env vars | |
**User's choice:** Generate minimal .gitconfig
**Notes:** User asked whether custom git settings matter for Claude. Conclusion: Claude uses git programmatically, doesn't need aliases/pagers/merge tools. Mounting host config risks breakage from credential helpers and pagers referencing binaries not in sandbox PATH.
---
## Claude's Discretion
- Mount ordering, tmpfs layout, /dev /proc /tmp setup
- --clearenv + --setenv sequencing
- DNS resolution mount strategy
- SSL cert bundle path detection
## Deferred Ideas
None