Skip to content

Commit c327cd4

Browse files
docs: document BingguPack MCP sandbox home via BINGGU_HOME
- root cause: not a code defect; BINGGU_HOME env opt-in already implemented (binggu_platform, 25 modules) - test mistakes: wrong env name (BINGGUPACK_HOME) + shell export not passed to MCP process - fix: inject env.BINGGU_HOME in MCP config + restart (owner op). no code patch needed. - verdict: MCP_SANDBOX_HOME_SUPPORTED
1 parent a9a85e7 commit c327cd4

4 files changed

Lines changed: 78 additions & 2 deletions

docs/BINGGUPACK_FINAL_HANDOFF.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
> **신규 사용자 E2E:** `NEW_USER_E2E_PARTIAL_DOCS_FIXED` (offline 동작·문서 보정 / WSL Ubuntu·macOS actual PASS는 `CROSS_PLATFORM_E2E_PENDING`).
99
> 후속 과제: 전용 CLI(`BINGGUPACK_CLI_DESIGN.md`, `CLI_DESIGN_RECORDED`), cross-platform 실행(`BINGGUPACK_CROSS_PLATFORM_E2E_PLAN.md`). v1.8.0 stable 유지 가능.
1010
> **MCP 실사용 테스트:** `MCP_OPERATIONAL_PARTIAL_HOME_NOT_ISOLATED` (`BINGGUPACK_MCP_OPERATIONAL_E2E_TEST_REPORT.md`). 도구 흐름(preview→save dry-run→build→validate→consumer) 동작·ledger write 0.
11-
> ⚠️ **결함:** `openbinggu-local` MCP가 `BINGGUPACK_HOME` override를 못 받아 실제 `~/.binggupack`에 preview 캐시/sqlite shm 흔적 발생(데이터 손상 0). 차기: MCP 서버 temp-home env 지원.
11+
> ⚠️ **결함→해결:** 실제 `~/.binggupack` 흔적의 원인은 코드 결함이 아니라 테스트 env 이름 오류였음. 올바른 env = **`BINGGU_HOME`**(이미 `binggu_platform.binggu_home()`이 지원, 25개 모듈 공유, 실증 완료). 해결: MCP config `env.BINGGU_HOME` 주입+재시작(owner 운영). 코드 패치 0. 상세: `BINGGUPACK_MCP_SANDBOX_HOME_FIX.md`. 상태: `MCP_SANDBOX_HOME_SUPPORTED`.
1212
1313
## BingguPack 정의
1414
Personal Ontology AGI Core(본체·Layer1) + OpenCrab Workflow Factory(2차 commercial·Layer2).

docs/BINGGUPACK_MCP_OPERATIONAL_E2E_TEST_REPORT.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
- **그러나 temp-home sandbox 격리 전제가 깨짐** → 요청한 `MCP_OPERATIONAL_READY_SANDBOX` **미달**.
3434
- **판정: `MCP_OPERATIONAL_PARTIAL_HOME_NOT_ISOLATED`** — 기능은 동작하나, MCP write/preview 계열은 실제 홈을 사용하므로 진정한 sandbox 실행 불가.
3535

36+
### 4-1. 원인 규명 (2026-06-24 후속 — `BINGGUPACK_MCP_SANDBOX_HOME_FIX.md`)
37+
- **코드 결함 아님.** `binggu_platform.binggu_home()``BINGGU_HOME` env opt-in을 이미 완전 지원(25개 모듈 공유). 실증 완료(BINGGU_HOME=temp → 전 경로 temp 격리).
38+
- 실제 원인: ① 테스트 env 이름 오류(`BINGGUPACK_HOME` → 정답 `BINGGU_HOME`) ② 세션 Bash export는 MCP 프로세스에 전달 안 됨(MCP config `env` 블록 필요).
39+
- 해결: MCP config `env.BINGGU_HOME` 주입 + 재시작(owner 운영 행위). 코드 `MCP_SANDBOX_HOME_SUPPORTED`.
40+
3641
## 5. 권고 (차기)
3742
- `openbinggu-local` MCP 서버가 `BINGGUPACK_HOME` env override를 읽도록 설정/패치 → 그래야 temp-home 실사용 테스트가 안전.
3843
- 그 전까지 **write/preview 계열 MCP 도구는 실제 홈에 흔적을 남김**을 전제로 사용. 순수 read(selftest/pack_validate/consumer_smoke)는 ledger 데이터 변경 0.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# BingguPack MCP Sandbox Home — Diagnosis & Fix
2+
3+
> 2026-06-24. openbinggu-local MCP의 temp-home 격리 문제 원인 규명.
4+
> **결론: 코드 결함 아님. `BINGGU_HOME` env override가 이미 완전 구현되어 있다.**
5+
6+
## 1. MCP 서버/설정 위치
7+
- 서버: `C:\Users\PC\binggupack\scripts\openbinggu_mcp_server.py` (사장님 실제 BingguPack 시스템, OpenCrab repo 밖).
8+
- config: `~/.claude.json` + `~/.claude/.mcp.json`
9+
```json
10+
"openbinggu-local": {
11+
"command": "python",
12+
"args": ["C:\\Users\\PC\\binggupack\\scripts\\openbinggu_mcp_server.py", "--serve", "C:\\Users\\PC\\binggupack"]
13+
}
14+
```
15+
- 실제 도구 동작: `openbinggu_mcp_server_handlers.handle_tool` → capture/ledger 엔진.
16+
17+
## 2. home 경로 결정 지점 (이미 BINGGU_HOME 지원)
18+
- 중앙 helper: `scripts/binggu_platform.py`
19+
- `binggu_home(env)`: **`BINGGU_HOME` 우선(opt-in)**, 없으면 OS별 홈/`.binggupack`.
20+
- `default_ledger(env)`: `<binggu_home>/ledger.sqlite` (BINGGU_HOME 우선).
21+
- `scripts/binggu_capture_persist.py` `binggu_home()``os.environ["BINGGU_HOME"]` 우선.
22+
- **25개 모듈이 binggu_platform import.** → BINGGU_HOME 1개로 전 경로 통제 가능.
23+
24+
## 3. 실제 원인 (코드 아님 — 테스트 실수)
25+
이전 MCP operational E2E에서 실제 `~/.binggupack`이 건드려진 원인:
26+
1. **env 이름 오류**`BINGGUPACK_HOME`을 썼다. 올바른 이름은 **`BINGGU_HOME`**.
27+
2. **프로세스 전달 실패** — 세션 Bash `export`는 별도 프로세스인 MCP 서버에 전달되지 않는다.
28+
MCP 서버의 env는 **MCP config의 `env` 블록**으로만 주입된다.
29+
30+
## 4. 실증 (경로 계산, write 0)
31+
```
32+
BINGGU_HOME=/tmp/tmp.RvQW3nYdlS 주입 시:
33+
binggu_home = .../Temp/tmp.RvQW3nYdlS
34+
default_ledger = .../Temp/tmp.RvQW3nYdlS/ledger.sqlite
35+
capture home = .../Temp/tmp.RvQW3nYdlS
36+
미주입(기본):
37+
binggu_home = C:/Users/PC/.binggupack
38+
```
39+
**`BINGGU_HOME`으로 capture/ledger/preview 전부 temp로 격리됨.** 코드 패치 불필요.
40+
41+
## 5. 올바른 해결 — MCP config env 주입 (예시만, 실제 config 미수정)
42+
sandbox/CI 테스트용 MCP 등록 예시 (owner 운영 행위 — 등록은 owner가):
43+
```json
44+
{
45+
"mcpServers": {
46+
"openbinggu-local-sandbox": {
47+
"command": "python",
48+
"args": ["C:\\Users\\PC\\binggupack\\scripts\\openbinggu_mcp_server.py", "--serve", "C:\\Users\\PC\\binggupack"],
49+
"env": {
50+
"BINGGU_HOME": "C:\\Users\\PC\\AppData\\Local\\Temp\\binggu-mcp-sandbox"
51+
}
52+
}
53+
}
54+
}
55+
```
56+
- `env.BINGGU_HOME` 설정 → MCP 프로세스가 그 env로 기동 → capture/ledger/preview 전부 그 아래.
57+
- 적용 후 MCP 재시작(또는 Claude 재시작) 필요 — 별도 프로세스이므로.
58+
- **실제 운영 `openbinggu-local`은 그대로 두고, 별도 sandbox 엔트리로 등록**하는 것을 권장.
59+
60+
## 6. 판정
61+
- **코드: `MCP_SANDBOX_HOME_SUPPORTED`**`BINGGU_HOME` opt-in 이미 구현·실증 완료.
62+
- **런타임: 조건부 `MCP_OPERATIONAL_READY_SANDBOX`** — MCP config `env.BINGGU_HOME` 주입 + 재시작 시 달성.
63+
(이번 턴은 config 미수정·문서화까지 → 현 세션 MCP는 여전히 실제 홈 사용.)
64+
65+
## 7. 무결성
66+
- **사장님 BingguPack 코드 수정 0** (패치 불필요 — 이미 지원).
67+
- 실증은 `binggu_home()` 경로 계산만(파일 생성 0). `ledger.sqlite` 본체·`-wal` 미변경 = 데이터 write 0.
68+
- `actual API call=0` · `source fetch/network=0` · `insane-search 외부=0` · `OpenCrab ingest=0` · `production write=0` · `upload script=0` · `release/tag 수정=0`.
69+
- 정직 표기: import 부작용으로 `ledger.sqlite-shm` touch 가능(데이터 0). config 수정·MCP 재시작은 owner 운영 행위로 미수행.

docs/BINGGUPACK_QUICKSTART.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ git checkout v1.8.0
1616
- **prerequisite:** Python 3.10+ · Git. (WSL Ubuntu / macOS / Linux 공통. Windows는 Git Bash 또는 WSL 권장.)
1717
- **출력 위치는 항상 temp/지정 경로.** 사용자 실제 `~/.binggupack`을 건드리지 않으려면 임시 home 사용:
1818
```bash
19-
export BINGGUPACK_HOME="$(mktemp -d)"
19+
export BINGGU_HOME="$(mktemp -d)" # 올바른 env 이름은 BINGGU_HOME (BINGGUPACK_HOME 아님)
2020
```
21+
- **MCP 경유 시 주의:** MCP 서버는 별도 프로세스라 셸 `export`가 전달되지 않는다. temp 격리하려면
22+
MCP config의 `env` 블록에 `"BINGGU_HOME": "<temp>"`를 넣고 재시작한다. 상세: `BINGGUPACK_MCP_SANDBOX_HOME_FIX.md`.
2123

2224
## 첫 실행 (offline, 안전)
2325

0 commit comments

Comments
 (0)