-
Notifications
You must be signed in to change notification settings - Fork 2
feat: Implement agent session isolation for managed projects #98
Copy link
Copy link
Open
Description
개요
각 프로젝트에서 Claude Code CLI 에이전트가 claudeship의 소스코드에 집중하는 문제를 해결하기 위해, 에이전트 세션을 프로젝트 단위로 격리합니다.
문제
- 에이전트가 자신이 담당한 프로젝트의 코드 대신 claudeship 플랫폼 코드를 인식/참조할 수 있음
- 현재 시스템 프롬프트가
-p(유저 메시지)로 전달되어, Claude CLI의 기본 시스템 프롬프트(CLAUDE.md 포함)가 그대로 적용됨 env: { ...process.env }로 claudeship 서버의 전체 환경변수가 누출됨- 프로젝트 디렉토리에 CLAUDE.md가 없어서 에이전트에게 프로젝트 정체성을 전달할 수단이 없음
해결 방안
1. CLI 플래그 기반 격리 (claude-cli.service.ts)
--append-system-prompt: 스코프 격리 지시사항 주입--setting-sources "project": 글로벌 사용자 설정/CLAUDE.md 무시, 프로젝트 내부만 참조- 환경변수 필터링: 필요한 변수만 전달
2. 프로젝트별 CLAUDE.md 자동 생성
- 프로젝트 생성 시 CLAUDE.md 자동 배치
- 에이전트의 스코프를 명시적으로 제한하는 지시사항 포함
- PROJECT.md의 Agent Instructions 내용과 연동
3. 시스템 프롬프트 격리 섹션 추가 (PromptBuilderService)
- Project Scope Isolation 섹션 추가
- 에이전트가 프로젝트 외부를 탐색하지 않도록 명시적 지시
리서치 참고
- Replit: 컨테이너 + NixOS Overlay FS
- Cursor: OS 샌드박스 (sandbox-exec/bwrap)
- Bolt.new: 브라우저 WebContainer (WASM)
- v0.dev: Firecracker MicroVM
- Claudable: Claude Code CLI 샌드박스에 의존 (현재 claudeship과 동일)
- Claude Code CLI:
--setting-sources,--append-system-prompt,--strict-mcp-config플래그로 격리 가능
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels