162 Commits

Author SHA1 Message Date
ekko 689237f0fd fix job deliver target options (#1026) 2026-05-25 20:04:50 +08:00
ekko badb17cf8e [codex] integrate goal command workflow (#1025)
* feat: integrate goal command workflow

* fix: keep goal done visible

* fix: add goal done slash command

* fix: promote queued message on run start
2026-05-25 19:26:23 +08:00
ekko 0eab6a1125 Fix plan command support in web bridge (#1018)
* fix: support plan command in web bridge

* fix: preserve queued bridge messages

* fix: avoid duplicate queued plan messages

* fix: preserve plan command semantics

---------

Co-authored-by: Codex <codex@openai.com>
2026-05-25 15:48:17 +08:00
ekko 6e2e502a75 fix: clean stale pid on stop (#1015) 2026-05-25 13:31:12 +08:00
ekko d03d5e6ac5 remove auth disabled support (#1013) 2026-05-25 12:49:01 +08:00
ekko 56c6cf3e2d fix profile-aware session history actions (#1011) 2026-05-25 12:32:42 +08:00
ekko bbb8b1d536 [codex] fix bridge tool marker flush persistence (#1002)
* fix: don't drop pending tool-call-marker prefix on tool.started/run.done

The `filterBridgeToolCallMarkupDelta` filter holds back any text that
ends in a partial prefix of `[Calling tool:` (i.e. `[`, `[C`, `[Ca`,
..., `[Calling tool`) so it can decide whether the buffered chars are
the start of a tool-call markup block to be hidden, or just regular
text to be released by the next delta.

The bug: that "release on next delta" assumption breaks at TWO points:

1. **On `tool.started`**: the next chunk for this assistant message is
   the tool call itself, NOT a follow-up text delta. Buffered chars
   sit there forever and nothing flushes them — they vanish silently
   from the user-visible stream.

2. **On run completion**: the code did
   `state.bridgePendingToolCallMarkup = undefined` directly, dropping
   any pending chars without forwarding them.

Both cases produce the user-visible symptom of "abrupt cuts in text
right before/after tool calls (terminal, read_file, write_file...)" —
1 to 13 characters disappear at exactly the boundary where the model
was emitting natural prose that happened to end with `[`.

The fix introduces `flushPendingToolCallMarkup(state)` and calls it:

- In the `tool.started` branch BEFORE recording the tool call, so the
  buffered chars are appended to the open assistant message and emitted
  as a normal `message.delta` to the client.
- At run-done BEFORE clearing the buffer, same flush path.

This is a pure recovery patch — no change to the marker detection
logic itself. If the buffer turns out to actually be a real
`[Calling tool: ...]` marker that just hasn't completed yet, that
case is still caught by the existing `markerIdx >= 0` branch in the
filter on the next delta. The only behavioral change is that the
"orphan" cases (text that ends with `[` but never becomes a marker)
are no longer dropped.

* fix bridge marker flush persistence

---------

Co-authored-by: Paulo Cavallari <paulocavallari@users.noreply.github.com>
2026-05-25 11:09:16 +08:00
ekko 9e35d81f48 fix mobile chat run reconnect (#993) 2026-05-25 11:08:54 +08:00
ekko 61b41512d4 [codex] increase login lock threshold (#984)
* increase login ip lock threshold

* show login lock recovery commands
2026-05-24 22:36:21 +08:00
ekko 4176923bac support external skill sources (#981) 2026-05-24 19:47:52 +08:00
ekko 6763721545 fix session links profile filtering (#979) 2026-05-24 19:30:32 +08:00
Maxim Kirilyuk acdf18793c feat: make navigation use native links (#973) 2026-05-24 19:13:42 +08:00
ekko e743c81ad3 [codex] add clarify support with response path tests (#972)
* feat: 新增 clarify(澄清/确认)交互支持

* test clarify response bridge path

---------

Co-authored-by: GoldenFish123321 <golden_fish@foxmail.com>
2026-05-24 18:09:39 +08:00
ekko a7f0a92fe6 fix session profile listing and cli sqlite warning (#971) 2026-05-24 17:54:17 +08:00
ekko f61a1d9454 [codex] fix auth startup and profile model defaults (#966)
* docs release 0.6.0 changelog

* fix auth startup and profile model defaults
2026-05-24 14:00:31 +08:00
ekko 634a622934 [codex] fix media skill profile auth and run events (#965)
* fix media skill profile auth and run events

* test bridge run profile context
2026-05-24 12:52:14 +08:00
ekko df41d6b051 [codex] Fix profile-aware session deep links (#962)
* feat: add session deep links for chats

* feat: add deep links for history and group chat

* Fix profile-aware session deep links

---------

Co-authored-by: Maxim Kirilyuk <werserk@inbox.ru>
2026-05-24 10:55:55 +08:00
Maxim Kirilyuk 070de2499e feat(chat): render fenced latex math blocks 2026-05-24 10:19:08 +08:00
Maxim Kirilyuk 981e2a1ad4 [verified] feat: render latex in chat markdown 2026-05-24 10:19:08 +08:00
ekko dca8fc6d8a Fix profile store mocks in usage tests 2026-05-24 10:11:03 +08:00
ekko f8a1b2f6ae Add default credential reset safeguards 2026-05-24 10:11:03 +08:00
ekko 9708a6a521 Scope files jobs and plugins to request profile 2026-05-24 10:11:03 +08:00
ekko 289a958684 Scope skills and memory to request profile 2026-05-24 10:11:03 +08:00
ekko 4db3940e65 Scope skill usage to request profile 2026-05-24 10:11:03 +08:00
ekko f372d0a905 Scope kanban and usage profile reads 2026-05-24 10:11:03 +08:00
ekko be2089e423 Scope channel settings to request profile 2026-05-24 10:11:03 +08:00
ekko 4f8bda9836 Test provider API key profile scoping 2026-05-24 10:11:03 +08:00
ekko 65a984c31a Fix provider management profile scoping 2026-05-24 10:11:03 +08:00
Codex 7b05731d44 Refine user profile access and chat sync 2026-05-24 10:11:03 +08:00
ekko 3f6a25d8f1 Add user-scoped Hermes profile access 2026-05-24 10:11:03 +08:00
ekko 4092962db3 fix performance monitor worker blocking 2026-05-23 09:53:04 +08:00
ekko 8c4c6d6681 fix performance monitor worker blocking 2026-05-23 09:53:04 +08:00
ekko c184519c5d add bridge performance monitoring 2026-05-23 09:09:54 +08:00
ekko 4223014e0c polish file preview drawer 2026-05-22 19:11:04 +08:00
ekko 3f16c4a20e Allow bridge sessions to run concurrently (#932)
* Allow bridge sessions to run concurrently

* Stabilize bridge concurrency test

* Set bridge approval timeout to 120 seconds

* harden bridge approval concurrency

---------

Co-authored-by: Codex <codex@openai.com>
2026-05-22 15:52:00 +08:00
ekko f90e79fd2f fix: sync bundled skills across profiles (#926) 2026-05-22 10:41:14 +08:00
ekko 4b759c4d8a cache group chat fixed context usage (#925) 2026-05-22 10:20:39 +08:00
ekko c3538a6b44 fix compression context usage accounting (#924) 2026-05-22 09:46:50 +08:00
Zhicheng Han b5f0215beb fix: improve kanban board filtering (#919)
- Render only the selected status column when status chips are active
- Add status color treatments and default assignee normalization
- Reuse profile avatars for Kanban card assignee tags
- Cover status filtering, default assignee labels, and avatar rendering
2026-05-22 08:20:45 +08:00
ekko 254573400d Fix final context and tool status updates (#917)
Co-authored-by: Codex <codex@openai.com>
2026-05-21 23:21:26 +08:00
ekko ff1f471745 Persist custom Hermes models (#913) 2026-05-21 20:55:19 +08:00
ekko 4d89767847 Clean multimodal tool results before storage (#911) 2026-05-21 20:19:06 +08:00
ekko 39ead94352 Account for full context tokens in compression (#908)
* Account for full context tokens in compression

* Fix group chat final context updates

---------

Co-authored-by: Codex <codex@openai.com>
2026-05-21 19:40:52 +08:00
ekko b2ec321990 Fix group chat agent connection failures (#900) 2026-05-21 14:54:41 +08:00
ekko ab7dd00e8c Fix profile list column parsing (#897) 2026-05-21 14:08:58 +08:00
ekko 3b4e0cec74 Update Nous provider model preset (#896) 2026-05-21 13:20:26 +08:00
ekko dd3320d1ce Fix Windows netstat encoding in agent bridge (#894) 2026-05-21 12:25:38 +08:00
ekko 40109e9c42 [codex] fix profile scoped model selection (#881)
* fix profile scoped model selection

* test profile scoped provider refresh
2026-05-20 18:26:01 +08:00
Zhicheng Han 6578873d9e [verified] Fix group chat agent member sync (#877) 2026-05-20 17:13:15 +08:00
ekko 204058502e add apikey image generation media endpoint (#872) 2026-05-20 15:10:30 +08:00