Update README.md

This commit is contained in:
FURK4NGG
2026-03-01 00:38:33 +03:00
committed by GitHub
parent 45a733c358
commit a55ec648e6
+86 -86
View File
@@ -62,106 +62,106 @@ Manual test (çalıştığını doğruladık)
## 🔎 Preparation ## 🔎 Preparation
<details> <details>
<summary>For Nerds</summary> <summary>For Nerds</summary>
1. Chat management 1. Chat management
Create new chats (chat_1.json, chat_2.json, …) Create new chats (chat_1.json, chat_2.json, …)
Switch between chats Switch between chats
Delete chat (with confirmation) Delete chat (with confirmation)
Rename chat (popover) Rename chat (popover)
Pin/unpin chats (📌) Pin/unpin chats (📌)
Sorting: pinned first, then most recently modified Sorting: pinned first, then most recently modified
2. Persistent settings (config.json) 2. Persistent settings (config.json)
Remember last opened chat (last_chat) Remember last opened chat (last_chat)
Dark/light theme (dark_mode) Dark/light theme (dark_mode)
Pinned chats (pinned_chats) Pinned chats (pinned_chats)
Model list (ai_models) Model list (ai_models)
Per-chat model mapping (chat_models) Per-chat model mapping (chat_models)
Store OpenRouter key (open_router_key) Store OpenRouter key (open_router_key)
Mic mode online/offline (is_mic_online) Mic mode online/offline (is_mic_online)
Online STT model (stt_model_online) Online STT model (stt_model_online)
Offline whisper.cpp paths (whisper_cpp_bin, whisper_cpp_model) Offline whisper.cpp paths (whisper_cpp_bin, whisper_cpp_model)
3. Sidebar UI 3. Sidebar UI
Collapse/expand sidebar (☰) Collapse/expand sidebar (☰)
Toggle Chats list Toggle Chats list
Toggle AI Models list Toggle AI Models list
4. Model management (per chat) 4. Model management (per chat)
Separate active model per chat Separate active model per chat
Selecting a model assigns it to the current chat Selecting a model assigns it to the current chat
LRU behavior: recently chosen model moves to top LRU behavior: recently chosen model moves to top
Delete models (cannot delete the last remaining model) Delete models (cannot delete the last remaining model)
If a model is deleted, affected chats fall back to default (self-heal) If a model is deleted, affected chats fall back to default (self-heal)
“AI Models +” to add a model (dialog + OpenRouter models link) “AI Models +” to add a model (dialog + OpenRouter models link)
5. Message selection mode 5. Message selection mode
Click to select one or multiple messages Click to select one or multiple messages
Selection counter bar Selection counter bar
Clear selection (✕) Clear selection (✕)
Selected bubbles get an outline Selected bubbles get an outline
6. Reference trees (reference chain expansion) 6. Reference trees (reference chain expansion)
Expands used_refs recursively (references of references) Expands used_refs recursively (references of references)
Ensures context (including images/refs) isnt lost Ensures context (including images/refs) isnt lost
Stores: Stores:
used_refs (indices sent to AI) used_refs (indices sent to AI)
refs_groups (UI reference preview groups) refs_groups (UI reference preview groups)
7. Reference trees (reference chain expansion) 7. Reference trees (reference chain expansion)
Expands used_refs recursively (references of references) Expands used_refs recursively (references of references)
Ensures context (including images/refs) isnt lost Ensures context (including images/refs) isnt lost
Stores: Stores:
used_refs (indices sent to AI) used_refs (indices sent to AI)
refs_groups (UI reference preview groups) refs_groups (UI reference preview groups)
8. Regenerate (♻) 8. Regenerate (♻)
Appears only when exactly one bubble is selected Appears only when exactly one bubble is selected
If user bubble: re-asks the same prompt If user bubble: re-asks the same prompt
If bot bubble: finds preceding user prompt + rewrites a similar answer If bot bubble: finds preceding user prompt + rewrites a similar answer
Regenerated prompts are marked (regen) with a distinct style Regenerated prompts are marked (regen) with a distinct style
Keeps reference trees during regeneration Keeps reference trees during regeneration
9. Copy (📋) 9. Copy (📋)
Appears only on the single selected bubble Appears only on the single selected bubble
If message contains copy ... copy, copies only the inner block If message contains copy ... copy, copies only the inner block
Otherwise copies full message Otherwise copies full message
10. Code block detection 10. Code block detection
Messages wrapped by copy markers render as a code-style block Messages wrapped by copy markers render as a code-style block
Code block includes a “Copy” button overlay Code block includes a “Copy” button overlay
11. Image sending / preview 11. Image sending / preview
Supports a pending image preview before sending Supports a pending image preview before sending
Saves image path into chat history Saves image path into chat history
Shows a small image preview in message bubbles Shows a small image preview in message bubbles
Clears preview after sending Clears preview after sending
12. Typing indicator 12. Typing indicator
Animated “Thinking…” while AI is running Animated “Thinking…” while AI is running
Removed when response arrives Removed when response arrives
13. Scroll behavior 13. Scroll behavior
Floating scroll-to-bottom button (↓) appears when not at bottom Floating scroll-to-bottom button (↓) appears when not at bottom
Clicking scrolls to bottom and re-enables auto-scroll Clicking scrolls to bottom and re-enables auto-scroll
Button visibility updates based on scroll position Button visibility updates based on scroll position
(You also tuned behavior to scroll only on regenerate) (You also tuned behavior to scroll only on regenerate)
14. Input shortcuts 14. Input shortcuts
Enter to send Enter to send
Shift+Enter for newline Shift+Enter for newline
Added: Ctrl+C / Ctrl+V / Ctrl+X / Ctrl+A Added: Ctrl+C / Ctrl+V / Ctrl+X / Ctrl+A
15. Voice-to-text input 15. Voice-to-text input
🎤 to start recording, ⏹ to stop 🎤 to start recording, ⏹ to stop
Uses pw-record if available, otherwise arecord (Linux) Uses pw-record if available, otherwise arecord (Linux)
After stop, transcribes (offline/online) and appends text into input After stop, transcribes (offline/online) and appends text into input
16. Offline STT (whisper.cpp) 16. Offline STT (whisper.cpp)
Uses whisper-cli + ggml-tiny.bin for low CPU transcription Uses whisper-cli + ggml-tiny.bin for low CPU transcription
Reads .txt output (stdout fallback) Reads .txt output (stdout fallback)
17. Online STT (OpenRouter) 17. Online STT (OpenRouter)
If is_mic_online: true, transcribes via OpenRouter If is_mic_online: true, transcribes via OpenRouter
Sends base64 WAV as input_audio Sends base64 WAV as input_audio
Model selected via stt_model_online Model selected via stt_model_online
</details> </details>