mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-28 13:23:03 +00:00
GUI 原来只用 22 个端点,服务端有 47 个。补齐**只读诊断类**:
agents / network / tracker / config / persona / proxy(+services)。
## 刻意不接 /login 与 /logout
那是 cookie 会话认证流程,而 GUI 走 `X-API-Key` 头(见 `api()`)。
接了不是"对齐",是接错。
## 三处新增
**总览诊断卡片**(renderDiagPanel):Agent 健康、LLM 可达、网络端点数、
文件变更集、数据目录、心跳间隔。全部走 `(x && x.y)` 安全取值 ——
任一端点没取到(老内核无该路由、连接断开)只显示 "-",不抛错。
**人设面板**(renderPersona):实测结构是
`{current_prompt, file_override, initialized}`。我第一版按 map 遍历,
结果只会显示三个字段名 —— 真机验证时才发现。改成展示提示词全文 +
两个状态卡。**只读**,编辑涉及保存/回滚/并发覆盖,与"协议对齐"是两件事。
**反代面板**(renderProxy):base_domain / mode / total / manual +
服务列表(`✓ gateway → 127.0.0.1:9890`)。实测字段是
`{name, host, path, url, target, ok, auth, websocket}`,不是我第一版假设的
`subdomain`。
## 加载策略
只加进 `refreshAll`,**不加** `refreshDataOnly`(后者每 15 秒一轮,
诊断数据不必高频轮询)。7 个新端点实测只 +3ms。
## 判据 protocol-align.test.mjs(10 条,真 Electron)
- 7 个 state 槽都取到真实数据
- 总览出现诊断卡片
- 人设面板**真的显示提示词内容**(不只查元素存在)
- 反代面板**真的列出服务**(查 `→` 出现)
### 判据踩的三个坑
1. **默认假 key 导致 9 项全红** —— webui 对错误凭据返回 200 + 登录页 HTML
(`looks_like_login_page` 能识别),于是所有取数失败。看起来像
「代码坏了」,实际只是认证缺失。改为默认从 `config.db` 读真 key。
2. **判据绕过了应用路径** —— 表达式里直接调 `refreshDiagData()`,
于是把应用里的 `await refreshDiagData()` 注释掉,判据**仍全绿**。
改为走应用自己的 `refreshAll()`。
3. **变异后 GUI 仍加载旧代码** —— `ensure()` 看到端口有页面就复用,
注入变异后没重启 GUI ⇒ 又一次假绿。**变异测试必须先杀掉 GUI 进程。**
变异测试(注释掉调用点)⇒ 9 项变红,坐实判据验的是真路径。
## 门禁
- `npm run test-live`:22/22 通过(12 性能+滚动 + 10 协议对齐)
- `npm test`、`make test-gui`:全通过
- `go test ./...`:43 包 ok、0 FAIL
47 lines
1.2 KiB
JSON
47 lines
1.2 KiB
JSON
{
|
|
"name": "homeagent-gui",
|
|
"version": "1.4.0",
|
|
"author": "JianFeeeee <jianfeeeee@homeagent.local>",
|
|
"homepage": "https://gitcode.com/JianFeeeee/HomeAgent",
|
|
"description": "HomeAgent Desktop GUI - Multi-connection management dashboard",
|
|
"main": "main.js",
|
|
"scripts": {
|
|
"start": "electron . --no-sandbox",
|
|
"dev": "electron . --no-sandbox --dev",
|
|
"test": "node sse-backoff.test.mjs && node sse-backoff-behavior.test.mjs && node retry-guard.test.mjs",
|
|
"test-live": "node chat-perf.test.mjs && node protocol-align.test.mjs"
|
|
},
|
|
"dependencies": {
|
|
"koffi": "^3.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"asar": "^3.2.0",
|
|
"electron": "^33.0.0",
|
|
"electron-builder": "^26.15.3",
|
|
"electron-packager": "^17.1.2",
|
|
"icojs": "^0.23.0",
|
|
"sharp": "^0.35.3"
|
|
},
|
|
"build": {
|
|
"appId": "com.homeagent.gui",
|
|
"productName": "HomeAgent",
|
|
"linux": {
|
|
"target": [
|
|
"deb",
|
|
"rpm",
|
|
"AppImage"
|
|
],
|
|
"category": "Utility",
|
|
"icon": "icon.svg"
|
|
},
|
|
"files": [
|
|
"main.js",
|
|
"preload.js",
|
|
"renderer/**/*",
|
|
"icon.svg",
|
|
"node_modules/**/*",
|
|
"!node_modules/electron-builder/**"
|
|
]
|
|
}
|
|
}
|