diff --git a/README.md b/README.md
index 3017b3b..cc6b631 100644
--- a/README.md
+++ b/README.md
@@ -52,5 +52,116 @@ Manual test (çalıştığını doğruladık)
## Roadmap
-- [x]
-- [ ]
+- [x] Use reference trees
+- [x] Dark/Light themes
+- [x] Copiable code blocks
+- [x] Regenerate
+- [x] Enter input with your voice -Speech to text(online or local)-
+- [ ]
+
+```
+-For Nerds-
+
+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)
+
+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)
+
+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) isn’t 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) isn’t 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
+
+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
+
+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
+
+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
+
+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)
+
+17. Online STT (OpenRouter)
+If is_mic_online: true, transcribes via OpenRouter
+Sends base64 WAV as input_audio
+Model selected via stt_model_online
+```