scorpio d6df056687 feat: Part 模型 + 文件版本追踪 + 写手团队工作流 v2
- 数据层:messages 表增加 part_type 字段,新建 file_versions 表支持版本追踪
- 后端:saveWorkspace 版本追踪、saveAgentOutput 源头分离、generateBriefMessage 成员简报
- 后端:applyDocumentEdit 增量编辑、buildWorkflowStep phase-aware 工作流引擎
- API:文件版本查询/回退接口
- 前端:part_type 驱动渲染,产物面板版本历史
- 新增写手团队(主编/搜索员/策划编辑/合规审查员)配置
- store 模块、scheduler 模块、web-search skill

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:44:34 +08:00

347 lines
8.2 KiB
Markdown

# End-to-End Test Guide
## Testing the Complete Integration
This guide walks through testing the entire Web Search Skill integration with LobsterAI.
## Prerequisites
1. LobsterAI built and ready to run
2. Google Chrome installed
3. Internet connection available
## Test 1: Service Auto-Start
**Objective:** Verify that the Bridge Server starts automatically with LobsterAI.
**Steps:**
1. Start LobsterAI in development mode:
```bash
npm run electron:dev
```
2. Check the console output for:
```
[SkillServices] Starting skill services...
[SkillServices] Starting Web Search Bridge Server...
[SkillServices] Web Search Bridge Server started (PID: XXXXX)
```
3. Verify the server is running:
```bash
curl http://127.0.0.1:8923/api/health
```
Expected response:
```json
{
"success": true,
"data": {
"status": "healthy",
"uptime": 123.45,
"connections": 0
}
}
```
**Expected Result:** ✅ Bridge Server starts automatically within 3 seconds of LobsterAI launch.
## Test 2: CLI Search from Terminal
**Objective:** Test the search functionality directly from command line.
**Steps:**
1. Open a terminal while LobsterAI is running
2. Execute a search:
```bash
bash SKILLs/web-search/scripts/search.sh "React 19 features" 5
```
3. Verify output contains:
- Search query
- Result count
- Duration in ms
- Markdown-formatted results with titles, URLs, and snippets
**Expected Result:** ✅ Search completes in < 3 seconds, returns 5 results.
## Test 3: Cowork Session Integration
**Objective:** Test Claude's ability to use the skill in a Cowork session.
**Steps:**
1. Start LobsterAI
2. Create a new Cowork session
3. Send the following message:
```
Search for the latest information about Next.js 14 new features.
```
4. Observe:
- Claude should recognize the need for real-time information
- Claude should execute: `bash SKILLs/web-search/scripts/search.sh "Next.js 14 new features" 5`
- Search results should appear in the tool execution output
- Claude should synthesize information from the results
- Claude should provide a summary with source citations
**Expected Result:** ✅ Claude uses web-search skill automatically, provides current information with sources.
## Test 4: Multiple Consecutive Searches
**Objective:** Verify connection caching and performance optimization.
**Steps:**
1. In a Cowork session, ask:
```
1. Search for "TypeScript 5.0 features"
2. Search for "React Server Components guide"
3. Search for "Vite 5.0 changes"
```
2. Observe:
- First search: ~2-3 seconds (includes browser launch)
- Second search: ~1 second (reuses connection)
- Third search: ~1 second (reuses connection)
**Expected Result:** ✅ Subsequent searches are faster due to connection caching.
## Test 5: Service Cleanup on Exit
**Objective:** Verify graceful shutdown of services when LobsterAI quits.
**Steps:**
1. With LobsterAI running and searches completed, quit the application
2. Check console output for:
```
[SkillServices] Stopping skill services...
[SkillServices] Stopping Web Search Bridge Server...
[SkillServices] Web Search Bridge Server stopped
```
3. Verify server is stopped:
```bash
curl http://127.0.0.1:8923/api/health
```
Expected: Connection refused
4. Check no orphaned processes:
```bash
ps aux | grep "web-search"
```
**Expected Result:** ✅ All services stop cleanly, no orphaned processes.
## Test 6: Error Handling - Server Not Running
**Objective:** Test behavior when Bridge Server is manually stopped.
**Steps:**
1. Start LobsterAI
2. Manually stop the Bridge Server:
```bash
bash SKILLs/web-search/scripts/stop-server.sh
```
3. In Cowork session, ask Claude to search
4. Observe error message:
```
✗ Bridge Server is not running
Please start the server first:
bash SKILLs/web-search/scripts/start-server.sh
```
5. Manually restart:
```bash
bash SKILLs/web-search/scripts/start-server.sh
```
6. Retry search
**Expected Result:** ✅ Clear error message, easy recovery path.
## Test 7: Browser Visibility
**Objective:** Verify all browser operations are visible and transparent.
**Steps:**
1. Start LobsterAI (ensure headless is false in config)
2. Execute a search via CLI or Cowork
3. Observe:
- Chrome window appears
- Navigates to Bing search page
- Search query visible in URL bar
- Results page loads visibly
**Expected Result:** ✅ All browser operations visible to user, transparent behavior.
## Test 8: Cross-Platform Compatibility
**Objective:** Verify skill works across different platforms.
**Platform-Specific Steps:**
### macOS
```bash
# Verify Chrome path detection
bash SKILLs/web-search/scripts/search.sh "test" 1
# Should find Chrome at: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
```
### Linux
```bash
# Verify Chrome/Chromium detection
bash SKILLs/web-search/scripts/search.sh "test" 1
# Should find at: /usr/bin/google-chrome or /usr/bin/chromium
```
### Windows
```bash
# Verify Chrome detection
bash SKILLs/web-search/scripts/search.sh "test" 1
# Should find at: C:\Program Files\Google\Chrome\Application\chrome.exe
```
**Expected Result:** ✅ Chrome detection works on all platforms.
## Test 9: Concurrent Searches
**Objective:** Test multiple searches happening in parallel.
**Steps:**
1. Open two terminal windows
2. Execute searches simultaneously:
- Terminal 1: `bash scripts/search.sh "React" 3`
- Terminal 2: `bash scripts/search.sh "Vue" 3`
3. Both should complete successfully
**Expected Result:** ✅ Multiple searches can run concurrently.
## Test 10: Result Quality
**Objective:** Verify search results are relevant and well-formatted.
**Steps:**
1. Search for a specific topic:
```bash
bash SKILLs/web-search/scripts/search.sh "Playwright documentation" 5
```
2. Verify results include:
- Official Playwright documentation (playwright.dev)
- Recent tutorials and guides
- Relevant Stack Overflow or GitHub discussions
3. Check Markdown formatting:
- Headers for each result
- Clickable URLs
- Clean snippets
**Expected Result:** ✅ High-quality, relevant results with proper formatting.
## Performance Benchmarks
| Operation | Target | Acceptable |
|-----------|--------|------------|
| Server startup | < 2s | < 3s |
| Browser launch | < 3s | < 5s |
| First search | < 3s | < 5s |
| Subsequent search | < 1s | < 2s |
| Server shutdown | < 2s | < 3s |
## Common Issues and Solutions
### Issue 1: Server Won't Start
**Symptoms:** No PID file created, health check fails
**Debug:**
```bash
cat SKILLs/web-search/.server.log
npm run build --prefix SKILLs/web-search
```
### Issue 2: Chrome Not Found
**Symptoms:** "Chrome not found" error
**Solution:**
- macOS: Install from https://www.google.com/chrome/
- Linux: `sudo apt install chromium-browser`
- Windows: Install Chrome
### Issue 3: Port Already in Use
**Symptoms:** "Address already in use" error
**Solution:**
```bash
lsof -i :8923
kill -9 <PID>
bash SKILLs/web-search/scripts/start-server.sh
```
### Issue 4: Stale Connection
**Symptoms:** "Connection not found" error
**Solution:**
```bash
rm SKILLs/web-search/.connection
```
## Success Criteria
All tests pass when:
- ✅ Server auto-starts with LobsterAI
- ✅ Searches complete in < 3 seconds
- Claude uses skill automatically when appropriate
- Connection caching improves performance
- Services cleanup gracefully on exit
- Error messages are clear and actionable
- Browser operations are visible
- Works on macOS, Linux, Windows
- Concurrent searches supported
- Results are relevant and well-formatted
## Final Checklist
Before considering the integration complete:
- [ ] All 10 tests pass
- [ ] Performance benchmarks met
- [ ] No console errors or warnings
- [ ] Documentation is complete
- [ ] Code is compiled without errors
- [ ] Skills config includes web-search
- [ ] SKILL.md is comprehensive
- [ ] README.md is accurate
- [ ] Examples work as documented
- [ ] Service manager integrates cleanly
## Next Steps
After all tests pass:
1. Create commit with all changes
2. Test in production build
3. Document any platform-specific quirks
4. Gather user feedback
5. Consider Phase 2 enhancements (Google search, caching, etc.)