49 Commits

Author SHA1 Message Date
ekko 66cc9a6f1e fix: generate token on start, include token in URL, reset api_server config
- Pre-generate auth token before server start and pass via AUTH_TOKEN env var
- Append token to startup URL for auto-login
- Reset api_server config values to defaults on startup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0.2.3
2026-04-15 08:28:36 +08:00
ekko 1f45254dd0 feat: add token auth, login page, skill toggle, and route restructure
- Add token-based authentication with auto-generated token stored in server/data/.token
- Add login page with URL token auto-fill support
- Add route guards requiring auth for all pages except login
- Restructure routes: / for login, /chat for conversations
- Add skill enable/disable toggle via config.yaml skills.disabled
- Unify logo to /logo.png across sidebar, login, messages, and empty state
- Hide sidebar on login page, prevent flash with router.isReady()
- Fix session export JSON parse error when CLI returns non-JSON output
- Display token in CLI on server start

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 21:48:53 +08:00
ekko be4624b8b4 Merge branch 'dev' into feat/official-api 2026-04-14 20:19:30 +08:00
ekko c0f1453c62 fix: graceful shutdown for nodemon restart to prevent EADDRINUSE
- Add unified shutdown handler for SIGUSR2/SIGINT/SIGTERM
- Add uncaughtException/unhandledRejection handlers
- Use --signal SIGTERM in nodemon config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 20:17:12 +08:00
ekko 456a7effd0 docs: add official API integration TODO checklist
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 19:01:42 +08:00
ekko 2487e147ab fix: prevent Windows terminal popups with windowsHide option
Add windowsHide: true to all spawn/execFile calls in bin and server code
to prevent new console windows from appearing on Windows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:17:15 +08:00
ekko 9dd5fca9f9 feat: add usage statistics page, CLI improvements, and UI enhancements
- Add Usage Stats page with token breakdown, model distribution, and 30-day trend
- Pass through cache/cost token fields in BFF (cache_read/write_tokens, reasoning_tokens, actual_cost_usd)
- Add CLI commands: -v/--version, -h/--help, update/upgrade with auto-restart
- Auto-open browser on startup, auto-kill port conflicts (cross-platform)
- Validate all api_server config fields on startup (enabled, host, port, key, cors_origins)
- Add streaming thinking video animation with tool calls panel
- Add context token usage display (used / total) in chat header
- Sidebar: white logo area with shadow, dance video beside logo (canvas seamless loop)
- Fix sidebar nav scroll (app-main overflow-y: auto)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 14:48:58 +08:00
ekko f8fc64ff5c fix: remove set -e from setup script to prevent early exit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 10:26:35 +08:00
ekko 8f8cf629bb feat: WSL support, js-yaml migration, and stability improvements
- PID/log files moved to ~/.hermes-web-ui/ for WSL compatibility
- Replace all regex YAML parsing with js-yaml in filesystem.ts
- Auto-detect WSL and use hermes gateway run for background startup
- Stop command: SIGTERM with SIGKILL fallback, clean stale PIDs
- Setup script: auto-install Node.js and hermes-web-ui

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.2.0
2026-04-14 10:22:29 +08:00
ekko 60056e771a feat: auto-install hermes-web-ui via npm in setup script
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 09:04:54 +08:00
ekko 91e5f637dc feat: add environment setup script for auto-detecting and installing Node.js
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 09:02:49 +08:00
ekko e19b532e47 chore: bump version to 0.2.0-beta.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.2.0-beta.1
2026-04-13 20:53:05 +08:00
ekko 0ff04758b6 feat: add gateway auto-start on boot and real health detection
- Auto-detect gateway connectivity on server startup, start gateway if not running
- Fix /health endpoint to actually check gateway reachability instead of just CLI version
- Fix MiniMax CN base_url from /anthropic to /v1
- Frontend connection status now reflects real gateway state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 20:08:32 +08:00
ekko 5143a264c5 Merge pull request #3 from cl1107/main
feat(chat): 修复输入法回车发送消息的问题
2026-04-13 18:29:46 +08:00
cuiliang 600ec054cb feat(chat): 修复输入法回车发送消息的问题
- 添加 isComposing 状态跟踪输入法组合事件
- 实现 handleCompositionStart 和 handleCompositionEnd 方法
- 新增 isImeEnter 函数判断是否为输入法回车
- 修改 handleKeydown 方法,在输入法状态下阻止回车发送
- 在 textarea 上添加 compositionstart 和 compositionend 事件监听
2026-04-13 17:48:47 +08:00
ekko f22a497115 fix: add missing axios dependency and bump version to 0.1.9
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.9
2026-04-13 16:59:17 +08:00
ekko 94329adc4f fix: remove duplicate sourceLabel declaration in ChatPanel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:30:08 +08:00
ekko f828c73a23 Merge branch 'dev' 2026-04-13 15:28:21 +08:00
ekko 4793b919a6 add 2026-04-13 15:27:53 +08:00
ekko 80c9f21be4 Merge branch 'dev' 2026-04-13 15:26:18 +08:00
ekko 32060a530d docs: update demo GIF and link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:26:10 +08:00
ekko f0d2ed7ddd Merge branch 'dev' 2026-04-13 15:22:19 +08:00
ekko cf41d790f4 docs: format README tables and spacing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:22:12 +08:00
ekko 691631084f Merge branch 'dev'
# Conflicts:
#	README.md
#	src/assets/output.gif
2026-04-13 15:19:48 +08:00
ekko 11e0b65934 chore: update demo GIF
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.7
2026-04-13 15:18:56 +08:00
ekko e89a240f1d feat: add i18n, platform channels page, and WeChat QR login
- Add vue-i18n with auto-detect browser language and manual toggle (EN/中文)
- Move platform channels to separate page with credential management
- Support Telegram, Discord, Slack, WhatsApp, Matrix, Feishu, Weixin, WeCom
- Add WeChat QR code login (opens in browser, polls status, auto-saves)
- Write platform credentials to ~/.hermes/.env matching hermes gateway setup
- Auto restart gateway after platform config changes
- Add settings store with per-section save for all config categories
- Persist session group collapse state across navigation
- Fix pre-existing TypeScript build errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:15:14 +08:00
ekko 9e069a20a1 feat: add model management module with provider CRUD
- New /models page with provider list (built-in + custom)
- Add provider via preset selection or custom URL with auto-fetch models
- Delete provider removes from auth.json credential_pool + config.yaml custom_providers
- Auto-switch model on add, fallback switch on delete
- Sync sidebar ModelSelector on all provider changes
- Unified provider presets in shared/providers.ts (frontend + backend)
- Backend uses hardcoded catalog first, live probe as fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 12:15:16 +08:00
ekko 9a3d5ef8d2 docs: fix Hermes Agent repo link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:35:47 +08:00
ekko 3a17d8ac51 docs: fix Hermes Agent repo link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:35:40 +08:00
ekko 7737fe1f66 docs: add demo GIF to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:34:39 +08:00
ekko 50b9185ece docs: add demo GIF to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:34:29 +08:00
ekko 48a1c5bf91 chore: add demo GIF
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:31:17 +08:00
ekko 7c2e718a4c chore: add demo GIF
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:31:14 +08:00
ekko 30590d2f0a fix: resolve TDZ error when switching back to chat page
Move sourceLabel and getSourceLabel before groupedSessions computed
to fix "Cannot access before initialization" in production build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.6
2026-04-13 01:13:11 +08:00
ekko e1d4219fb1 fix: resolve TDZ error when switching back to chat page
Move sourceLabel and getSourceLabel before groupedSessions computed
to fix "Cannot access before initialization" in production build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 01:11:07 +08:00
ekko c421158d9c chore: bump version to 0.1.5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.5
2026-04-13 00:55:05 +08:00
ekko 081c60a15f feat: add session grouping by source with collapsible accordion
- Group sessions by source in sidebar (api_server first, cron last)
- Accordion behavior: only one group expanded at a time
- Auto-select first session when expanding a group
- Backfill session titles from first user message in listSessions
- Remove chat header model badge
- Fix toolPreview type error for non-string values
- New chats default to api_server source

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 00:52:34 +08:00
ekko 8663704133 Merge pull request #1 from cl1107/main
feat(sessions): 添加会话重命名功能和工具调用详情展示
2026-04-13 00:08:42 +08:00
cuiliang 17a667c947 feat(sessions): 添加会话重命名功能和工具调用详情展示
- 实现了后端 API 接口 /api/sessions/:id/rename 用于重命名会话
- 添加了 Hermes CLI renameSession 方法来处理会话重命名逻辑
- 在前端添加了会话右键菜单,支持复制会话ID和重命名操作
- 新增重命名模态框组件供用户输入新标题
- 增强了消息项组件,支持展开查看工具调用的参数和结果详情
- 改进了工具消息的UI展示,包括运行状态指示器和错误标记
- 更新了会话列表显示源标识(如 Telegram、API 等)
- 优化了工具调用数据的映射逻辑,正确关联参数和执行结果
2026-04-12 23:59:18 +08:00
ekko 5887462f7d feat: add model selector, skills/memory pages, and config management
- Add model selector in sidebar that discovers models from auth.json credential pool
- Add per-session model display (badge in chat header and session list)
- Add skills browser page and memory editor page
- Add BFF routes for skills, memory, and config model management
- Model switching updates config.yaml provider field to bypass env auto-detection
- Refactor Settings page, simplify ChatInput with file upload
- Add attachment upload support via BFF /upload endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.4
2026-04-12 23:23:50 +08:00
ekko ee9f56dfbd feat: add Koa2 BFF server, CLI management, sessions CLI integration, and logs page
- Add Koa2 BFF layer for API proxy, file upload, session management
- Auto-check and enable api_server in ~/.hermes/config.yaml on startup
- Integrate sessions with Hermes CLI (list, get, delete)
- Add Logs page with level filtering, log file selection, and search
- Add CLI commands: start/stop/restart/status for daemon management
- Unify package.json for frontend and server dependencies
- Default port changed to 8648

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 21:33:04 +08:00
ekko a2f8f6aec5 feat: add attachment upload UI and local file upload endpoint
- Add attachment button, file picker, and preview area to ChatInput
- Render image/file attachments in user message bubbles (MessageItem)
- Add Attachment type and attachments field to Message interface
- Add POST /__upload endpoint to both Vite dev server and production server
  for saving files to temp directory and returning local file paths
- Translate README to English

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 18:54:46 +08:00
ekko 07e80cc210 chore: bump version to 0.1.2, add favicon
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:29:24 +08:00
ekko a4f3093201 chore: add repository, homepage, license to package.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:22:43 +08:00
ekko fe8a06591b fix: read request body before forwarding in API proxy
Node.js fetch requires duplex option when streaming request body.
Read body chunks first, then forward as Buffer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:19:52 +08:00
ekko 7ea54efb01 refactor: replace Vite runtime with lightweight Node.js server
Use native http module to serve built static files and proxy API
requests. No Vite dependency at runtime — only needed for building.
This fixes SFC compilation errors on global install.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:13:36 +08:00
ekko c58767cc7c fix: remove deprecated compress option for Vite 8 compat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:09:46 +08:00
ekko c4df531cef fix: use Vite API directly for global CLI
Spawn-based approach fails on global install because node_modules
is hoisted. Use programmatic Vite API instead. Move vite, plugin-vue,
and sass to dependencies so they're available at runtime.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 16:08:58 +08:00
ekko cd58797f4c init: hermes-web-ui v0.1.0
Hermes Agent Web 管理面板,支持对话交互和定时任务管理。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 15:59:14 +08:00