373 Commits

Author SHA1 Message Date
ekko 0cc31bb09b Prepare 0.6.31 release and unify desktop Runtime storage (#2134)
* prepare 0.6.31 release changelog

* add desktop runtime storage migration

* unify desktop runtime and web ui storage

* fix bundled web ui production dependencies

* fix packaged architecture validation

* keep desktop responsive during runtime migration

* make packaged web ui verification self contained

* reuse validated desktop runtime storage
2026-07-19 11:38:10 +08:00
王.W d165840e07 fix(chat): attach workspace diffs to assistant turns (#2127)
* fix(chat): attach workspace diffs to assistant turns

* fix(chat): preserve workspace diff attribution on reload

---------

Co-authored-by: Lux <wangw9475@agent.qq.com>
Co-authored-by: ekko <fqsy1416@gmail.com>
2026-07-18 18:29:29 +08:00
ekko 08caa227fd Support background delegate task delivery (#2126)
* support background delegate task delivery

* document background delegate task PR

* settle stopped background tasks

* configure background delegation at agent creation
2026-07-18 16:20:42 +08:00
Zhicheng Han 065329554e fix(mcp): skip transient launcher autoinject (#2121) 2026-07-18 09:36:37 +08:00
牧濑红莉栖(BOT) ff8d78f613 feat(providers): add revisioned provider editor (#2114)
Allow admins to edit custom and API-key providers without changing
stable IDs or echoing stored credentials. Adds profile-scoped labels,
preferred models, context lengths, draft testing, and redacted audit.

Co-authored-by: x1051445024 <x1051445024@users.noreply.github.com>
2026-07-17 20:55:13 +08:00
ekko 621663157b Add generated file previews and group workspaces (#2113) 2026-07-17 15:38:51 +08:00
牧濑红莉栖(BOT) 062a5cb5b3 feat(channels): add credential clearing action (#2109)
Co-authored-by: x1051445024 <x1051445024@users.noreply.github.com>
2026-07-17 11:41:46 +08:00
ekko 30d404508d fix history session loading and pagination (#2107) 2026-07-17 10:54:06 +08:00
王.W 10ecdb2bea feat(workflow): add structured routing and execution playback (#2099)
* feat(workflow): add structured JSON conditions

* feat(workflow): visualize execution paths

* fix(workflow): fail closed on ambiguous run evidence

* feat(workflow): improve connection authoring UX

---------

Co-authored-by: Lux <wangw9475@agent.qq.com>
2026-07-17 09:56:30 +08:00
ekko 15be6f37a4 fix cron delivery target selection (#2106) 2026-07-17 09:42:48 +08:00
ekko d246455ed7 feat: add message references to single and group chat (#2098)
* Add message reference replies

* Link chat chain fragment to PR 2098
2026-07-16 20:19:44 +08:00
ekko 68379cb2dd Hide Windows chat console windows and prepare 0.6.30 (#2080) 2026-07-15 10:23:44 +08:00
ekko 3decc0e9c3 Support MoA presets in chat model selection (#2078) 2026-07-15 09:38:45 +08:00
mo 5eb1b94138 feat(workflow): add orchestration v2 (#2073)
* chore: initialize upstream-based workflow orchestration v2 draft

* feat(workflow): validate declarative edge orchestration

* feat(workflow): evaluate edge conditions safely

* feat(workflow): support declarative condition operators

* feat(workflow): evaluate edge route decisions

* feat(workflow): skip unmatched success branches

* feat(workflow): route failed node outcomes

* feat(workflow): validate node join mode

* feat(workflow): support all and any joins

* feat(workflow): schedule nodes on completion

* feat(workflow): store append-only edge evidence

* feat(workflow): persist edge decisions fail closed

* feat(workflow): expose edge evidence in run history

* feat(workflow): validate bounded feedback edges

* feat(workflow): compile single-entry natural loops

* feat(workflow): validate laminar nested loops

* feat(workflow): fail closed during graph preflight

* feat(workflow): preflight reruns and freeze loops

* feat(workflow): identify loop execution instances

* feat(workflow): execute bounded top-level loops

* feat(workflow): audit conditional loop exits

* feat(workflow): record loop iteration limits

* feat(workflow): identify edge iteration evidence

* feat(workflow): audit loop forward edges

* feat(workflow): persist loop epoch evidence

* feat(workflow): expose loop epochs in run history

* feat(workflow): record failed loop epochs

* feat(workflow): audit canceled loop epochs

* feat(workflow): audit loop agent timeouts

* feat(workflow): gate loop executions on approval

* feat(workflow): enforce run execution budget

* feat(workflow): enforce loop run deadline

* feat(workflow): bound loop approval waits

* feat(workflow): enforce DAG run deadline

* feat(workflow): enforce rerun deadline

* feat(workflow): guard rerun execution budget

* feat(workflow): run one downstream node after loop exit

* feat(workflow): dispatch persisted loop exit targets

* feat(workflow): honor conditional routing inside loop bodies

* feat(workflow): continue through post-loop DAGs

* feat(workflow): route post-loop failures

* feat(workflow): add secure definition portability

* feat(workflow): expose portability client API

* feat(workflow): add import and export controls

* feat(workflow): execute disjoint and nested loops

* feat(workflow): edit edge orchestration from canvas

* feat(workflow): show execution evidence in run history

* feat(workflow): edit node join policy

* feat(workflow): create connected nodes atomically

* test(workflow): cover orchestration canvas in browser

* refactor(workflow): unify laminar loop runtime

* fix(workflow): bind approvals to executions

* test(workflow): verify canvas interactions in browser

* feat(workflow): enforce execution identity policies

* feat(workflow): harden lifecycle recovery

* refactor(workflow): share fresh and rerun schedulers

* feat(workflow): harden orchestration evidence and portability

* fix(workflow): close final acceptance and canvas gaps

* test(workflow): add disposable live acceptance

* fix(workflow): migrate legacy execution evidence

* refactor(workflow): use icons for import and export

* refactor(workflow): use ctrl-z for canvas undo

* refactor(workflow): restore profile-default agent context

* fix(workflow): strip legacy policy from edge node copies

* feat(workflow): guide ordinary users through routing

* refactor(workflow): move field help into tooltips

* feat(workflow): validate typed condition values

* feat(chat): align maximum reasoning effort

* test(workflow): isolate manager SQLite runtime

Keep the WorkflowManager suite on a disposable SQLite directory so coverage workers cannot race the shared test-runtime database. Production and development database paths are unchanged.

* fix(workflow): keep Hermes API mode profile-owned

* fix(workflow): make imports portable across environments

Strip source runtime bindings from exports and legacy imports while keeping capability and skill checks at execution time. Address runtime subscription, feedback routing, approval cancellation, durable Session evidence, SQLite index migration, and compact evidence rendering.

* fix(bridge): reject unsupported reasoning effort

Keep Hermes API mode profile-owned while restoring explicit failure when the runtime cannot parse or apply a requested reasoning effort.

* test(workflow): use writable Session fixture workspace

* fix(workflow): align import export icon semantics

* feat(workflow): make execution details user friendly

* fix workflow replay and presentation regressions

---------

Co-authored-by: Lux <wangw9475@agent.qq.com>
Co-authored-by: ekko <fqsy1416@gmail.com>
2026-07-15 08:52:17 +08:00
ekko 937d0d8dd5 perf: optimize first-screen loading (#2068) 2026-07-14 09:21:01 +08:00
ekko 84d6d0e601 fix mobile voice transcription and Codex duplicate messages (#2066)
* fix Codex duplicate assistant messages

* fix mobile realtime voice transcription

* document mobile realtime voice behavior
2026-07-13 23:03:09 +08:00
ekko ea64f92cc5 fix: disable production Ekko memory database (#2060) 2026-07-13 16:07:24 +08:00
ekko f0399f4c11 feat: add durable Ekko Agent memory (#2057)
* add Ekko Agent chained memory

* harden Ekko agent provider integrations

* add model-driven Ekko memory review

* fix: harden Ekko memory summaries
2026-07-13 12:44:39 +08:00
Abner defa013298 fix: preserve custom provider state in Studio bridge (#2054)
* fix: preserve custom provider state in Studio bridge

* docs: record Studio provider alias fix commit

* docs: link Studio provider fix PR

---------

Co-authored-by: abner <nimengbo@qq.com>
2026-07-13 08:55:02 +08:00
Zhicheng Han f1d1f90b46 fix(models): 同步 Provider 静态目录与缓存优先级 (#2051)
* feat(models): sync static provider catalogs

* fix(models): prefer live catalogs over static manifests
2026-07-13 08:05:40 +08:00
ekko 521bd426eb fix MiMo voice clone audio upload (#2046) 2026-07-12 09:49:16 +08:00
ekko 8e8c6a3f4b add ESP32-C3 v2 firmware (#2044) 2026-07-12 08:47:35 +08:00
ekko b11098e815 feat: unify model usage analytics (#2039)
* record unified session usage

* record Ekko model call usage

* record Hermes usage and add usage analytics
2026-07-11 13:35:03 +08:00
ekko 904ee7f9fe fix Bridge tool result context limits (#2036) 2026-07-11 11:10:07 +08:00
ekko c4082ee661 fix: guide Docker users through image upgrades (#2033)
* fix(docker): guard update button in Docker with structured guidance

Docker 环境下 UI 升级按钮不可用的问题修复:

后端:
- handleUpdate 中添加 Docker 环境检测,返回结构化的 Docker 升级指引
  (docker compose pull && docker compose up -d --force-recreate)
- health 接口添加 is_docker 字段,告知前端当前运行环境
- Docker 环境下自动禁用 npm registry 版本检查,消除每 30 分钟的外网请求
  (性能优化:减少不必要的网络 I/O 和重复的版本检查)

前端:
- AppSidebar 中在 Docker 模式下隐藏原有升级按钮,改为显示 Docker 专属
  升级按钮,点击后弹出包含 docker compose 命令的指引弹窗
- VersionManagementModal 的 isDesktopShell 条件保持不变
- 添加 9 种语言的 i18n 翻译键 (dockerUpdateTitle / dockerUpdateGuide
  / dockerUpdateNote)

Co-Authored-By: AtomCode (deepseek-v4-flash) <noreply@atomgit.com>

* fix docker update guidance tests

* reuse update button for Docker guidance

* test Docker update routing

---------

Co-authored-by: suantea <suantea@users.noreply.github.com>
Co-authored-by: AtomCode (deepseek-v4-flash) <noreply@atomgit.com>
2026-07-11 10:24:39 +08:00
ekko c99ccc5005 [codex] collapse workspace diffs and restore chat input background (#2032)
* restore dark chat input background

* collapse workspace diff details

* link workspace diff change record
2026-07-11 09:55:15 +08:00
ekko 3d401dd907 [codex] compress MCU uplink audio with IMA-ADPCM (#2024)
* add MCU uplink ADPCM compression

* link MCU ADPCM change record
2026-07-10 20:10:21 +08:00
ekko ca2b62e5eb sort preview version tags (#2015) 2026-07-10 11:26:02 +08:00
ekko 1dbc0aac2a Release Web UI 0.6.28 and improve MCU recovery (#2013)
* chore: release webui 0.6.28

* feat: improve mcu wifi reprovisioning

* feat: update mcu firmware recovery and tts segmentation
2026-07-10 10:43:52 +08:00
mo d81b0644cc fix: allow selecting models for scheduled jobs (#2009)
* fix: allow selecting models for scheduled jobs

* fix: avoid unsupported cron model flags

* fix: persist scheduled job model selection

* fix: resolve default provider/model in job list response

* fix: resolve custom provider name in job defaults

* docs: temp verification screenshot

* chore: remove temp verification screenshot

---------

Co-authored-by: 王.W <kingboyandgirl@users.noreply.github.com>
Co-authored-by: 王.W <wangw9475@agent.qq.com>
2026-07-10 08:55:37 +08:00
mo ac184a0e27 fix: keep new files in workspace diffs (#2008)
Co-authored-by: 王.W <kingboyandgirl@users.noreply.github.com>
2026-07-10 08:50:32 +08:00
mo 6b1967e4a6 fix: hide SQLite sidecars from workspace diffs (#2003)
* fix: hide sqlite sidecars from workspace diffs

* docs: note sqlite sidecar diff filtering

* fix: filter sqlite sidecars in git workspace diffs

---------

Co-authored-by: 王.W <kingboyandgirl@users.noreply.github.com>
Co-authored-by: ekko <fqsy1416@gmail.com>
2026-07-09 18:28:12 +08:00
Kagura bde8f2b0eb fix: write session ended_at/end_reason when bridge run terminates (#2004)
* fix: write session ended_at/end_reason when bridge run terminates (#1998)

When an agent run completes (normally or with error), the session's
ended_at and end_reason fields were never written to the database.
This caused the UI to permanently show 'thinking' for completed sessions.

Add updateSession calls at three run termination points:
- handleBridgeRun catch block (early error, empty queue)
- resumeBridgeRun catch block (stream error, empty queue)
- applyBridgeChunkAsync normal completion (no queued runs)

Each call is wrapped in try-catch to prevent masking the original
error or producing unhandled rejections.

Closes #1998

* fix: reopen bridge sessions when runs restart

---------

Co-authored-by: ekko <fqsy1416@gmail.com>
2026-07-09 12:41:28 +08:00
ekko f367515eb9 fix workflow approval rerun states (#2002) 2026-07-09 11:09:25 +08:00
ekko b7d282f59b add workflow node approval gates (#2001) 2026-07-09 10:40:34 +08:00
ekko cc21e0ba6a [codex] Fix session workspace file drawer (#1999)
* Fix session workspace file drawer

* Fix session workspace test mocks
2026-07-09 09:57:16 +08:00
mo 524cc0e306 fix: route workflow coding agent aborts correctly (#1995)
Co-authored-by: 王.W <wangw9475@agent.qq.com>
2026-07-09 08:44:57 +08:00
mo 9d047915f5 fix: inherit external MCP in scoped coding agents (#1983)
* fix: inherit external MCP in scoped coding agents

* fix: normalize inherited scoped MCP configs

* fix: collapse repeated codex mcp tables

---------

Co-authored-by: 王.W <kingboyandgirl@users.noreply.github.com>
2026-07-09 08:39:36 +08:00
Zhicheng Han 90b7a3c461 Persist group chat workspace diff runs (#1981) 2026-07-09 07:55:10 +08:00
ekko f5e831d0d0 Add MCU device management (#1994) 2026-07-08 16:40:11 +08:00
ekko a575266a84 [codex] require MCU API token for global agent events (#1991)
* require MCU API token for global agent events

* fix MCU relay auth tests
2026-07-08 12:37:47 +08:00
ekko a4173df72b skip empty workspace diff changes (#1986) 2026-07-08 09:33:15 +08:00
Zhicheng Han 904130de32 [codex] 拆分 Group Chat 房间工作区绑定 (#1980)
* Add group chat room workspace binding

* fix group chat workspace modal width

---------

Co-authored-by: ekko <fqsy1416@gmail.com>
2026-07-08 09:00:51 +08:00
ekko e42275640a [codex] Stabilize MCU voice relay and firmware (#1979)
* fix mcu voice stream recording

* tune mcu voice capture buffering

* decouple mcu voice capture upload

* stabilize remote mcu audio relay

* Overlap MCU speech preparation with playback

* Update ESP32-C3 release firmware

* Label remote MCU login as free test

* Buffer MCU TTS playback startup

* Reduce MCU voice stream chunk size

* Restore small MCU voice stream chunks

* Use balanced MCU voice stream chunks

* Restore strict MCU speech playback order

* Relax MCU voice stream queue backpressure

* Stabilize MCU voice stream recording

* stabilize mcu voice streaming

* use binary mcu voice stream chunks

* stabilize mcu tts playback

* pipeline mcu tts synthesis

* pipeline tts generation before playback

* fix mcu relay test and firmware status
2026-07-08 08:07:55 +08:00
ekko 8118ec3129 Add remote MCU relay over Socket.IO (#1976) 2026-07-07 12:33:13 +08:00
ekko 8ec624327a fix windows desktop runtime trampolines (#1972) 2026-07-06 19:59:31 +08:00
ekko 2c94b0fd2e Add journey Hermes version guidance (#1961) 2026-07-06 11:15:41 +08:00
ekko 09e6806fe8 [codex] Stabilize Codex context usage (#1960)
* Stabilize Codex context usage

* Update coding agent failure tests
2026-07-06 10:50:36 +08:00
ekko a7ed55e150 [codex] release 0.6.26 changelog (#1959)
* release 0.6.26 changelog

* stabilize MCU audio enqueue test
2026-07-06 10:43:04 +08:00
ekko 950d7d8e39 compact available models MCP response (#1958) 2026-07-06 09:48:06 +08:00