claudebox/.planning/phases/02-env-audit-and-cli-polish/02-HUMAN-UAT.md
Christopher Mühl c5e8cca867 feat(05-01): rewrite mount architecture with per-project instance isolation
- Replace --bind ~/.claudebox + --symlink with direct --bind ~/.claude ~/.claude
- Add compute_canonical_root() function using git rev-parse --git-common-dir
- Add per-project INSTANCE_DIR via sha256sum[:16] of canonical git root
- Overlay projects/ with per-project hash dir for isolated conversation history
- Overlay history.jsonl and SANDBOX.md as file-level bind mounts
- Update credential mount target from ~/.claudebox to ~/.claude
- Add CLAUDE_JSON_FILE (~/.claude.json) detection and conditional bind mount
- Remove stale CLAUDE.md injection logic (D-06: user's real CLAUDE.md used)
- Update dry-run block and print_audit to reflect new mount layout
- Update SANDBOX.md heredoc to remove ~/.claudebox reference
2026-04-13 09:00:53 +00:00

44 lines
1.1 KiB
Markdown

---
status: partial
phase: 02-env-audit-and-cli-polish
source: [02-VERIFICATION.md]
started: 2026-04-09T17:30:00Z
updated: 2026-04-09T17:30:00Z
---
## Current Test
[awaiting human testing]
## Tests
### 1. Visual Audit Display
expected: Run `claudebox` without `--yes` — see grouped sections (Sandbox-generated, Host allowlisted, Extra), PATH split by colon, sensitive values masked, Y/n prompt on stderr
result: [pending]
### 2. Dry-Run Output
expected: Run `claudebox --dry-run` — full bwrap command prints to stderr, does not execute
result: [pending]
### 3. Check Mode
expected: Run `claudebox --check` — colored OK/FAIL/WARN output for bwrap, claude, git, curl, nix, ~/.claudebox, ANTHROPIC_API_KEY
result: [pending]
### 4. Non-Interactive Abort
expected: Pipe input to `claudebox` (e.g., `echo | claudebox`) — aborts with error telling user to pass `--yes`/`-y`
result: [pending]
### 5. Yes Flag Skip
expected: Run `claudebox --yes` or `claudebox -y` — skips audit display and confirmation, launches immediately
result: [pending]
## Summary
total: 5
passed: 0
issues: 0
pending: 5
skipped: 0
blocked: 0
## Gaps