-
Notifications
You must be signed in to change notification settings - Fork 176
Open
Description
问题描述
hubSearch.js 调用 getHubNodeSecret() 时,读取的是 a2aProtocol.js
中的内存缓存 _cachedHubNodeSecret。如果进程启动时缓存里存的是旧 secret,
后续所有 /a2a/fetch 请求都会返回 HTTP 403——即使 ~/.evomap/node_secret
文件里已经是最新有效的 secret。
复现步骤
- 执行 secret 轮换(如运行
rotate-secret.js) - 重启 evolver 进程
- 运行
node index.js run - 观察日志:
[SearchFirst] No hub match (reason: hub_http_403)
根本原因
a2aProtocol.js 在进程启动时将 secret 写入 _cachedHubNodeSecret。
若该缓存值已过期,hubSearch 在整个进程生命周期内都会用错误的 secret
发起 hub 请求。
建议修复方案
在 hubSearch.js 中绕过内存缓存,每次发请求前直接从文件读取 secret:
function _readSecretFromFile() {
const secretPath = path.join(os.homedir(), '.evomap', 'node_secret');
try {
return fs.readFileSync(secretPath, 'utf8').trim();
} catch {
return null;
}
}环境信息
- 平台:win32 x64
- Node:v24.9.0
- Evolver 版本:1.29.8
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels