feat: complete Phase 1-3 architecture optimization

Phase 1 - Security:
- Add AES-GCM encryption for localStorage fallback
- Enforce WSS protocol for non-localhost WebSocket connections
- Add URL sanitization to prevent XSS in markdown links

Phase 2 - Domain Reorganization:
- Create Intelligence Domain with Valtio store and caching
- Add unified intelligence-client for Rust backend integration
- Migrate from legacy agent-memory, heartbeat, reflection modules

Phase 3 - Core Optimization:
- Add virtual scrolling for ChatArea with react-window
- Implement LRU cache with TTL for intelligence operations
- Add message virtualization utilities

Additional:
- Add OpenFang compatibility test suite
- Update E2E test fixtures
- Add audit logging infrastructure
- Update project documentation and plans

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
iven
2026-03-21 22:11:50 +08:00
parent 815c56326b
commit ce562e8bfc
36 changed files with 5241 additions and 201 deletions

View File

@@ -120,8 +120,9 @@ const NAV_ITEMS: Record<string, { text: string; key: string }> = {
: { text: '技能', key: 'skills' },
: { text: '团队', key: 'team' },
: { text: '协作', key: 'swarm' },
Hands: { text: 'Hands', key: 'automation' },
Hands: { text: '自动化', key: 'automation' },
: { text: '工作流', key: 'automation' },
: { text: '自动化', key: 'automation' },
};
/**
@@ -707,13 +708,16 @@ export const userActions = {
* 打开设置页面
*/
async openSettings(page: Page): Promise<void> {
// 底部用户栏中的设置按钮
const settingsBtn = page.locator('aside button').filter({
hasText: /设置|settings|⚙/i,
}).or(
page.locator('.p-3.border-t button')
// 底部用户栏中的设置按钮 - 使用 aria-label 或 title 属性定位
const settingsBtn = page.locator('aside button[aria-label="打开设置"]').or(
page.locator('aside button[title="设置"]')
).or(
page.locator('aside .p-3.border-t button')
).or(
page.getByRole('button', { name: /打开设置|设置|settings/i })
);
await settingsBtn.first().waitFor({ state: 'visible', timeout: 10000 });
await settingsBtn.first().click();
await page.waitForTimeout(500);
},