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