Skip to content

Commit 9af640f

Browse files
authored
Merge pull request #69 from led-mirage/feature/v1.39.0
Feature/v1.39.0
2 parents 4c58d0f + c0473a8 commit 9af640f

34 files changed

+362
-89
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ cython_debug/
163163
ZundaGPT2.exe
164164
log/*
165165
log_original/*
166+
!build_tools/app.manifest
166167
settings/*
167168
!settings/settings.en.json
168169
!settings/settings.es.json

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.12.0
1+
3.12.10

Readme.en.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![Anthropic Claude](https://img.shields.io/badge/Anthropic-Claude-crimson?logo=anthropic)](https://www.anthropic.com/)
88
[![Google Gemini](https://img.shields.io/badge/Google-Gemini-crimson?logo=google)](https://ai.google.dev/)
99

10-
Copyright (c) 2024-2025 led-mirage
10+
Copyright (c) 2024-2026 led-mirage
1111

1212
[Japanese](Readme.md)
1313

@@ -309,17 +309,17 @@ Please understand that the developer cannot be held responsible for any damages
309309
Homepage: https://github.com/r0x0r/pywebview
310310
License:BSD-3-Clause license
311311

312-
### 🔖 openai 2.8.1
312+
### 🔖 openai 2.17.0
313313

314314
Homepage: https://github.com/openai/openai-python
315315
License:Apache License 2.0
316316

317-
### 🔖 google-genai 1.52.0
317+
### 🔖 google-genai 1.62.0
318318

319319
Homepage: https://github.com/googleapis/python-genai
320320
License:Apache License 2.0
321321

322-
### 🔖 anthropic 0.75.0
322+
### 🔖 anthropic 0.79.0
323323

324324
Homepage: https://github.com/anthropics/anthropic-sdk-python
325325
License:MIT license
@@ -399,7 +399,7 @@ License:Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License
399399
Homepage:https://github.com/DudeNr33/pyinstaller-versionfile
400400
License:MIT license
401401

402-
### 🔖 PyInstaller 6.14.2
402+
### 🔖 PyInstaller 6.18.0
403403

404404
Homepage: https://github.com/pyinstaller/pyinstaller
405405
License: GPL 2.0 License / Apache License 2.0
@@ -408,7 +408,7 @@ License: GPL 2.0 License / Apache License 2.0
408408

409409
## 💎 License
410410

411-
© 2024-2025 led-mirage
411+
© 2024-2026 led-mirage
412412

413413
This application is released under the [MIT License](https://opensource.org/licenses/MIT).
414414
For more details, please refer to the LICENSE file included in the project.

Readme.md

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![Anthropic Claude](https://img.shields.io/badge/Anthropic-Claude-crimson?logo=anthropic)](https://www.anthropic.com/)
88
[![Google Gemini](https://img.shields.io/badge/Google-Gemini-crimson?logo=google)](https://ai.google.dev/)
99

10-
Copyright (c) 2024-2025 led-mirage
10+
Copyright (c) 2024-2026 led-mirage
1111

1212
[English](Readme.en.md)
1313

@@ -70,8 +70,12 @@ Raspberry Pi、Linuxへの導入に関しても[Zennの記事](https://zenn.dev/
7070

7171
動作確認済みのモデルは以下の通りなのだ。
7272

73-
<details><summary>OpenAI(2025/11/23現在)</summary>
73+
<details><summary>OpenAI(2026/02/10現在)</summary>
7474

75+
- GPT-5.2 (モデル名:gpt-5.2)
76+
- GPT-5.2 Chat (モデル名:gpt-5.2-chat-latest)
77+
- GPT-5.2 Codex (モデル名:gpt-5.2-codex)
78+
- GPT-5.2 Pro(モデル名:gpt-5.2-pro)
7579
- GPT-5.1 (モデル名:gpt-5.1)
7680
- GPT-5.1 Chat (モデル名:gpt-5.1-chat-latest)
7781
- GPT-5.1 Codex (モデル名:gpt-5.1-codex)
@@ -95,34 +99,34 @@ Raspberry Pi、Linuxへの導入に関しても[Zennの記事](https://zenn.dev/
9599
- o3 (モデル名:o3)
96100
- o3-mini (モデル名:o3-mini)
97101
- o1 (モデル名:o1)
98-
- o1-mini (モデル名:o1-mini)
99102

100103
</details>
101104

102-
<details><summary>Anthropic Claude(2025/11/28現在)</summary>
105+
<details><summary>Anthropic Claude(2026/02/10現在)</summary>
103106

107+
- Claude Opus 4.6 (モデル名:claude-opus-4-6)
104108
- Claude Opus 4.5 (モデル名:claude-opus-4-5)
105109
- Claude Opus 4.1 (モデル名:claude-opus-4-1)
106110
- Claude Opus 4 (モデル名:claude-opus-4-0)
107-
- Claude Opus 3 (モデル名:claude-3-opus-latest)
108111
- Claude Sonnet 4.5 (モデル名:claude-sonnet-4-5)
109112
- Claude Sonnet 4 (モデル名:claude-sonnet-4-0)
110113
- Claude Sonnet 3.7 (モデル名:claude-3-7-sonnet-latest)
111-
- Claude Sonnet 3.5 V2 (モデル名:claude-3-5-sonnet-latest)
112114
- Claude Haiku 4.5 (モデル名:claude-haiku-4-5)
113115
- Claude Haiku 3.5 (モデル名:claude-3-5-haiku-latest)
114116
- Claude Haiku 3 (モデル名:claude-3-haiku-20240307)
115117

116118
</details>
117119

118-
<details><summary>Google Gemini(2025/10/19現在)</summary>
120+
<details><summary>Google Gemini(2026/02/10現在)</summary>
119121

120-
- Gemini 2.5 Pro (モデル名:gemini-2.5-pro) 無料枠あり
122+
- Gemini 3 Pro Preview(モデル名:gemini-3-pro-preview)
123+
- Gemini 3 Flash Preview(モデル名:gemini-3-flash-preview) 無料枠あり
124+
- Gemini 2.5 Pro (モデル名:gemini-2.5-pro)
121125
- Gemini 2.5 Flash (モデル名:gemini-2.5-flash) 無料枠あり
122126
- Gemini 2.5 Flash Preview (モデル名:gemini-2.5-flash-preview-09-2025) 無料枠あり
123127
- Gemini 2.5 Flash Lite (モデル名:gemini-2.5-flash-lite) 無料枠あり
124-
- Gemini 2.0 Flash (モデル名:gemini-2.0-flash) 無料枠あり
125-
- Gemini 2.0 Flash Lite (モデル名:gemini-2.0-flash-lite) 無料枠あり
128+
- Gemini 2.0 Flash (モデル名:gemini-2.0-flash)
129+
- Gemini 2.0 Flash Lite (モデル名:gemini-2.0-flash-lite)
126130

127131
</details>
128132

@@ -211,7 +215,7 @@ Windowsの場合は、Windowsの検索窓で「環境変数を編集」で検索
211215

212216
以下のリンクから ZundaGPT2.ZIP をダウンロードして、作成したフォルダに展開するのだ。
213217

214-
https://github.com/led-mirage/ZundaGPT2/releases/tag/v1.38.1
218+
https://github.com/led-mirage/ZundaGPT2/releases/tag/v1.39.0
215219

216220
#### 3. 実行
217221

@@ -359,11 +363,11 @@ CSSを知らない人はなんのことかわからないかもしれないけ
359363

360364
VirusTotalでのチェック結果はこちらなのだ。
361365

362-
- Windows版: [72個中2個のアンチウィルスエンジンで検出 :2025/12/07 v1.38.1](https://www.virustotal.com/gui/file/cc0ddffdce82c419cb015dc7cb56fa669394cf9e3e6021455891bfcdf19593e6/detection)
363-
- Raspberry Pi版: [62個中0個のアンチウィルスエンジンで検出 :2025/12/07 v1.38.1](https://www.virustotal.com/gui/file/36a930fc05fb459f8c33bcbfaaa2e0cf1a241e3c6f0d7a06685100976e1ea2aa/detection)
364-
- Linux版: [62個中0個のアンチウィルスエンジンで検出 :2025/12/07 v1.38.1](https://www.virustotal.com/gui/file/633d3396b4f0b79587a1aa9aa609cb226afc73a47433f9f7f2ab9b38dbad7921/detection)
366+
- Windows版: [71個中2個のアンチウィルスエンジンで検出 :2026/02/11 v1.39.0](https://www.virustotal.com/gui/file/b34ce9f8f8c65931763266ee063ad878d4c5fad7930c7a290f20f1f90e7c6163/detection)
367+
- Raspberry Pi版: [60個のアンチウィルスエンジンで検出なし :2026/02/11 v1.39.0](https://www.virustotal.com/gui/file/6ef6690144c7b49457cdb7286811102eb7e230e577b20c45d4604dbcfc14975b/detection)
368+
- Linux版: [59個のアンチウィルスエンジンで検出なし :2026/02/11 v1.39.0](https://www.virustotal.com/gui/file/6e4f5e4f3459ef52b1001a2c53a9e6eefcbfa85e8c116a6092462146a0b552a4/detection)
365369

366-
<img src="doc/images/virustotal_1.38.1.png" width="600">
370+
<img src="doc/images/virustotal_1.39.0.png" width="600">
367371

368372
### ⚡ ご利用について
369373

@@ -390,17 +394,17 @@ VirusTotalでのチェック結果はこちらなのだ。
390394
ホームページ: https://github.com/r0x0r/pywebview
391395
ライセンス:BSD-3-Clause license
392396

393-
### 🔖 openai 2.8.1
397+
### 🔖 openai 2.17.0
394398

395399
ホームページ: https://github.com/openai/openai-python
396400
ライセンス:Apache License 2.0
397401

398-
### 🔖 google-genai 1.52.0
402+
### 🔖 google-genai 1.62.0
399403

400404
ホームページ: https://github.com/googleapis/python-genai
401405
ライセンス:Apache License 2.0
402406

403-
### 🔖 anthropic 0.75.0
407+
### 🔖 anthropic 0.79.0
404408

405409
ホームページ: https://github.com/anthropics/anthropic-sdk-python
406410
ライセンス:MIT license
@@ -480,7 +484,7 @@ VirusTotalでのチェック結果はこちらなのだ。
480484
ホームページ:https://github.com/DudeNr33/pyinstaller-versionfile
481485
ライセンス:MIT license
482486

483-
### 🔖 PyInstaller 6.14.2
487+
### 🔖 PyInstaller 6.18.0
484488

485489
ホームページ: https://github.com/pyinstaller/pyinstaller
486490
ライセンス: GPL 2.0 License / Apache License 2.0
@@ -491,7 +495,7 @@ VirusTotalでのチェック結果はこちらなのだ。
491495

492496
## 💎 ライセンス
493497

494-
© 2024-2025 led-mirage
498+
© 2024-2026 led-mirage
495499

496500
本アプリケーションは [MITライセンス](https://opensource.org/licenses/MIT) の下で公開されているのだ。詳細については、プロジェクトに含まれる LICENSE ファイルを参照して欲しいのだ。
497501

@@ -501,7 +505,15 @@ VirusTotalでのチェック結果はこちらなのだ。
501505

502506
バージョンアップの詳しい内容については [Zennの記事](https://zenn.dev/ledmirage/books/8ec854ef6b8e12) を見て欲しいのだ。
503507

504-
### 1.38.1 (2025/12/xx)
508+
### 1.39.0 (2026/02/11)
509+
510+
- チャット削除後のカレント位置を調整
511+
- 使用ライブラリの更新
512+
- 使用画像のリファイン
513+
- Chatクラスのテストの追加
514+
- ビルドバッチの変更
515+
516+
### 1.38.1 (2025/12/07)
505517

506518
- Fix: 印刷時、メッセージコピーボタンを非表示にするよう修正
507519
- Fix: ダークモード時、印刷時にキャラの背景画像が印刷されない問題を修正

app/chat/chat_gemini.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,20 @@ def send_message(
6565
try:
6666
self._stop_send_event.clear()
6767

68-
user_parts = [{"text": text}]
69-
for img_dataurl in images or []:
70-
media_type, image_format, b64 = parse_data_url(img_dataurl)
71-
b64 = resize_base64_image(b64, max_size_mb=self.MAX_IMAGE_SIZE_MB, output_format=image_format)
72-
user_parts.append({
73-
"inline_data": {
74-
"mime_type": media_type,
75-
"data": b64
76-
}
77-
})
78-
68+
self.messages.append({"role": "user", "content": text})
7969
messages = copy.deepcopy(self._get_history())
8070
messages = self.convert_messages(messages)
81-
messages.append({"role": "user", "parts": user_parts})
82-
self.messages.append({"role": "user", "content": text})
83-
84-
#self.messages.append({"role": "user", "content": text})
85-
#messages = copy.deepcopy(self.get_history())
86-
#messages = self.convert_messages(messages)
71+
if images:
72+
last_message = messages[-1]
73+
for img_dataurl in images:
74+
media_type, image_format, b64 = parse_data_url(img_dataurl)
75+
b64 = resize_base64_image(b64, max_size_mb=self.MAX_IMAGE_SIZE_MB, output_format=image_format)
76+
last_message["parts"].append({
77+
"inline_data": {
78+
"mime_type": media_type,
79+
"data": b64
80+
}
81+
})
8782

8883
stream = self._client.models.generate_content_stream(
8984
model=self._model,

app/const.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
# ライセンスの詳細については、このプロジェクトのLICENSEファイルを参照してください。
88

99
APP_NAME = "ZundaGPT2"
10-
APP_VERSION = "1.38.1"
11-
COPYRIGHT = "© 2024-2025 led-mirage"
10+
APP_VERSION = "1.39.0"
11+
COPYRIGHT = "© 2024-2026 led-mirage"

app/services/index_service.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -206,21 +206,19 @@ def set_chatmessages_to_ui(self, messages: list[dict]):
206206
def delete_current_chat(self):
207207
if not ChatLog.exists_log_file(self.state.chat):
208208
return
209-
210-
next_logfile = ChatLog.get_prev_logfile(self.state.chat)
211-
if next_logfile is None:
212-
next_logfile = ChatLog.get_next_logfile(self.state.chat)
213-
214-
ChatLog.delete_log_file(self.state.chat)
215209

216-
if next_logfile is not None:
217-
loaded_settings, loaded_chat = ChatLog.load(next_logfile)
210+
prev_logfile = ChatLog.get_prev_logfile(self.state.chat)
211+
next_logfile = ChatLog.get_next_logfile(self.state.chat)
212+
213+
is_empty = (prev_logfile is None) and (next_logfile is None)
214+
is_tail = (next_logfile is None)
215+
if is_empty or is_tail:
216+
self.window.js.newChat()
217+
else:
218+
loaded_settings, loaded_chat = ChatLog.load(prev_logfile)
218219
if loaded_settings is None:
219220
return
220-
221221
self.change_current_chat(loaded_settings, loaded_chat)
222-
else:
223-
self.window.js.newChat()
224222

225223
# メッセージ送信イベントハンドラ(UI)
226224
def send_message_to_chatgpt(self, text, images, speak=True):

assets/ZundaGPT2-Icon.png

-2.93 KB
Loading

assets/ZundaGPT2-Icon512.png

192 KB
Loading

assets/ZundaGPT2_splash.mdp

13.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)