229 Commits

Author SHA1 Message Date
ekko 9e6d99d3c2 unify desktop card layout (#2100) 2026-07-16 21:50:10 +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 e683cd3673 Add reasoning effort slider (#2097)
* Add reasoning effort slider

* Link reasoning slider change fragment

* Fix ChatInput Naive UI test mocks
2026-07-16 19:43:38 +08:00
ekko 5be85483aa Preserve draft workspace on model switch (#2095)
* Preserve draft workspace on model switch

* Document draft workspace model switching
2026-07-16 10:25:16 +08:00
ekko 9e4164c113 fix group chat input background (#2092) 2026-07-16 09:14:04 +08:00
ekko db9e63ccd8 fix cross-platform voice capture and captions (#2086)
* fix cross-platform voice capture captions

* link voice capture changelog
2026-07-15 16:11:09 +08:00
ekko 77af609da3 add cross-platform PCM voice capture (#2084) 2026-07-15 15:44:32 +08:00
ekko 0dabbda394 Add 0.6.30 frontend changelog (#2081) 2026-07-15 10:51:21 +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 3636f9603b inject Ekko provider and model context (#2071) 2026-07-14 17:12:42 +08:00
ekko 640304375a fix: replay chat fade on session switch (#2069)
* fix: replay chat fade on session switch

* docs: link chat fade change fragment
2026-07-14 10:17:02 +08:00
ekko 937d0d8dd5 perf: optimize first-screen loading (#2068) 2026-07-14 09:21:01 +08:00
ekko 3fe9535e57 fix realtime voice recovery and approval overlay (#2067) 2026-07-14 08:46:21 +08:00
IvanShang e70c7bb186 fix: preserve extensions for Markdown downloads (#2058) 2026-07-14 08:45:58 +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 160412cdef fix: add mobile browser speech fallback (#2064) 2026-07-13 21:57:18 +08:00
ekko 42c6b2c255 feat: add realtime voice mode for single chat (#2063) 2026-07-13 21:28:50 +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
ekko 70465210f6 add session model switch loading state (#2056) 2026-07-13 09:08:43 +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
ekko 4b9cd7113f fix(mcu): synchronize remote disconnects and bound TLS discovery (#2049)
* fix(mcu): clear stale remote login

* fix(mcu): bound remote discovery TLS
2026-07-12 16:51:06 +08:00
ekko 5c0854778e release Web UI 0.6.29 changelog (#2047) 2026-07-12 12:23:48 +08:00
ekko 934b116709 boost ESP32-C3 v2 playback volume (#2045) 2026-07-12 09:33:24 +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
IvanShang 657e1e1013 fix(client): handle malformed session export filenames (#2026)
* fix(client): handle malformed session export filenames

* docs: add session export chain fragment
2026-07-11 10:02:08 +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 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 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
Zhicheng Han 90b7a3c461 Persist group chat workspace diff runs (#1981) 2026-07-09 07:55:10 +08:00
ekko 554ce703b3 update 0.6.27 version manifest (#1988) 2026-07-08 09:55:57 +08:00
ekko 54743d9d00 release 0.6.27 changelog (#1987) 2026-07-08 09:47:45 +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 f1315ba326 [codex] refine default workspace favorite UI (#1985)
* feat: add default workspace feature

- Add useDefaultWorkspace composable for managing default workspaces
- Support multiple default workspaces with chip-based UI
- Add star icon to pin/unpin current workspace as default
- Show default workspace chips with '/' separator
- Implement dropdown menu for overflow workspaces
- Highlight active workspace chip with theme-consistent style
- Add tooltip for full path display in FolderPicker
- Add i18n translations for workspace-related UI elements

Features:
- Store default workspaces globally in localStorage
- Track recent workspace usage for smart selection
- Auto-select most recently used default workspace
- Visual feedback for selected workspace state
- Responsive layout with dynamic visible chip count

* refine default workspace favorite UI

* document default workspace favorite change

---------

Co-authored-by: ramonouyang <ouyangyuanbin@gmail.com>
2026-07-08 08:49:09 +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 524ee52bfd fix claude code model api mode prompt (#1963) 2026-07-06 12:11:30 +08:00
ekko 2f018b39ae fix chat input frame height setting (#1962) 2026-07-06 11:56:51 +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 3006c11530 fix ekko context usage updates (#1957) 2026-07-06 09:36:36 +08:00
牧濑红莉栖(BOT) 0bfa9d2ed4 fix(coding-agent): 持久化会话 API 模式 (#1944)
* fix(coding-agent): persist API mode per session

* docs(chat-chain): document coding agent API mode persistence

---------

Co-authored-by: x1051445024 <你的GitHub注册邮箱>
2026-07-06 08:17:49 +08:00