Steve Yegge
58fe00057c
feat: Complete GH #353 follow-up phases (bd-9nw, bd-u3t, bd-e0o)
Implements all three follow-up phases for sandbox environment support:
**Phase 1 (bd-9nw): Documentation** ✅
- Comprehensive sandbox troubleshooting section in TROUBLESHOOTING.md
- Detailed symptoms, root causes, and escape hatches
- Step-by-step troubleshooting workflow
- Comparison table for --sandbox, --force, and --allow-stale flags
- Global flags section added to CLI_REFERENCE.md
- Documents --sandbox, --allow-stale, and --force flags
- Usage examples and when to use each flag
- GitHub issue #353 comment with immediate workarounds
**Phase 2 (bd-u3t): Sandbox Auto-Detection** ✅
- Automatic sandbox detection using syscall.Kill permission checks
- cmd/bd/sandbox_unix.go: Unix/Linux/macOS implementation
- cmd/bd/sandbox_windows.go: Windows stub (conservative approach)
- cmd/bd/sandbox_test.go: Comprehensive test coverage
- Auto-enables sandbox mode when detected
- Shows: "ℹ️ Sandbox detected, using direct mode"
- Respects explicit --sandbox or --no-daemon flags
- Updated documentation to reflect auto-detection (v0.21.1+)
**Phase 3 (bd-e0o): Enhanced Daemon Robustness** ✅
- Permission-aware process checks in cmd/bd/daemon_unix.go
- Correctly handles EPERM (operation not permitted) from syscall.Kill
- Treats EPERM as "process exists but not signable" = running
- Prevents false negatives in sandboxed environments
- Metadata health check in cmd/bd/daemon_event_loop.go
- Periodic verification that metadata is accessible
- Helps detect external import operations (bd import --force)
- Non-fatal logging for diagnostics
- Comprehensive test suite in cmd/bd/daemon_unix_test.go
- Self-check, init process, nonexistent process, parent process tests
**Impact:**
- Codex users: No manual intervention needed, auto-detected
- Stuck states: Three escape hatches (--sandbox, --force, --allow-stale)
- Daemon robustness: Handles permission-restricted environments gracefully
- All three follow-up issues (bd-9nw, bd-u3t, bd-e0o) closed
**Files changed:**
- cmd/bd/main.go: Auto-detection logic in PersistentPreRun
- cmd/bd/sandbox_unix.go: Unix sandbox detection (new)
- cmd/bd/sandbox_windows.go: Windows sandbox detection stub (new)
- cmd/bd/sandbox_test.go: Sandbox detection tests (new)
- cmd/bd/daemon_unix.go: Permission-aware isProcessRunning()
- cmd/bd/daemon_unix_test.go: Process check tests (new)
- cmd/bd/daemon_event_loop.go: Metadata health check
- docs/TROUBLESHOOTING.md: Comprehensive sandbox section
- docs/CLI_REFERENCE.md: Global flags documentation
Closes bd-9nw, bd-u3t, bd-e0o
Related: GH #353
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 19:32:45 -05:00
..
2025-11-08 00:15:07 -08:00
2025-11-08 13:18:50 -08:00
2025-11-08 04:16:44 -08:00
2025-11-08 04:16:44 -08:00
2025-11-08 02:36:27 -08:00
2025-11-08 00:49:41 -08:00
2025-11-20 21:24:31 -05:00
2025-11-05 21:04:00 -08:00
2025-11-08 13:18:50 -08:00
2025-11-21 19:32:45 -05:00
2025-10-31 00:19:42 -07:00
2025-11-05 21:04:00 -08:00
2025-11-08 01:03:28 -08:00
2025-11-05 21:04:00 -08:00
2025-11-07 14:19:14 -08:00
2025-11-08 13:18:50 -08:00
2025-11-20 21:29:20 -05:00
2025-11-12 10:49:38 -08:00
2025-11-05 21:04:00 -08:00
2025-11-06 19:42:01 -08:00
2025-11-06 19:53:29 -08:00
2025-11-06 20:06:45 -08:00
2025-11-05 19:04:14 -08:00
2025-11-05 21:04:00 -08:00
2025-11-20 21:47:50 -05:00
2025-11-20 20:58:57 -05:00
2025-11-05 21:04:00 -08:00
2025-11-08 03:59:59 -08:00
2025-11-04 23:12:42 -08:00
2025-11-21 19:32:45 -05:00