What's New
✨ New Features
📝 Session Notes
Every session now has a private scratchpad — click the Notes button in the session bar to open a resizable textarea. Notes auto-save as you type (1.2s debounce), are stored in SQLite alongside the session, and are never sent to Claude. Your context clues, observations, and reminders persist across restarts.
🔍 In-Chat Message Search (Ctrl+F / ⌘F)
Press Ctrl+F (or ⌘F on Mac) to open a search bar above the messages. Type to filter — only matching messages stay visible. Navigate between hits with ▲▼ buttons or Enter / Shift+Enter. Press Esc to close. Instantly find that command you ran three hundred messages ago.
🔒 Security & Reliability Fixes
- fix(telegram): Normalize
baseDirbefore separator-suffixed path traversal check - fix(telegram): Treat success-as-error on media upload; close prefix path-traversal gap
- fix(security): Escape apostrophes in inline
onclickhandlers (path-name injection) - fix(server): Worker-cap counter, unbounded reads/buffers, config cache, import FK
- fix(ui): Collapse side panels on initial mobile load (no more overlap)
- fix(ui): Add inline SVG favicon to all pages (removes
/favicon.ico404) - fix(ui): Clipboard fallback, interrupt reply clear,
olnumbering, mobile lang, ask WS guard - fix(modules): Idempotent SSH
finish(), chunk-safe tunnel URL parsing - fix(db): Add missing index on
messages.reply_to_idself-referencing FK (O(N²) → O(1) cascade cleanup)
Upgrade
npx github:Lexus2016/claude-code-studio@latestOr pull & restart if running from a clone:
git pull && node server.js