mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 22:03:48 +00:00
- Simplify ProcessRunTab layout: compact form with collapsible Advanced section for timeout/maxOutputBytes - Rewrite ProcessesTab: collapsible create form, lightweight list items with status dots, clean detail panel with tabs - Extract error details: use problem.detail instead of generic "Stream Error" title for better error messages - Fix GhosttyTerminal binary frame parsing: handle server's binary ArrayBuffer control frames (ready/exit/error) - Enable WebSocket proxying in Vite dev server with ws: true - Set TERM=xterm-256color default for TTY processes so tools like tmux, vim, htop work out of the box - Remove orange gradient background from terminal container for cleaner look - Remove orange left border from selected process list items - Update inspector CSS with new process/terminal styles Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# Server Instructions
|
|
|
|
## Architecture
|
|
|
|
- Public API routes are defined in `server/packages/sandbox-agent/src/router.rs`.
|
|
- ACP proxy runtime is in `server/packages/sandbox-agent/src/acp_proxy_runtime.rs`.
|
|
- All API endpoints are under `/v1`.
|
|
- Keep binary filesystem transfer endpoints as dedicated HTTP APIs:
|
|
- `GET /v1/fs/file`
|
|
- `PUT /v1/fs/file`
|
|
- `POST /v1/fs/upload-batch`
|
|
- Rationale: host-owned cross-agent-consistent behavior and large binary transfer needs that ACP JSON-RPC is not suited to stream efficiently.
|
|
- Maintain ACP variants in parallel only when they share the same underlying filesystem implementation; SDK defaults should still prefer HTTP for large/binary transfers.
|
|
- `/opencode/*` stays disabled (`503`) until Phase 7.
|
|
- Agent install logic (native + ACP agent process + lazy install) is handled by `server/packages/agent-management/`.
|
|
|
|
## API Contract Rules
|
|
|
|
- Every `#[utoipa::path(...)]` handler needs a summary line + description lines in its doc comment.
|
|
- Every `responses(...)` entry must include `description`.
|
|
- Regenerate `docs/openapi.json` after endpoint contract changes.
|
|
- Keep CLI and HTTP endpoint behavior aligned (`docs/cli.mdx`).
|
|
|
|
## Tests
|
|
|
|
Primary v1 integration coverage:
|
|
- `server/packages/sandbox-agent/tests/v1_api.rs`
|
|
- `server/packages/sandbox-agent/tests/v1_agent_process_matrix.rs`
|
|
|
|
Run:
|
|
```bash
|
|
cargo test -p sandbox-agent --test v1_api
|
|
cargo test -p sandbox-agent --test v1_agent_process_matrix
|
|
```
|
|
|
|
## Migration Docs Sync
|
|
|
|
- Keep `research/acp/spec.md` as the source spec.
|
|
- Update `research/acp/todo.md` when scope/status changes.
|
|
- Log blockers/decisions in `research/acp/friction.md`.
|