mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-01 19:50:41 +02:00
refac
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.11.3] - 2026-08-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- 💥 **Chat branches stay connected after reloads.** Replies saved under a previous message now stay listed under that previous message too, so branch arrows, exports, reloads, and later edits keep the full conversation visible. Chats already saved with the missing branch link are repaired when opened. [#29299](https://github.com/open-webui/open-webui/issues/29299)
|
||||
- 🧱 **Upgrades fail clearly instead of starting half-updated.** If a database migration fails, Open WebUI now stops at the real migration error instead of continuing to start and then throwing confusing missing table or missing column errors such as `chat.timer_at`. This fixes the upgrade failure reported after moving from 0.11.0, 0.11.1, or 0.11.2. [#29280](https://github.com/open-webui/open-webui/issues/29280)
|
||||
- 🔌 **Disconnect OAuth only appears when there is OAuth to disconnect.** MCP tool servers that use no authentication no longer show the Disconnect OAuth button. The button now appears only for an OAuth MCP server with a connected account. [#29296](https://github.com/open-webui/open-webui/issues/29296)
|
||||
- 🔤 **Custom interface fonts reach more of the app.** The font chosen in Interface settings now applies through the main, primary, and secondary font paths, so dropdowns and other interface text do not randomly fall back to the default font.
|
||||
|
||||
### Changed
|
||||
|
||||
- 🌐 **Indonesian translation coverage was expanded.** More Indonesian text is now filled in for file counts, selected items, groups, filters, schedules, terminal refresh messages, stale file cleanup, and retrieved sources. [#29294](https://github.com/open-webui/open-webui/pull/29294)
|
||||
|
||||
## [0.11.2] - 2026-08-31
|
||||
|
||||
### Added
|
||||
|
||||
@@ -456,6 +456,23 @@ class ChatTable:
|
||||
message_id = next_id
|
||||
return message_id
|
||||
|
||||
@staticmethod
|
||||
def _add_child_id_to_parent(messages: dict, parent_id: str | None, child_id: str) -> bool:
|
||||
parent = messages.get(parent_id) if parent_id else None
|
||||
if not isinstance(parent, dict):
|
||||
return False
|
||||
|
||||
child_ids = parent.get('childrenIds')
|
||||
if not isinstance(child_ids, list):
|
||||
child_ids = []
|
||||
parent['childrenIds'] = child_ids
|
||||
|
||||
if child_id in child_ids:
|
||||
return False
|
||||
|
||||
child_ids.append(child_id)
|
||||
return True
|
||||
|
||||
def _repair_chat_current_id(self, chat: dict) -> bool:
|
||||
history = chat.get('history')
|
||||
if not isinstance(history, dict):
|
||||
@@ -465,6 +482,12 @@ class ChatTable:
|
||||
if not isinstance(messages, dict):
|
||||
return False
|
||||
|
||||
changed = False
|
||||
for message_id, message in messages.items():
|
||||
if not isinstance(message, dict):
|
||||
continue
|
||||
changed = self._add_child_id_to_parent(messages, message.get('parentId'), message_id) or changed
|
||||
|
||||
current_id = history.get('currentId')
|
||||
current_message = messages.get(current_id)
|
||||
output = []
|
||||
@@ -494,7 +517,7 @@ class ChatTable:
|
||||
history['currentId'] = last_descendant_id
|
||||
return True
|
||||
|
||||
return False
|
||||
return changed
|
||||
|
||||
latest_leaf_id = None
|
||||
latest_timestamp = -1
|
||||
@@ -509,7 +532,7 @@ class ChatTable:
|
||||
latest_timestamp = timestamp
|
||||
|
||||
if not latest_leaf_id or latest_leaf_id == current_id:
|
||||
return False
|
||||
return changed
|
||||
|
||||
history['currentId'] = latest_leaf_id
|
||||
return True
|
||||
@@ -998,6 +1021,8 @@ class ChatTable:
|
||||
'timestamp': message.get('timestamp') or int(time.time()),
|
||||
}
|
||||
history['currentId'] = message_id
|
||||
|
||||
ChatTable._add_child_id_to_parent(messages, messages[message_id].get('parentId'), message_id)
|
||||
return messages[message_id]
|
||||
|
||||
async def backfill_messages_by_chat_id(self, chat_id: str, user_id: str, messages: dict[str, dict]) -> None:
|
||||
|
||||
Reference in New Issue
Block a user