본문으로 건너뛰기

Architecture

실행 엔진 원칙

Execution engine responsibilities for kernels, runtimes, and reruns.

실행 엔진 원칙

  • 실행 엔진은 교체 가능한 인터페이스로 설계한다.
  • 기본 후보:
    • LocalEngine
    • SandboxEngine
  • 편집기는 execute, interrupt, variables, files, packages, docs 같은 capability를 호출하고, 개별 엔진 구현을 직접 알지 않아야 한다.
  • AI teacher와 editor/ 제품 표면도 같은 capability surface를 호출한다.
  • 셀 실행/검증은 장기적으로 cell-call 계약으로 수렴한다. execute-reactive, check-exercise는 하위 호환 및 세부 구현 도구다.
  • editor의 직접 실행 버튼도 kernel execute로 바로 들어가지 않는다. editor/src/lib/notebookRuntime.ts가 세션 패키지 목록을 확인하고, 누락 패키지를 세션 packages/install capability의 uv 경로로 준비한 뒤 execute 또는 execute-reactive를 호출한다.
  • editor-runtime-preflight gate는 이 순서가 packages-check → packages-install → cell-call 의미와 어긋나지 않는지 확인한다.
  • runtime 복구 UX는 실패 종류를 섞지 않는다. 패키지 준비 실패는 라이브러리 준비 실패로 표시하고 cell-call을 막는다. 셀 실행 자체가 실패하면 결과 박스 안에 셀 실행 실패와 마지막 오류 줄 확인, 코드 수정 후 재실행 가능 안내를 함께 보여준다.
  • runtime-recovery-browser gate는 실제 제품 화면에서 package failure와 cell execution failure가 각각 셀 근처 복구 UX로 보이는지 확인한다.
  • kernel 실행 결과를 HTTP, websocket, tool payload로 바꾸는 기준은 src/codaro/kernel/executionPayload.py에 둔다.

Task 실행 정책

일반 notebook session은 사용자가 소유한 Local runtime 의미를 유지한다. 예약, webhook, workflow, 수동 task는 같은 LocalEngine을 사용하되 ExecutionSecurityPolicy가 주입된 별도 worker에서 실행한다. 정책은 workspace root, 정확한 permission scope, safety approval과 같은 policy hash를 가진다.

Task worker의 파일, network, process audit event는 src/codaro/runtime/localWorker.py가 집행한다. Task 결과 의미 판정은 src/codaro/automation/taskExecution.py, 승인 fingerprint와 policy hash는 src/codaro/automation/taskSafety.py가 소유한다. 표시된 권한과 실행 권한이 다르면 검증된 run이 될 수 없다.

관련

  • [[local-first-runtime]] - 로컬 기본 실행 정책
  • [[reactive-execution]] - 의존 그래프 위에서 동작