Releases: SolRaze/Lance
Release list
v0.2.1 — Brave in, Yuanbao out
Added Brave (search.brave.com/ask): export, Enter-as-newline, Obsidian. Caveman not on Brave.
Removed Yuanbao support. Since v0.1.1: DeepSeek findSubmit fix (BUG-03); Grok dropped.
Brave findSubmit + toMd code-block = best-effort, pending DOM confirm.
v0.2.0 — Drop Grok
Removed Grok (grok.com) support: @include, platform map, input/submit/code-block selectors, export-sites list, settings UI.
Carried fixes since v0.1.1:
- DeepSeek findSubmit() selector — div[role=button].ds-button, ds-button--disabled (BUG-03)
- Caveman: Claude short trigger prompt (~20 tok vs ~80)
- Caveman send: rAF flush-wait + button re-find before click
Old configs with sites.grok -> dead key, dropped on next save.
v0.1.0 — DeepSeek full history + Obsidian format
What's fixed
DeepSeek scroll stops early — atBottom check used 20px tolerance; DeepSeek's _871cbca sentinel div prevents scrollTop from ever getting that close. Now 200px. Stall guard jumps forward instead of breaking when still mid-conversation.
DeepSeek Q/A pairing wrong — old code paired only consecutive user→assistant turns; DeepSeek emits thinking + answer as two separate assistant turns (u=59, a=118 seen in logs). New groupDeepSeekPairs() groups all assistant turns between two user messages into one pair.
Obsidian format — clean ## User / ## Assistant h2 headers with --- dividers. No emoji. Works with Obsidian's heading index and graph view.
v0.0.3 — Caveman injection fixes
What's fixed
Caveman mode now works correctly on all platforms (ChatGPT, Claude, Gemini, DeepSeek, Grok)
Bugs fixed
- Prompt format —
---separator now sits between the instruction and your message, not appended after it. Matches caveman-web spec exactly - Empty send — ProseMirror/contenteditable
innerTextreturns\non empty inputs; was injecting prefix into blank field and sending just the prompt. Now trimmed + bailed correctly - React textarea — native
HTMLTextAreaElementvalue setter used so ReactonChangefires and the message actually sends with content - Mouse click race condition — old passive listener let the site's submit handler fire before DOM updated. Fixed with capture-phase
preventDefault+stopImmediatePropagation, re-fires submit after 30ms tick so React reconciles first
No breaking changes
All export, Obsidian sync, and Enter-as-newline features unchanged.
v0.0.2 — Settings dashboard fix
Bug fix
Settings modal crash — ReferenceError: folderRow is not defined caused openDashboard() to throw before the dialog was ever appended to document.body. Modal silently never appeared.
Fix: declared missing const folderRow = document.createElement('div') before first use.
No functional changes to export, Obsidian sync, or Enter-as-newline.
Full Changelog: v0.0.1...v0.0.2