# Canvas / A2UI Foundation Checklist

**Date:** 2026-02-16  
**Scope:** Close OpenClaw "Canvas / A2UI" gap with a first gateway-level artifact API.

## Goal

Add a minimal, testable visual-workspace foundation that companion clients/web UI can use to store and retrieve structured session artifacts.

## Implemented

- Added in-memory canvas artifact store:
  - `src/gateway/canvas-store.ts`
- Added gateway canvas handlers:
  - `canvas.put`
  - `canvas.get`
  - `canvas.list`
  - `canvas.delete`
  - `canvas.clear`
- Wired handlers into gateway routing:
  - `src/gateway/server.ts`
  - `src/gateway/handlers/index.ts`
- Added docs updates:
  - `README.md`
  - `docs/api/PROTOCOL.md`

## Test Coverage

- `src/gateway/canvas-store.test.ts`
  - session scoping
  - update semantics
  - delete/clear lifecycle
  - per-session cap eviction
- `src/gateway/handlers/handlers.test.ts`
  - full `canvas.*` lifecycle handler flow
  - request validation error paths
- `src/gateway/server.test.ts`
  - end-to-end gateway RPC canvas flow

## Validation Run

```bash
pnpm test:run src/gateway/canvas-store.test.ts src/gateway/handlers/handlers.test.ts src/gateway/server.test.ts
pnpm typecheck
pnpm build
```
