`plan_file`/`review_file`이 평범한 문자열이라 decode 직후 trim-empty가 곧 생략으로 취급되었고, 그 결과 loader의 빈 경로 거부가 설정값에 대해 도달할 수 없었다. 명시적으로 설정한 빈 값과 공백 값이 조용히 built-in default로 떨어지는 승인 경계 결함이므로 optional 표현으로 바꿔 생략만 fallback 신호가 되게 한다. 설정된 값은 파일 접근 전에 trim 후 빈 경로 거부까지 도달한다. pointer cell이 snapshot 사이에서 aliasing되지 않도록 Templates 전용 deep clone을 두고, 네 가지 명시 빈/공백 경계와 clone 독립성, 그리고 refresh가 경로나 본문을 노출하지 않는다는 기존 근거를 함께 회귀로 고정한다. Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| agent-client | ||
| agent-contract | ||
| agent-ops | ||
| agent-roadmap | ||
| agent-spec | ||
| agent-task | ||
| agent-test | ||
| agent-ui | ||
| apps | ||
| configs | ||
| docs | ||
| packages | ||
| proto | ||
| scripts | ||
| .aiexclude | ||
| .clineignore | ||
| .clinerules | ||
| .codex | ||
| .cursorignore | ||
| .cursorrules | ||
| .env.dev-corp.example | ||
| .env.dev.example | ||
| .env.example | ||
| .geminiignore | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| GEMINI.md | ||
| go.mod | ||
| go.sum | ||
| go.work | ||
| go.work.sum | ||
| HANDOFF.md | ||
| Makefile | ||
| opencode.json | ||
| README.md | ||
IOP
IOP is a provider and device execution platform. It exposes OpenAI- and Anthropic-compatible inference APIs, routes work through Edge provider pools, executes against Node-owned adapters, and presents fleet operations through Control Plane and the Flutter Client.
Architecture
Client -> Control Plane -> Edge -> Node -> Provider
| |
| +-- normalized inference and provider tunnels
+-- model routing, queues, leases, API compatibility
- Edge owns model routing, provider-pool admission, leases, external APIs, Node readiness, and reconnect fencing.
- Node owns provider adapter construction and local execution.
- Control Plane owns connected Edge views and operation relay, not Edge runtime state.
- Client consumes Control Plane fleet, Node, provider, and operation views.
packages/go/executioncontains transport-neutral provider primitives.
Internal provider selection uses adapter + target. session_id is opaque correlation only, and cancellation targets a non-empty run_id. Provider commands are limited to capabilities, transport status, and the Ollama API tunnel.
IOP does not own interactive host programs, persistent conversations, terminal emulation, arbitrary host command execution, or local filesystem execution context.
Development
make proto
make proto-dart
go test -count=1 ./...
make client-test
make test-control-plane-edge-wire
make test-e2e
Start with agent-contract/index.md for protocol and runtime contracts, and agent-spec/index.md for living implementation summaries.
Operator and client setup guides: