pnpm install
pnpm build# 1.1 构建 + 校验
pnpm build && anna-app validate --strict
# 预期:✓ validate passed
# 1.2 JSON-RPC 手动测试
bash scripts/test-rpc.sh
# 预期:21/21 全部通过
# 1.3 Executa sampling mock 测试
anna-app executa dev \
--dir executas/tool-dev-mini-notes \
--mock-sampling fixtures/sampling-mock.jsonl \
--invoke summarize \
--args '{"notes":[{"content":"明天跟客户 follow up"},{"content":"修复登录 bug"},{"content":"Workshop 内容想法"}]}'
# 预期:返回 { "success": true, "data": { "summary": "根据你记录的笔记..." } }
# 日志中可见:Sending sampling/createMessage → Sampling completepnpm dev
# 打开 http://localhost:5180/- 首次加载应显示 "还没有笔记" 空状态
- 打开浏览器 DevTools → Network/Console
- 验收证据:Console 中应能看到
anna.storage.get被调用的网络请求
- 在输入框输入 "测试笔记一",点击保存(或按 Enter)
- 输入框应清空
- 笔记列表应显示 "1. 测试笔记一"
- 验收证据:DevTools 中确认
anna.storage.set被调用,value 包含新增笔记
- 依次添加 "明天跟客户 follow up"、"修复登录 bug"、"Workshop 内容想法"
- 列表应显示 4 条笔记(含之前的),序号递增
- 验收证据:每次保存都触发
anna.storage.set
- 点击某条笔记右侧的 ✕ 按钮
- 该笔记应从列表中消失,序号重新排列
- 验收证据:DevTools 确认
anna.storage.set被调用,value 不含已删除笔记
- 点击 "✨ Summarize 全部笔记" 按钮
- 应显示错误提示,内容类似:
[-32603] harness started with --no-llm- 或
Sampling failed: ... (code -32603)
- 验收证据:DevTools 确认
anna.tools.invoke被调用,tool_id 为tool-dev-mini-notes - 这是预期行为:
--no-llm禁用了 LLM,sampling 请求被拒绝
- 清空输入框,保存按钮应为禁用状态(灰色)
- 输入纯空格,保存按钮应仍为禁用状态
打开浏览器 DevTools,在 Console 中执行以下检查:
// 方法 1:观察 Network 面板
// anna.storage.get/set 调用会通过 postMessage 发送到 Host
// 在 Application > Storage 或 Network 中可追踪
// 方法 2:在代码中临时添加 console.log
// 在 ui/src/anna/storage.ts 的 loadNotes/saveNotes 中添加:
// console.log('[storage] get/set called', key, value);验收标准:
- 创建笔记时:
anna.storage.set({ key: "notes", value: [...] })被调用 - 加载笔记时:
anna.storage.get({ key: "notes" })被调用 - 删除笔记时:
anna.storage.set({ key: "notes", value: [...] })被调用(数组长度减少) - 不是 localStorage、IndexedDB 或 fetch
# 4.1 确认 executa 发起 sampling
anna-app executa dev \
--dir executas/tool-dev-mini-notes \
--mock-sampling fixtures/sampling-mock.jsonl \
--invoke summarize \
--args '{"notes":[{"content":"test"}]}' 2>&1 | grep "Sending sampling"
# 预期输出包含:Sending sampling/createMessage
# 4.2 确认 fixture 返回 summary
# 同上命令,输出应包含真实的 summary 文本(非规则拼接)| # | 验证项 | 方法 | 预期 |
|---|---|---|---|
| 1 | pnpm build |
终端 | 无错误 |
| 2 | validate --strict |
终端 | ✓ validate passed |
| 3 | RPC 测试 | bash scripts/test-rpc.sh |
21/21 |
| 4 | Mock sampling | executa dev --mock-sampling |
summary 返回 |
| 5 | Sampling 证据 | stderr 日志 | "Sending sampling/createMessage" |
| 6 | UI 加载 | 浏览器 | 空状态显示 |
| 7 | 创建笔记 | 浏览器操作 | storage.set 调用 |
| 8 | 删除笔记 | 浏览器操作 | storage.set 调用 |
| 9 | Summarize 错误 | 浏览器操作 | [-32603] 错误显示 |
| 10 | tools.invoke 调用 | DevTools | tool_id="tool-dev-mini-notes" |