Repository navigation
v0.2.4
[0.2.4] - 2026-05-23
Polishes the selection-rewrite UX and prepares the first Chrome Web Store submission. An earlier automatic GPU-OOM "guard" (zero-chunk-as-failure + session teardown + rebuild-and-retry) was removed: on a memory-constrained adapter the session churn tended to make out-of-memory worse, not better. The session now loads once and is never auto-destroyed; GPU errors surface plainly instead.
Added
- Model preloads when the panel opens. Previously the first message ate the 30–90s WebGPU upload. Now opening the panel (Ctrl/Cmd+Shift+K) kicks off the load in the background with a live "Loading…" indicator (bouncing dots + an elapsed counter); the input stays editable while the Send button is gated until the model is ready. The preload is best-effort — if it fails it degrades quietly to lazy loading on the first message rather than raising an alarm, and the load is never killed on a timer.
- Proactive "Clear conversation" warning. The panel tracks how large the conversation has grown and warns before the next turn is likely to exhaust VRAM, with a one-click button to reset the session. The warning threshold is derived per-session from the actual WebGPU adapter (or
device/ an optionalhistoryTokenWarnThresholdin.env.json). - Undo / Accept on rewrites. A finished rewrite now offers both Undo (restore the original text) and Accept (commit and reset selection state for the next edit), instead of Undo alone.
- Brand icon (
icons/) and annpm run packagestep that zips a Web-Store-ready upload (manifest +dist/+ icons).
Changed
- Reduced requested permissions to
["storage", "offscreen"]. RemovedactiveTabandscripting(the declarative<all_urls>content script already grants the page access the extension uses; nothing calls thechrome.scriptingAPI) and thecdn.jsdelivr.nethost permission (ONNX Runtime WASM loads from the bundleddist/ort/, never jsdelivr). - Default
dtypechanged fromq4toq4f16in.env.example.json. See the Notes below — theq4ONNX kernel hits an illegal-instruction crash in ONNX Runtime Web's WASM SIMD path on some Chrome/Dawn builds;q4f16routes through different kernels and avoids it, with slightly better quality (fp16 activations, same 4-bit weights).
Removed
- The automatic GPU-OOM guard: zero-chunk streams are no longer treated as failures, the offscreen session is no longer torn down on a stream error, and the chat/rewrite paths no longer rebuild-and-retry on a device-loss-shaped error. A failed turn now shows its error plainly. Manual recovery is still available via the "Clear conversation" button.
Fixed
- Highlighting text then clicking into the chat input no longer drops the selection — focus-shift
selectionchangeevents are ignored so the captured snapshot survives.
Notes
- All inference still runs on-device; the only network access remains the one-time model-weights download from Hugging Face. No new permissions touch the network beyond what 0.2.2 already declared (and jsdelivr was dropped).
- See docs/chrome-web-store.md for the submission checklist and permission justifications.
q4kernel crash (debugging note). A model load withdtype: "q4"was crashing the offscreen document with a WebAssemblySIGILL(illegal instruction) inside ONNX Runtime Web's quantized-matmul SIMD kernel — reproducible in a bare webpage with no extension, so it's upstream of this project (a V8/Dawn codegen issue on the affected device, not our code, the model, or the GPU; raw WebGPU buffer allocation and dependency integrity both checked out).q4f16uses different kernels and sidesteps the bad instruction. Ifq4f16ever regresses similarly,fp16andq8are the next dtypes to try.