Commit graph

641 commits

Author SHA1 Message Date
Classic298
5eaf9bc55f fix: a reply to an app card shows an empty quote
When someone replied to an app message that holds only a card, the quote above the reply showed the app's name and nothing else after the channel was opened or reloaded. The quote now shows the card's author, title, description, fields and footer, after a reload, inside threads and for replies that arrive while the channel is open.

Fixes #32361
2026-10-13 20:08:01 +02:00
Timothy Jaeryang Baek
be6f0a6656 refac 2026-10-13 17:22:11 +04:00
G30
99a9f60b9f
fix: a model added before Regenerate stays side by side after reload (#32326) 2026-10-13 16:46:01 +04:00
Timothy Jaeryang Baek
4ca8fdc3fd refac 2026-10-13 01:55:12 +04:00
Timothy Jaeryang Baek
03f5191aca refac 2026-10-13 01:49:55 +04:00
Timothy Jaeryang Baek
1786d6cdb0 refac 2026-10-13 00:43:00 +04:00
Timothy Jaeryang Baek
d823ebd96d refac 2026-10-12 23:59:19 +04:00
Classic298
113a64ad1a
perf: speed up one-word chat search (#32268)
Chat search checks the whole query and each word in it separately. With a single word those are the same check, so every chat got searched twice. It is now searched once, with the same results. On PostgreSQL with 2164 chats (533 MB of chat data) a one-word search is about 40% faster:

| search | before | after |
|---|---|---|
| proxy | 6.0 s | 3.6 s |
| opnsense | 6.1 s | 3.8 s |
| no match | 5.4 s | 3.0 s |

Refs #32266
2026-10-12 23:32:52 +04:00
Timothy Jaeryang Baek
4ab60527e7 refac 2026-10-12 22:14:04 +04:00
Timothy Jaeryang Baek
6229405b4d refac 2026-10-12 19:08:40 +04:00
Timothy Jaeryang Baek
6f92cd78ee refac 2026-10-12 18:37:30 +04:00
Timothy Jaeryang Baek
2ba35625b3 refac 2026-10-12 18:23:50 +04:00
Timothy Jaeryang Baek
774007d728 refac 2026-10-12 18:11:33 +04:00
Timothy Jaeryang Baek
b4bb9e7aca refac 2026-10-12 17:57:02 +04:00
Timothy Jaeryang Baek
c7802555b6 refac 2026-10-12 17:47:00 +04:00
Timothy Jaeryang Baek
04bccecb8e refac 2026-10-12 17:29:04 +04:00
Timothy Jaeryang Baek
fea827bc2e chore: format 2026-10-10 23:18:09 +04:00
Timothy Jaeryang Baek
93723bd315 refac 2026-10-10 22:39:57 +04:00
G30
78550396da
fix: keep a tag's name when the last chat using it is archived (#32200) 2026-10-10 20:30:15 +04:00
Timothy Jaeryang Baek
d04f78b3bf refac 2026-10-10 20:29:50 +04:00
Classic298
641c82df19
fix: automations, timers and sub-agents fail with "Message already exists" (#32177)
Automation runs, timers and sub-agents stopped getting a reply after the shared chats rework: the chat shows an empty answer and the run fails with `409 Message already exists or has an invalid ID.` Each of them creates the empty answer before asking the model, and the backend began refusing to fill an answer that is already in the chat; the server-side API flow in the docs and API calls without a user message broke the same way. Such an empty answer is now filled in again when it belongs to the same user and answers the same message, and API calls without a user message work as before, saving the reply on its own as the docs describe. A firing timer or sub-agent also no longer cancels the chat's other timers that are set to stop when the user writes next. Answers that are already finished, or that belong to another user in a shared chat, are still refused.

Fixes #32066
2026-10-10 20:02:54 +04:00
Classic298
7f3749ed6b
fix: user created in the same second as the first admin takes over its protection (#32157)
Account creation times are stored in whole seconds. On Postgres, a user created in the same second as the first admin, which is normal when a script sets up an instance, could be picked as the primary admin. Other admins could then demote or delete the real first admin, nobody could edit, lock or delete that user, and pending users were shown that user as the admin contact. An admin account now wins a same-second tie against a regular one.
2026-10-10 20:01:41 +04:00
Classic298
2dff26b1b9
fix: skill versions saved within the same second are listed in random order (#32167)
When a skill was saved several times within one second, its version history in the skill editor listed those versions in a shuffled order. This happens when a model edits a skill several times in one reply, or when an import replaces a skill right after it was created. Each new version now gets a save time at least one second later than the one before it, so the history keeps the order the versions were saved in. During such a burst, the shown save time runs ahead by about one second per extra save.

Fixes #32134
2026-10-10 19:49:21 +04:00
Classic298
1579af28a0
fix: skill search does not find a skill by its translated name (#32174)
Searching Workspace > Skills only matched a skill's original name, description and id, so typing the German name given to a skill in its editor found nothing, even with the interface in German. The search now also matches the names and descriptions translated in the skill editor, in any language, so both the translated and the original name find the skill, as the Translations page in the docs says.

Fixes #32018
2026-10-10 19:48:08 +04:00
Timothy Jaeryang Baek
e6476928ee refac 2026-10-09 18:37:55 +04:00
Timothy Jaeryang Baek
27b48b70df refac 2026-10-09 17:05:53 +04:00
Timothy Jaeryang Baek
16849284ff refac 2026-10-09 17:01:47 +04:00
Timothy Jaeryang Baek
24ee1cb168 refac 2026-10-09 16:31:34 +04:00
Timothy Jaeryang Baek
33dd7dd224 refac 2026-10-09 16:17:11 +04:00
Timothy Jaeryang Baek
9bbb95048b refac 2026-10-09 15:07:43 +04:00
Timothy Jaeryang Baek
538f9c9090 refac 2026-10-09 12:07:57 +04:00
Timothy Jaeryang Baek
ce18eca340 refac 2026-10-08 19:36:27 +04:00
Timothy Jaeryang Baek
6cfd6987e5 refac 2026-10-08 14:58:06 +04:00
Timothy Jaeryang Baek
de73bb830a refac 2026-10-08 14:30:07 +04:00
Timothy Jaeryang Baek
b612c8847a refac 2026-10-08 01:09:29 +04:00
Timothy Jaeryang Baek
7401f41630 refac 2026-10-07 13:22:00 +04:00
Timothy Jaeryang Baek
efd94fde63 refac 2026-10-07 00:54:53 +04:00
Timothy Jaeryang Baek
093bfce2b6 refac 2026-10-07 00:39:16 +04:00
Timothy Jaeryang Baek
106aae70e9 refac 2026-10-06 21:45:10 +04:00
Timothy Jaeryang Baek
398c37c73c refac 2026-10-05 14:35:15 +04:00
Timothy Jaeryang Baek
d4c561d9f2 refac 2026-10-05 14:01:02 +04:00
Timothy Jaeryang Baek
24e30d1cbd refac 2026-10-05 12:17:25 +04:00
Timothy Jaeryang Baek
d8659c237c refac 2026-10-05 10:46:08 +04:00
Timothy Jaeryang Baek
dd576bade3 refac 2026-10-05 10:40:09 +04:00
Classic298
f25708484b
fix: Daily Messages chart in Analytics fails to load on All time when a message has no timestamp (#31888)
With All time selected, the Daily Messages chart in Admin Panel > Analytics failed to load (the daily analytics request returned a 500) as soon as one message had been saved without a timestamp, for example a chat created through the API with a null timestamp. A date range still worked because those messages were left out of it. Such messages now get the time they were saved, and ones already stored without a timestamp are counted on today's date instead of breaking the chart. Messages that came after the missing timestamp in the same chat were also left out of analytics before and are now counted.

Fixes #27316
2026-10-05 06:46:49 +04:00
Classic298
3d43a497b5
fix: shared chats can't open new files attached together with a file already in the chat (#31650)
When files were attached to a chat message and one of them was already attached to that chat (on the same message or another one), none of the new files were recorded as part of the chat, and nothing showed up in the logs. The sender still saw every file in their own chat, but anyone opening a shared copy of the chat could not open the new ones. Files already attached to the chat are now skipped and the new ones are recorded normally.

Fixes #31648
2026-09-30 21:03:32 +04:00
G30
d4d04dca0d
fix: keep a cloned chat in a shared folder the user can write to (#31370) 2026-09-30 19:59:11 +04:00
Classic298
e26da43076
fix: automation still shows "Last run Never" after "Run now" (#31583)
* fix: automation still shows "Last run Never" after "Run now"

Running an automation with "Run now" added the run to its history, but the automation page and the Automations list kept showing "Last run Never" (or the time of the last scheduled run). Only scheduled runs recorded a last run time. A manual run now records it too, so the automation page and the Automations list show the time of the run you just started.

Fixes #31580

* fix: show the new last run time right after Run now

The automation page now takes the automation the server returns after Run now, so the last run time updates on the spot and no reload is needed.
2026-09-30 19:01:42 +04:00
Classic298
d6b19dcaa1
fix: on PostgreSQL, searching automations or filtering models by a non-ASCII word finds nothing (#31423)
On PostgreSQL with ENABLE_ORJSON off (the default), searching automations by a word from their prompt, or filtering models by a tag, found nothing when the word was non-ASCII, for example Chinese. SQLite, and PostgreSQL with ENABLE_ORJSON on, were fine. With the default setting non-ASCII text is saved as \uXXXX codes, and PostgreSQL reads the backslash in a search pattern as a special character, so the search never matched. Special characters in the search text are now taken literally, so these searches work on both databases, and a % or _ typed into them now matches only itself.

Fixes #31422
2026-09-27 23:09:54 +04:00
G30
ffe21bef8d
fix: remove the share links of chats deleted along with their folder (#31306) 2026-09-26 07:27:49 +04:00