From 0b4d811b2f789bfd040eb194d0609ed2cbf3d7f7 Mon Sep 17 00:00:00 2001 From: kang Date: Mon, 11 May 2026 16:03:46 +0800 Subject: [PATCH] auto-save 2026-05-11 16:03 (~5) --- .memory/worklog.json | 14 +++++++------- RULES.md | 2 +- src/app.js | 29 +++++++++++++++++++++-------- src/index.html | 10 +++++----- src/sw.js | 6 +++--- 5 files changed, 37 insertions(+), 24 deletions(-) diff --git a/.memory/worklog.json b/.memory/worklog.json index 640f819..e19bacb 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,12 +1,5 @@ { "entries": [ - { - "files_changed": 1, - "hash": "2d39ee4", - "message": "auto-save 2026-05-10 07:39 (~1)", - "ts": "2026-05-10T07:39:49+08:00", - "type": "commit" - }, { "files_changed": 1, "hash": "ee2e220", @@ -3260,6 +3253,13 @@ "type": "session-heartbeat", "message": "Codex 会话活跃 · 最近命令:codex · 分支 master · 4 项未提交变更 · 最近提交:auto-save 2026-05-11 15:52 (~5)", "files_changed": 4 + }, + { + "ts": "2026-05-11T15:58:12+08:00", + "type": "commit", + "message": "auto-save 2026-05-11 15:58 (~4)", + "hash": "8f80417", + "files_changed": 4 } ] } diff --git a/RULES.md b/RULES.md index a60b4d1..9422906 100644 --- a/RULES.md +++ b/RULES.md @@ -20,7 +20,7 @@ - 爱马仕前端「仪表盘」活动热力图已重做为带摘要、月份标尺、紧凑格子和细分色阶的活动卡片 - 爱马仕前端「设置 → 连接」可自助维护 API 地址 / API Key 并测试连接;「对话 → 存周报」和「设置 → 周报记录」会在本地保存任务描述、上下文片段和最终周报 - 爱马仕前端「设置 → AI 模型接入」和「设置 → MCP 工具接入」可分别维护 LXC 内 `/opt/hermes-agent/config.yaml` 的 `model` 与 `mcp_servers` 块,保存后重启 Docker `hermes-agent` -- 当前前端静态壳缓存版本:`hermes-ui-v29` +- 当前前端静态壳缓存版本:`hermes-ui-v30` - 文档 / 解析:https://styles.kang-kang.com - 管理后台:待定 - 代码仓:https://git.kang-kang.com/kangwan/hermes-glass-ui-personal diff --git a/src/app.js b/src/app.js index 71da269..ae6d131 100644 --- a/src/app.js +++ b/src/app.js @@ -144,16 +144,28 @@ function ensureModelChoice(modelValue, labelValue = "") { } } -function syncModelPick(modelValue) { +function updateModelDisplay(modelValue, providerValue = "") { + const model = (modelValue || state.model || DEFAULT_MODEL_ID).trim(); + const provider = (providerValue || "").trim(); + const pick = document.getElementById("modelPick"); + const option = pick ? Array.from(pick.options).find(item => item.value === model) : null; + const label = option?.textContent || model; + const stat = document.getElementById("statModel"); + const statSub = document.getElementById("statModelSub"); + const aboutModel = document.getElementById("aboutModelValue"); + if (stat) stat.textContent = label; + if (statSub) statSub.textContent = provider ? "Provider: " + provider : "Provider 以设置为准"; + if (aboutModel) aboutModel.textContent = provider ? model + " · " + provider : model; +} + +function syncModelPick(modelValue, providerValue = "") { const model = (modelValue || state.model || "").trim(); const pick = document.getElementById("modelPick"); if (!pick || !model) return; ensureModelChoice(model); - let option = Array.from(pick.options).find(item => item.value === model); pick.value = model; state.model = model; - const stat = document.getElementById("statModel"); - if (stat) stat.textContent = option.textContent || model; + updateModelDisplay(model, providerValue); } // ---------- 会话持久化 ---------- @@ -657,7 +669,8 @@ async function refreshHermesConfig(force = false) { }, mcp_servers_yaml: config.mcp_servers_yaml || "", }; - if (model.default) syncModelPick(model.default); + if (model.default) syncModelPick(model.default, model.provider || ""); + else updateModelDisplay(state.model, model.provider || ""); _hermesConfigLoaded = true; const suffix = config.lxc ? " · " + config.lxc : ""; setHermesModelStatus("已读取模型配置" + suffix); @@ -721,7 +734,7 @@ async function saveModelConfig() { restart: true, }); const savedModel = saved.model || {}; - if (savedModel.default) syncModelPick(savedModel.default); + if (savedModel.default) syncModelPick(savedModel.default, savedModel.provider || model.provider || ""); _hermesConfigSnapshot = { model: { default: savedModel.default || model.default, @@ -770,7 +783,7 @@ async function saveMcpConfig() { restart: true, }); const savedModel = saved.model || model; - if (savedModel.default) syncModelPick(savedModel.default); + if (savedModel.default) syncModelPick(savedModel.default, savedModel.provider || model.provider || ""); document.getElementById("mcpServersYaml").value = saved.mcp_servers_yaml || ""; _hermesConfigSnapshot = { model: { @@ -1041,7 +1054,7 @@ function renderChat(streaming = false) { PARIS
${greet},今天想聊点什么?
-
由 Gemini 3 Pro 驱动 · 你的私人 AI 助手
+
由当前 AI 模型驱动 · 你的私人 AI 助手
🍽 今晚吃什么 💡 解释一个概念 diff --git a/src/index.html b/src/index.html index d8ce6dd..2867f38 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,7 @@ 爱马仕 · AI - + @@ -952,8 +952,8 @@ git push # Gitea kangwan/hermes-glass-ui-personal
当前模型
-
Gemini 3 Pro
-
Google AI Studio
+
google/gemini-3.1-pro-preview
+
Provider 以设置为准
@@ -1385,7 +1385,7 @@ git push # Gitea kangwan/hermes-glass-ui-personal
模型
-
Gemini 3 Pro · Google AI Studio
+
AI 模型接入配置为准
代理
@@ -1408,6 +1408,6 @@ git push # Gitea kangwan/hermes-glass-ui-personal
- + diff --git a/src/sw.js b/src/sw.js index 7d4890a..fd04144 100644 --- a/src/sw.js +++ b/src/sw.js @@ -1,11 +1,11 @@ // 爱马仕 Hermes · 轻量 Service Worker // 静态壳走 network-first(拿不到再回退缓存),API 直通 -const CACHE = "hermes-ui-v29"; +const CACHE = "hermes-ui-v30"; const ASSETS = [ "./", "./index.html", - "./styles.css?v=20260511-settings-v29", - "./app.js?v=20260511-settings-v29", + "./styles.css?v=20260511-settings-v30", + "./app.js?v=20260511-settings-v30", "./manifest.webmanifest", "./icon.svg", ];