# Rust-Only Acceptance Checklist

## Scope

This checklist covers the Rust-side work that can be verified before the SuperRPA browser repository is available locally.

Covered:

- pipe handshake and protocol baseline
- task-level message types
- HMAC canonical string alignment
- Phase 1 rule-based Baidu search planner
- DeepSeek provider scaffolding
- provider-backed minimal Agent runtime with fallback to planner mode

Not covered yet:

- `SgClawProcessHost`
- `PipeListener`
- `CommandRouter` reuse in SuperRPA
- FunctionsUI bridge integration

## Required Commands

Run from the feature worktree:

```bash
cd /home/zyl/projects/sgClaw/.worktrees/superrpa-browser-control
cargo test -q
```

Optional focused checks:

```bash
cargo test --test task_protocol_test -q
cargo test --test planner_test -q
cargo test --test runtime_task_flow_test -q
cargo test --test deepseek_provider_test -q
cargo test --test agent_runtime_test -q
```

## Pass Criteria

- `init -> init_ack` tests pass
- `submit_task`, `task_complete`, and `log_entry` serialize correctly
- HMAC output is based on newline-delimited canonical string with stable JSON ordering
- Planner turns `打开百度搜索天气` into `navigate -> type -> click`
- Runtime mock flow emits browser commands and finishes with `task_complete`
- DeepSeek settings load from environment with default model `deepseek-chat`
- DeepSeek request body matches OpenAI-compatible chat completion shape

## Runtime Configuration

The provider-backed path is enabled only when `DEEPSEEK_API_KEY` is present.

Environment variables:

- `DEEPSEEK_API_KEY`
- `DEEPSEEK_BASE_URL` optional, defaults to `https://api.deepseek.com`
- `DEEPSEEK_MODEL` optional, defaults to `deepseek-chat`

Without `DEEPSEEK_API_KEY`, sgClaw falls back to the Phase 1 rule-based planner.

## Current Branch Milestones

- `b9773d4` — task pipe protocol and HMAC alignment
- `1ab0012` — Phase 1 task planner flow
- `0d0097b` — DeepSeek provider scaffolding
- `9979b1f` — provider-backed Agent runtime

## Next Dependency

To continue beyond Rust-only acceptance, the local SuperRPA / Chromium repository path is required so Tasks 3, 4, and 5 can be implemented and verified.
