diff --git a/astrbot/core/platform/sources/telegram/tg_adapter.py b/astrbot/core/platform/sources/telegram/tg_adapter.py index 87e21391e6..e3fe655fcb 100644 --- a/astrbot/core/platform/sources/telegram/tg_adapter.py +++ b/astrbot/core/platform/sources/telegram/tg_adapter.py @@ -300,7 +300,10 @@ async def convert_message( return None message.sender = MessageMember( str(_from_user.id), - _from_user.username or "Unknown", + _from_user.full_name + or _from_user.first_name + or _from_user.username + or "Unknown", ) message.self_id = str(context.bot.username) message.raw_message = update diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 6848c5d43a..a0cffbdd55 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -308,6 +308,14 @@ async def _query_stream( async for chunk in stream: try: + # Fix for #6661: Add missing 'index' field to tool_call deltas + # Gemini and some OpenAI-compatible proxies omit this field + if chunk.choices: + for choice in chunk.choices: + if choice.delta and choice.delta.tool_calls: + for idx, tc in enumerate(choice.delta.tool_calls): + if not hasattr(tc, "index") or tc.index is None: + tc.index = idx state.handle_chunk(chunk) except Exception as e: logger.warning("Saving chunk state error: " + str(e)) diff --git a/dashboard/src/components/shared/ExtensionCard.vue b/dashboard/src/components/shared/ExtensionCard.vue index c324545785..ee32291fe4 100644 --- a/dashboard/src/components/shared/ExtensionCard.vue +++ b/dashboard/src/components/shared/ExtensionCard.vue @@ -331,6 +331,14 @@ const viewChangelog = () => { > {{ extension.desc }} + +
+ + {{ extension.author }} +
@@ -353,6 +361,19 @@ const viewChangelog = () => { + + + +