Commit Graph

578 Commits

Author SHA1 Message Date
ekko 0835732aba remove PR desktop smoke test (#1221) 2026-06-01 21:46:38 +08:00
ekko c27a12f56c [codex] fix Windows desktop browser packaging (#1219)
* fix windows hermes home fallback

* bundle Hermes desktop browser runtime

* bundle desktop channel dependencies

* avoid matrix e2ee build dependency

* fix windows npm shim execution

* fix bundled agent-browser chrome packaging

* fix agent-browser chrome fallback copy

* fix windows agent-browser home lookup

* copy agent-browser chrome after install

* fix browser output decoding on windows

---------

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-06-01 21:35:26 +08:00
ekko 90929d0bfb add hermes studio cli shim (#1209) 2026-06-01 16:15:50 +08:00
ekko ed905e419d set package version to 0.6.7 (#1208) 2026-06-01 14:38:36 +08:00
ekko 6972717193 hide desktop python subprocesses on login (#1206) 2026-06-01 13:58:00 +08:00
ekko c027df0c6f [codex] fix Windows bridge worker popups (#1203)
* fix windows bridge worker popups

* scope worker hiding to desktop
2026-06-01 13:31:26 +08:00
ekko d2a7c54e9e [codex] fix Windows tray icon size (#1202)
* fix windows tray icon sizing

* use client logo for windows tray
2026-06-01 13:31:06 +08:00
ekko b96bda4834 [codex] fix desktop tray icon and update checks (#1201)
* fix desktop tray icon and update errors

* fix brotlicffi error compatibility

* fix windows installer app shutdown

* fix desktop updater artifact names
2026-06-01 12:49:03 +08:00
ekko 022e18dc8f fix windows desktop terminal popups (#1199) 2026-06-01 12:20:10 +08:00
ekko aa7c1c4fbb fix windows bridge logs and mobile headers (#1198) 2026-06-01 11:58:54 +08:00
VTxyer 3f7242aee8 fix(client): fix mobile layout width overflow on virtual keyboard toggle (#1197) 2026-06-01 11:44:23 +08:00
ekko 15d358f602 fix windows desktop bridge startup (#1196) 2026-06-01 11:30:04 +08:00
ekko 4516502705 add desktop tray and updater support (#1193) 2026-06-01 11:03:18 +08:00
Qiang Han 1fbbfdfad6 fix(context): prefer provider context lengths (#1184) 2026-06-01 09:31:58 +08:00
ekko 8dbf4c7439 Add website download mirrors (#1189) 2026-05-31 20:47:38 +08:00
Qiang Han 48c35c20e8 fix(chat): preserve unsent input draft (#1173)
* fix(chat): preserve unsent input draft

* fix(chat): store drafts by session id
2026-05-31 20:06:18 +08:00
GoldenFishX 7f9427bde5 fix(file-provider): SSHFileProvider 支持自定义端口 (#1181)
之前 SSHFileProvider 的 sshArgs() 方法硬编码使用默认端口 22,
完全忽略 TERMINAL_SSH_PORT 环境变量配置的自定义 SSH 端口。

修复内容:
- TerminalConfig 接口新增 ssh_port 字段
- SSHFileProvider 构造函数新增 port 参数
- sshArgs() 在 this.port 存在时追加 -p <port>
- getSSHEnvVars() 读取 TERMINAL_SSH_PORT 并解析为整数
- createFileProvider() 工厂函数传入 ssh.port

影响范围:所有通过 SSH 后端的文件操作(读/写/列出/删除/重命名/创建目录/复制/上传)
2026-05-31 19:57:14 +08:00
ekko e1027ec5d7 Fix nonblocking preview actions (#1188) 2026-05-31 19:47:04 +08:00
ekko d2b69baf7f Align profiles header height (#1182) 2026-05-31 17:25:26 +08:00
ekko 98d877a335 Sequence website deploy after desktop release (#1176) 2026-05-31 10:54:06 +08:00
ekko a7be7c0175 bump package versions to 0.6.7 (#1175) 2026-05-31 10:32:53 +08:00
ekko 9d1da73434 update 0.6.7 changelog and provider url handling (#1174) 2026-05-31 10:24:27 +08:00
ekko e5c5f98fbd fix message list session transitions (#1172) 2026-05-31 09:53:58 +08:00
sir1st 96bdf8d1af fix Windows desktop startup readiness (#1167)
* fix desktop startup readiness on windows

* add manual desktop build workflow

* hide Windows desktop server process window

* hide Windows Python bridge worker windows

* use no-window Python for Windows desktop CLI calls

---------

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-31 09:17:49 +08:00
ekko c998a53566 [codex] add MCP tools visibility management (#1170)
* feat(mcp): add tools visibility management

## Features
- Tools visibility modal with 3 modes: All, Include, Exclude
- 'Manage Tools' button on McpServerCard (enabled only when connected)
- 'Fetch Tools List' button to refresh available tools (raw mode)
- Responsive design for mobile (480px), tablet (768px), desktop (1280px)
- i18n translations for 9 languages (zh/en/zh-TW/ja/ko/de/es/fr/pt)

## Technical Details
- Add raw parameter to fetchMcpTools API for unfiltered tools
- Pass raw parameter through controller → bridgeMcpAction → client
- Backend _mcp_tools_list supports raw_mode to skip include/exclude filter
- 28 MCP unit tests pass (23 controller + 5 bridge action)

## Files Changed
- McpManagerView.vue: Tools visibility modal with mode selector
- McpServerCard.vue: Add manage tools button
- mcp.ts (client): Add raw parameter to fetchMcpTools
- mcp.ts (controller): Pass raw parameter to bridge
- mcp.ts (services): Pass raw parameter to client.mcpTools
- client.ts: Add raw parameter to mcpTools
- hermes_bridge.py: Support raw_mode in _mcp_tools_list
- 9 locale files: Add 14 translation keys each
- mcp-controller.test.ts: Add 3 new test cases
- bridge-mcp-action.test.ts: New test file for parameter passing

* Delete projects directory

chore: remove accidentally committed projects/ directory

* fix MCP tools visibility edge cases

* remove MCP docs screenshots

---------

Co-authored-by: Crafter-feng <succeed_happu@163.com>
Co-authored-by: Crafter-feng <37255449+Crafter-feng@users.noreply.github.com>
2026-05-31 09:00:38 +08:00
ekko 9df79c33be fix website deploy without rsync (#1166) 2026-05-30 21:40:55 +08:00
ekko e45b3a881e add website downloads and deploy workflow (#1165) 2026-05-30 21:35:38 +08:00
ekko 4c3f025b8f skip production data dir creation (#1164) 2026-05-30 20:29:04 +08:00
ekko fc35c74eb3 fix node npm detection (#1163) 2026-05-30 20:19:01 +08:00
sir1st dcbf601e35 fix linux desktop packaging paths (#1162)
Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 20:14:24 +08:00
sir1st 46bd7d0420 relax desktop release artifact harness check (#1161)
Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 19:49:08 +08:00
sir1st 877bb16bc8 Skip macOS signing when certificates are absent (#1160)
Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 18:59:49 +08:00
sir1st 6da5cd605a Add repository harness for coding agents (#1157)
Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 18:57:22 +08:00
sir1st ce04b10eee Fix Windows bundled Hermes CLI launcher (#1159)
* Fix Windows bundled Hermes CLI launcher

* Update kanban service tests for Hermes process wrapper

---------

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 18:57:04 +08:00
ekko 046c8d4f8f Fix desktop release artifact uploads (#1158)
* chore: bump version to 0.6.6

* fix desktop release artifact metadata globs
2026-05-30 17:35:41 +08:00
sir1st 7f944a4905 Fix desktop release artifact globs (#1155)
Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 16:35:50 +08:00
sir1st 12e0b5ebed fix(server): raise body parser limit so avatar upload doesn't 413 (#1149)
Profile avatars are sent to /profiles/:name/avatar as base64 image data
URLs in a JSON body. The handler allows up to 1MB of raw image data,
which is ~1.37MB once base64-encoded — larger than @koa/bodyparser's
default 1mb jsonLimit, so uploads were rejected with HTTP 413 before
reaching the handler.

Set jsonLimit/textLimit to 4mb, leaving the handler's own 1MB raw-size
check as the authoritative limit (now returning a clear 400 instead of
a confusing 413).

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 16:32:46 +08:00
sir1st eea1d1decd fix(auth): use path.dirname for credential dir on Windows (#1148)
Provider auth controllers derived the credential directory with
`authPath.substring(0, authPath.lastIndexOf('/'))`. On Windows paths use
backslashes, so `lastIndexOf('/')` returns -1 and the slice yields an
empty string, making `mkdirSync('')` throw
`ENOENT: no such file or directory, mkdir ''` during OAuth login.

Replace the manual slicing with the cross-platform `path.dirname()` in
codex-auth (auth.json + codex CLI token paths), xai-auth, and nous-auth.

Fixes Codex/xAI/Nous login on Windows.

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
2026-05-30 16:31:00 +08:00
ekko f7991572af fix desktop preload build and rename app (#1150)
* fix desktop preload fetch typing

* rename desktop app to Hermes Studio

* rename desktop package to Hermes Studio

* update Hermes Studio desktop icons

* configure desktop signing and app id

* force desktop api calls to local server

* isolate desktop agent bridge ports

* bundle MCP support in desktop Python

* change desktop default port to 8748

* restore webui production port copy
2026-05-30 15:59:52 +08:00
sir1st cbae8e8c3f Add desktop (Electron) packaging and release distribution (#1147)
* Add desktop packaging workflow

* Add desktop package homepage

* Fix desktop default credential prompt

* Suppress default credential prompt on desktop

* Publish desktop artifacts on release; reduce CI to PR smoke test

Add desktop-release.yml triggered on release publish (mirroring
docker-publish.yml) to build all platforms and upload .dmg/.exe/
.AppImage/.deb to the GitHub Release.

Trim build.yml desktop job to a PR-only Linux x64 smoke test, since
release artifacts are now produced by desktop-release.yml. This drops
per-push and macOS/Windows packaging from regular CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Fix desktop Hermes data home on Windows

---------

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 14:20:04 +08:00
paulocavallari cb410e5007 fix(bridge): preserve text/tool-call ordering to stop split narration (#1145)
When the model interleaves narration text with tool calls within one
turn ("text → tool → more text"), the assistant text was rendered split
across the tool boundary — a word could be cut in half, e.g. the part
before the tool call ending mid-word and the remainder appearing after
the tool card.

Root cause: the agent bridge (`hermes_bridge.py`) accumulated streamed
text in `RunRecord.deltas` and tool/lifecycle events in
`RunRecord.events` as two parallel lists with no relative ordering. On
poll, the aggregated text (`"".join(deltas)`) and the events were
delivered separately, and the Node consumer (`handle-bridge-run.ts`)
processed all `chunk.events` (including `tool.started`) before the
aggregated `chunk.delta`. The real interleaving of text and tool calls
was therefore lost, splitting the text around the tool boundary.

Fix:
- Bridge: `stream_callback` now also appends each text chunk as an
  ordered `stream.delta` event into the same `events` list as
  tool.started/tool.completed, preserving true interleaving. `deltas`
  is still kept for the aggregated `output`/resume snapshot.
- Node: process `stream.delta` events inline within the events loop (in
  true order), and skip the aggregated `chunk.delta` when ordered
  `stream.delta` events were present for that chunk (avoids duplicate
  text). Text-delta handling was extracted into `processBridgeTextDelta`
  and reused by both paths.

Verified end-to-end: narration that calls a tool mid-sentence now
streams and persists as coherent text in the exact order produced, with
no word split across the tool boundary.

Co-authored-by: Paulo Cavallari <paulocavallari@users.noreply.github.com>
2026-05-30 11:49:50 +08:00
ekko 818e7f751f fix chat scroll jitter (#1146) 2026-05-30 11:46:32 +08:00
ekko b015e70b9d [codex] fix MCP management lifecycle (#1144)
* feat(mcp): add MCP server management UI

- Server CRUD: add/edit/remove with YAML/JSON Monaco editor
- raw_config passthrough: zero field loss on edit/toggle
- tool_details embedding: single-request card data (1+N → 1)
- Auto-retry exponential backoff (2s→32s, max 5 retries)
- Route safety guards (hasRoute) for dynamic sidebar
- i18n: 9 languages (de/en/es/fr/ja/ko/pt/zh/zh-TW)
- 19 unit tests + 8 UX browser tests
- 35 files, +2933 lines

* fix mcp management lifecycle

---------

Co-authored-by: Crafter-feng <succeed_happu@163.com>
2026-05-30 11:06:08 +08:00
ekko 675ddb8282 fix profile runtime status loading (#1142) 2026-05-30 09:17:37 +08:00
ekko a1f06b8a42 fix virtual list empty state centering (#1141) 2026-05-30 08:53:06 +08:00
ekko e988ce62f2 remove setup script docs (#1140) 2026-05-30 08:49:15 +08:00
ekko 9643a083d6 fix bridge mcp tool discovery (#1139) 2026-05-30 08:37:02 +08:00
Zhicheng Han 50159060c8 Revert "add merge permission test log (#1131)" (#1132)
This reverts commit 91869ea907.
2026-05-29 16:47:40 +02:00
ekko 91869ea907 add merge permission test log (#1131)
Test console merge.
2026-05-29 16:44:43 +02:00
ekko b5b7d55958 [codex] update coding agents i18n and changelog (#1129)
* update coding agents i18n and changelog

* move virtual scroller to dev dependencies
2026-05-29 21:07:00 +08:00