diff --git a/.memory/assistant-handoff.md b/.memory/assistant-handoff.md index 2c35ade..7424da9 100644 --- a/.memory/assistant-handoff.md +++ b/.memory/assistant-handoff.md @@ -1,15 +1,15 @@ # 项目接力 -- 生成时间:May 9, 2026 at 15:58 +- 生成时间:May 9, 2026 at 16:05 - 项目:Hermes Glass UI · 个人版 - 路径:/Users/kangwan/Projects/code/20260421-hermes-glass-ui-personal - 状态:active -- 主链接:https://hermes.milejoy.com +- 主链接:https://hermes.kang-kang.com ## 最近助手会话概览 - Claude:cbe18ead-dcde-440a-816f-1429b905e0e2 · 时间未知 -- Codex:未找到匹配当前项目的最近会话 +- Codex:019e0bbe-c0fe-7cf0-99f4-036d5ba511cd · 时间未知 - Cursor:未找到匹配当前项目的最近会话 ## Claude 最近会话 @@ -26,7 +26,23 @@ ## Codex 最近会话 -- 未在本机找到匹配这个项目的 Codex transcript。 +- Session ID:019e0bbe-c0fe-7cf0-99f4-036d5ba511cd +- Transcript:/Users/kangwan/.codex/sessions/2026/05/09/rollout-2026-05-09T15-58-31-019e0bbe-c0fe-7cf0-99f4-036d5ba511cd.jsonl +- 工作目录:/Users/kangwan/Projects/code/20260421-hermes-glass-ui-personal +- 分支:master +- 敏感字段:已对 token / key / password / secret 做脱敏 + +### 最近用户要求 + +- 你现在是在 Codex CLI 里的项目承接会话。 这不是对话立项台;项目目录已经存在,当前目标是接住上下文并等待用户下一步。 项目路径:/Users/kangwan/Projects/code/20260421-hermes-glass-ui-personal 承接步骤: - 先读取 `.memory/assistant-handoff.md` - 再阅读 `.project.json`、`RULES.md`、`AGENTS.md` - 结合当前仓库状态建立上下文 要求: - 不要要求用户重新粘贴 Claude / Codex / Cursor 的总结 - 先理解最近进度、未完成项和下一步候选 - 不要立即修改代码、继续上一个任务或自行执行命令 - 等待用户给出下一条明确指令后再开始动手 - 如果后续需要 Cursor,提醒用户从看板打开 Cursor GUI 到当前项目目录 +- 看板app上 你弄错连接了 应该是https://hermes.kang-kang.com +- 有些卡片里面的内容超了,你能加一个侧边滑动么 每个小卡边可以内部滑动看到被遮挡的部分 + +### Codex 最近回复 + +> 我会按 `ui-ux-pro-max` 的布局/可访问性原则处理这个小修:保留卡片尺寸稳定,只给卡片内容区加内部滚动和可见滚动提示,避免文本继续被裁掉。 + +> 我找到主要裁切点了:不是只有卡片容器 `overflow:hidden`,很多文本本身也被 `nowrap`、`ellipsis`、`line-clamp` 截断了。接下来我会同时处理容器和文本规则,让内容能在小卡片内部纵向滚动,而不是继续省略。 ## Cursor 最近会话 @@ -35,10 +51,13 @@ ## 当前仓库状态 - 当前分支:master -- 未提交变更:1 项 -- 最近提交:auto-save 2026-05-09 11:54 (~1) +- 未提交变更:4 项 +- 最近提交:auto-save 2026-05-09 16:01 (~2) - 变更文件: +- M .memory/assistant-handoff.md - M .memory/worklog.json +- M .project.json +- M RULES.md ## 统一接力要求 diff --git a/.memory/worklog.json b/.memory/worklog.json index d51aaee..f78ad70 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,19 +1,5 @@ { "entries" : [ - { - "files_changed" : 1, - "hash" : "1550e50", - "message" : "auto-save 2026-05-07 11:37 (~1)", - "ts" : "2026-05-07T11:37:34+08:00", - "type" : "commit" - }, - { - "files_changed" : 1, - "hash" : "685ed5e", - "message" : "auto-save 2026-05-07 11:43 (~1)", - "ts" : "2026-05-07T11:43:06+08:00", - "type" : "commit" - }, { "files_changed" : 1, "hash" : "ba3f0fd", @@ -3495,6 +3481,19 @@ "message" : "启动 Codex 接力会话 · 已载入 Claude 最近会话,等待下一条指令 · 分支 master · 2 项未提交变更 · 最近提交:auto-save 2026-05-09 15:55 (~2)", "ts" : "2026-05-09T07:58:25Z", "type" : "assistant-session" + }, + { + "files_changed" : 2, + "hash" : "c0f9802", + "message" : "auto-save 2026-05-09 16:01 (~2)", + "ts" : "2026-05-09T16:01:26+08:00", + "type" : "commit" + }, + { + "files_changed" : 4, + "message" : "启动 Codex 接力会话 · 已载入 Claude / Codex 最近会话,等待下一条指令 · 分支 master · 4 项未提交变更 · 最近提交:auto-save 2026-05-09 16:01 (~2)", + "ts" : "2026-05-09T08:05:50Z", + "type" : "assistant-session" } ] } diff --git a/.project.json b/.project.json index b30f521..6ab34c6 100644 --- a/.project.json +++ b/.project.json @@ -25,11 +25,6 @@ ], "status" : "active", "urls" : [ - { - "label" : "hermes", - "type" : "app", - "url" : "https:\/\/hermes.milejoy.com" - }, { "label" : "hermes", "type" : "app", @@ -49,6 +44,11 @@ "label" : "ai", "type" : "app", "url" : "https:\/\/ai.milejoy.com" + }, + { + "label" : "hermes", + "type" : "app", + "url" : "https:\/\/hermes.milejoy.com" } ], "worklog" : { diff --git a/RULES.md b/RULES.md index ff00948..a0735b3 100644 --- a/RULES.md +++ b/RULES.md @@ -4,13 +4,13 @@ - `待补充` ## 部署事实 -- 平台:待定 +- 平台:Hetzner VPS `76.13.31.179` + Coolify Traefik + Incus LXC `hermes-personal` + Docker `hermes-agent` - 发布状态:已部署 -- 主站 / 前端:https://hermes.milejoy.com -- API / 后端:待定 +- 主站 / 前端:https://hermes.kang-kang.com +- API / 后端:同域 `/api/v1` 转发到 LXC `hermes-personal` 内的 `hermes-agent:8642` - 文档 / 解析:https://styles.kang-kang.com - 管理后台:待定 -- 代码仓:待定 +- 代码仓:https://git.kang-kang.com/kangwan/hermes-glass-ui-personal ## 快捷登录 - 登录地址:https://hermes.kang-kang.com diff --git a/src/styles.css b/src/styles.css index e89befe..73f0011 100644 --- a/src/styles.css +++ b/src/styles.css @@ -97,6 +97,34 @@ html, body { a { color: var(--orange-3); text-decoration: none; } +/* ========== 小卡片内部滚动 ========== */ +:is(.card, .agent-card, .flow-card, .cron-item, .tool-chip, .stat, .top-agent-card, .day-detail, .cluster-col, .settings-group, .studio-stage, .help-card) { + overflow-x: hidden; + overflow-y: auto; + overscroll-behavior: contain; + scrollbar-gutter: stable; + -webkit-overflow-scrolling: touch; + scrollbar-width: thin; + scrollbar-color: rgba(255,105,0,0.45) transparent; +} +:is(.card, .agent-card, .flow-card, .cron-item, .tool-chip, .stat, .top-agent-card, .day-detail, .cluster-col, .settings-group, .studio-stage, .help-card)::-webkit-scrollbar { + width: 8px; +} +:is(.card, .agent-card, .flow-card, .cron-item, .tool-chip, .stat, .top-agent-card, .day-detail, .cluster-col, .settings-group, .studio-stage, .help-card)::-webkit-scrollbar-track { + background: transparent; +} +:is(.card, .agent-card, .flow-card, .cron-item, .tool-chip, .stat, .top-agent-card, .day-detail, .cluster-col, .settings-group, .studio-stage, .help-card)::-webkit-scrollbar-thumb { + background: rgba(255,105,0,0.34); + border: 2px solid transparent; + border-radius: 999px; + background-clip: content-box; +} +:is(.card, .agent-card, .flow-card, .cron-item, .tool-chip, .stat, .top-agent-card, .day-detail, .cluster-col, .settings-group, .studio-stage, .help-card):hover::-webkit-scrollbar-thumb { + background: rgba(255,105,0,0.56); + border: 2px solid transparent; + background-clip: content-box; +} + /* ========== Aurora 背景 ========== */ .bg-aurora { position: fixed; @@ -634,6 +662,7 @@ a { color: var(--orange-3); text-decoration: none; } display: flex; flex-direction: column; gap: 8px; + max-height: min(240px, 42vh); /* 卡片层不再单独磨砂 */ } .flow-card:hover { @@ -658,8 +687,19 @@ a { color: var(--orange-3); text-decoration: none; } flex: 0 0 36px; } .flow-card-meta { flex: 1; min-width: 0; } -.flow-card-name { font-size: 14px; font-weight: 700; color: var(--text); } -.flow-card-desc { font-size: 11px; color: var(--text-dim2); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.flow-card-name { + font-size: 14px; + font-weight: 700; + color: var(--text); + overflow-wrap: anywhere; +} +.flow-card-desc { + font-size: 11px; + color: var(--text-dim2); + margin-top: 2px; + line-height: 1.45; + overflow-wrap: anywhere; +} .flow-card-skills { display: flex; flex-wrap: wrap; @@ -673,6 +713,7 @@ a { color: var(--orange-3); text-decoration: none; } border: 1px solid rgba(255,105,0,0.25); border-radius: 5px; font-weight: 600; + overflow-wrap: anywhere; } .flow-card-actions { display: flex; @@ -1687,6 +1728,7 @@ a { color: var(--orange-3); text-decoration: none; } border: 1px solid var(--line); border-radius: 18px; transition: transform 0.2s, border-color 0.2s; + max-height: min(280px, 42vh); } .card:hover { transform: translateY(-3px); @@ -1695,8 +1737,19 @@ a { color: var(--orange-3); text-decoration: none; } box-shadow: 0 12px 30px rgba(0,0,0,0.25); } .card-icon { font-size: 28px; margin-bottom: 12px; } -.card-title { font-size: 16px; font-weight: 700; margin-bottom: 8px; color: var(--text); } -.card-desc { font-size: 13px; color: var(--text-dim); line-height: 1.6; } +.card-title { + font-size: 16px; + font-weight: 700; + margin-bottom: 8px; + color: var(--text); + overflow-wrap: anywhere; +} +.card-desc { + font-size: 13px; + color: var(--text-dim); + line-height: 1.6; + overflow-wrap: anywhere; +} .glass-btn-sm { margin-top: 14px;