Skip to content

신뢰 모드에서 사용자 shell을 실행 파일 catalog에 자동으로 넣었다 (ADR-0060) - #111

Merged
SonAIengine merged 1 commit into
mainfrom
feat/trust-shell
Oct 25, 2026
Merged

SonAIengine merged 1 commit into
mainfrom
feat/trust-shell

Conversation

@SonAIengine

Copy link
Copy Markdown
Contributor

요약

xgen --trust session은 사용자 shell(SHELL의 bash/zsh/sh, 없으면 PATH의 bash→zsh→sh, Windows는 pwsh→powershell)을 catalog에 더한다. 모델이 bash -c로 파이프와 catalog에 없는 명령(df, ps, curl, find 등)을 실행할 수 있다.

  • 신뢰 모드가 아니면 변경 없음(/allow-executable 유지)
  • adapter는 ADR-0028대로 shell 없이 argv 실행. 재검증·timeout·출력 상한·no-replay 유지
  • Capability 계약·protocol·journal 변경 없음

변경 분류: 범용 catalog 정책.

검증

  • 단위: shell 선택 우선순위와 fallback, e2e: --trust 시작 화면 catalog에 shell
  • 실사용(deepseek): 4개 요청 중 3개 정확, curl 1회 거절(새 session 반복 5/5 성공)
  • cargo test --workspace 735 passed, clippy·fmt 통과, Windows 분기 때문에 브랜치 전체 matrix 실행

🤖 Generated with Claude Code

REPL catalog는 개발 도구 25종 고정 목록이라 df, ps, curl, find 같은 개인 작업 명령과 파이프를
쓸 수 없었다. /allow-executable bash=/bin/bash로 넣으면 모델이 스스로 bash -c로 3개 작업을 모두
끝냈고, 막힌 것은 매번 직접 등록해야 하는 점뿐이었다.

- --trust session은 SHELL(bash/zsh/sh) 또는 PATH의 bash->zsh->sh(Windows는 pwsh->powershell)를
  catalog에 더하고 시작 화면에 catalog를 보여 준다. 신뢰 모드가 아니면 그대로다.
- adapter는 ADR-0028대로 shell 없이 argv 실행, 실행 파일 재검증·timeout·출력 상한·no-replay 유지.

실사용(deepseek, --trust, 수동 등록 없음): 한 session 4개 요청 중 3개 정확(디스크·메모리, 디렉터리
148개, 메모리 상위 프로세스), curl 요청 1회 invocation_invalid 거절, 새 session 반복 5/5 성공.
cargo test --workspace 735 통과, clippy 통과.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SonAIengine
SonAIengine merged commit 2136473 into main Oct 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant