🚀 Cotabby 0.4.2-beta
This is one of Cotabby’s biggest quality releases yet.
Cotabby 0.4.2-beta focuses on making completions feel faster, cleaner, safer, and more useful in real writing. This release upgrades emoji autocomplete, adds tighter suggestion-length controls, improves OCR visual context, hardens model downloads, and lays the groundwork for a stronger open-source base-model pipeline.
✨ Headline Features
😄 Smarter emoji autocomplete
Emoji completion is now much more natural. Cotabby now supports recents, synonyms, fuzzy matching, and popularity ranking, so partial inputs like :smil, :party, :thanks, or :+1 are more likely to return what you actually meant.
⚡ New 2–4 word suggestion preset
A new short suggestion preset gives you tighter, lower-distraction completions when you want Cotabby to stay fast and lightweight.
🛡️ Better completion safety
Cotabby now applies stronger last-mile output safety gates before showing ghost text. These help suppress duplicated text, unsafe insertions, awkward sentence-boundary issues, and completions that do not fit the current field.
🧠 Stronger local model foundation
This release includes major internal work toward Cotabby’s open-source base-model path, including:
- Prompt budgeting
- Token-aware context handling
- Constrained decoding experiments
- Beam search
- Vocabulary profile caching
- Fill-in-middle prompting
- Better empty-completion diagnostics
Some of this remains behind feature flags, but the foundation is much stronger.
👁️ Cleaner visual context
Visual-context OCR is now simpler and more reliable. Cotabby removed the old LLM-based OCR summarizer path and replaced it with direct OCR hygiene filtering, including per-line confidence handling.
Result: a faster, cleaner, less fragile context pipeline.
⚙️ Better app controls
Cotabby now includes:
- Open at Login toggle
- Performance settings pane with opt-in latency tracking
- Better menu bar and Settings behavior
- Reduced AX capability flicker
- Safer handling around secure fields
- Fixes for Calendar popovers and overlay crashes
🔒 Hardened model downloads
Model download integrity checks are now stronger, helping protect users from incomplete or corrupted model downloads.
🐛 Notable Fixes
- Fixed rapid
Tabsometimes leaking into the host app after accepting the final word. - Fixed focus polling dismissing Calendar’s event popover.
- Fixed an overlay crash found during pre-release audit.
- Fixed dead settings and dead visual-context state.
- Fixed broken test scaffolding after visual-context cleanup.
- Fixed constrained-decoder latency regressions by bounding top-K work and skipping unused computation.
- Reverted constrained decoder as the only llama decode path after testing showed it was not ready to fully replace the existing path.
📦 Full Changes
- Update README by @FuJacob in #474
- Add Performance settings pane with opt-in LLM latency tracking by @jkrauska in #471
- Add 2-4 word length preset by @FuJacob in #480
- Add Open at Login toggle to General settings by @FuJacob in #450
- Dismiss menu bar popover when opening Settings by @jkrauska in #481
- Fix rapid Tab leaking into the host after a final-word accept by @FuJacob in #484
- Output safety gates: dedup, insertion safety, sentence boundary by @FuJacob in #485
- Stop focus polling from dismissing Calendar's event popover by @FuJacob in #483
- Improve visual context OCR quality by @FuJacob in #482
- Bump suggestion token budgets down to track word presets by @FuJacob in #493
- Add base-model completion pipeline behind a default-off flag by @FuJacob in #495
- Suppress AX capability flicker on the same focused element by @FuJacob in #494
- Smarter emoji completion: recents, synonyms, fuzzy matching, popularity by @FuJacob in #496
- Cotabby 2: cut the Open Source path to base models by @FuJacob in #497
- Budget the base prompt by section by @FuJacob in #498
- Replace the LLM OCR summarizer with direct OCR-hygiene filtering by @FuJacob in #499
- Fix CotabbyTests build broken by #499 by @FuJacob in #500
- Remove the dead visual-context summarize path by @FuJacob in #501
- Add deterministic constrained decoder behind a default-off flag by @FuJacob in #503
- Add no-repeat-ngram repetition guard to the constrained decoder by @FuJacob in #504
- Re-tune onboarding model recommendations for the base-model tiers by @FuJacob in #505
- Surface per-line OCR confidence so the low-confidence filter runs by @FuJacob in #506
- Remove the dead summarizing-text visual-context state by @FuJacob in #509
- Remove dead code surfaced by a whole-app audit by @FuJacob in #511
- Refresh docs for the base-model migration by @FuJacob in #512
- Keep the KV cache on cancelled llama generations by @FuJacob in #513
- Collapse the Open Source catalog to four named tiers by @FuJacob in #514
- Accept one word at a time in space-less scripts by @FuJacob in #515
- Catch more secure fields: role description and non-password secrets by @FuJacob in #516
- Stop the constrained decoder at sentence boundaries by @FuJacob in #517
- Add multi-branch beam search to the constrained decoder by @FuJacob in #518
- Cache the constrained-decode vocabulary profile on disk by @FuJacob in #519
- Make the constrained beam finish the current word mid-word by @FuJacob in #520
- Add fill-in-middle prompting for mid-line completions by @FuJacob in #521
- Log why a completion normalized to empty by @FuJacob in #522
- Gate fill-in-middle on a precise end-of-line signal by @FuJacob in #523
- Document how to evaluate the experimental decoder on device by @FuJacob in #524
- Add required-prefix admissibility to the constrained beam decoder by @FuJacob in #526
- Add per-site disable rules to the availability gate by @FuJacob in #527
- Add an execution-ready plan for the remaining parity work by @FuJacob in #528
- Make per-site disable live: capture the focused page URL by @FuJacob in #529
- Add opt-in clipboard paste insertion for long completions by @FuJacob in #530
- Add token-aware prompt budgeting as an opt-in path by @FuJacob in #531
- Make the constrained decoder the only llama decode path by @FuJacob in #532
- Hide custom rules from users behind a feature gate by @FuJacob in #533
- Fix three bugs found in a pre-release audit by @FuJacob in #534
- Fix an overlay crash and two dead settings by @FuJacob in #535
- Harden model download integrity by @FuJacob in #536
- Match Extended Context cap to what the engine actually uses by @FuJacob in #537
- Fix constrained-decode latency by @FuJacob in #538
- Revert constrained decoder as the only llama decode path by @FuJacob in #539
🔗 Changelog
Full Changelog: v0.4.1-beta...v0.4.2-beta