Repository navigation
Releases: pupontech/cotabby-windows
Release list
Cotabby for Windows v0.5.1
Cotabby for Windows v0.5.1
Tagged build from commit ad95b5274dbbd770b32956e7ab1b28d363a0b98d.
Fixed
- Selectively port model-download hardening from Windows upstream
Msde-7/cotabby-windows e625947:
restart rather than append when a server ignores HTTP Range; reject truncated
responses and non-GGUF downloads; replace invalid existing final files. - Validate 206 Content-Range offsets and total length before resuming. Promote a
416 partial only when the server's explicit total equals the local file size. - Remove download error-body and redirected-URL logging.
Scope and verification
- 14 deterministic downloader cases supplement the existing 319 tests. Hosted
Windows workflows also build, publish and exercise existing synthetic runtime
proofs. See download safety notes. - No cloud endpoint, clipboard-context, typing-history or UI rewrite imported.
All earlier v0.5.0 behavior remains. - GGUF magic and size checks are sanity checks, not cryptographic validation.
Existing caches retain the historical 85% size tolerance. A changed remote
model during resumption cannot be detected without a trusted checksum/validator.
Live Hugging Face downloads and real-model suggestions need owner testing.
Assets
Cotabby-win-x64-v0.5.1.zip— self-contained folder build. Extract into a new folder; do not flattenruntimes.Cotabby-win-x64-v0.5.1.zip.sha256— verified checksum of the ZIP above.
SHA-256: 50aa7beb310240360eb95646106c39ad5984eaa07dc5dd57fb949c1d7dd1f613
Verification
- Windows CI on this commit runs the full test suite, the synthetic real-UI-Automation credential proof and a GPU counter/persistence smoke test.
- The published ZIP is extracted and every member is hashed against the packaged manifest before upload.
- Live model decoding, physical GPU readings, per-adapter behavior and browser/application credential coverage remain owner-verified.
- Inference stays local: no telemetry and no cloud completion. Do not share raw logs; they can contain typed text.
Cotabby for Windows v0.5.0
Cotabby for Windows v0.5.0
Tagged build from commit 8ceeea7a7b58590ffea99eedab4ea00d203a10f8.
Upstream port round three from FuJacob/cotabby, merged into main as PR #6 and
shipped cumulatively with all five earlier ports.
Added
- Port upstream [correctable-misspelling guard (#814)](docs/upstream-seam-guard.md):
a pure post-generationCompletionSeamGuardnow refuses three classes of
visible glitch before display — junk punctuation runs ("....", "$$$$"),
mid-word splices that turn the word being typed into a misspelling
("gre" + "atful"), and, when the completion starts a new word, a first word
the spell backend can actually correct. The leading-word check is
intentionally fail-open: names, jargon and model vocabulary without a
replacement pass through. Windows registers no always-on spell checker
equivalent, so the check is pluggable (ISpellAssessor); without one the
guard stays at its pure junk-run rule and behavior is unchanged beyond junk
runs. Spelling checks skip capitalized words, short joins, tokens with
digits, and CJK text. - Port upstream [Low Power Mode pause (#812)](docs/upstream-low-power-mode.md):
a new opt-in Pause in Low Power Mode toggle in Settings → General.
When enabled, new suggestion requests pause while the Windows energy saver
is engaged (read viaGetSystemPowerStatus, one cheap cached poll per
evaluation, never throws). Off by default, matching upstream. - Port upstream [held-presentation rapid-Tab acceptance (#838)](docs/upstream-rapid-tab.md):
while Cotabby's next overlay presentation is still in flight, a rapid
follow-up Tab now accepts the tail Cotabby is about to paint instead of
failing the stale-ghost check, tearing the session down, and leaking a real
Tab into the host (which used to move focus to the page's next control).
Fixed
- Preserve all earlier ports: full output-budget reservation (#851), partial
GPU/request Performance pane (#858), credential-field protection (#848),
opt-in double-tap acceptance (#840), and the cumulative insertion,
clipboard, BlockInput and privacy regressions fixed on Windows in v0.3.0–
v0.4.1.
Verification
- 319 unit tests locally (281 baseline + 38 new: 31 seam-guard, 3 Low Power
Mode, 2 rapid-Tab rig cases) and hosted Windows CI. - Two timing-sensitive pre-existing tests flaked once on hosted CI and passed
on rerun and deterministically in 30+ local runs; they are not related to
this change set and are unchanged from v0.4.1.
Known limits
- Physical keys, live-model suggestions, per-application accessibility, GPU
accuracy and the real energy-saver engagement path remain owner-verified;
CI uses synthetic input and a deterministic engine. The spell backend is
not registered on Windows yet, so the new leading/seam checks only act when
anISpellAssessoris injected. - Rejected captured keys are still not replayed; warnings make this visible
without logging content.
Assets
Cotabby-win-x64-v0.5.0.zip— self-contained folder build. Extract into a new folder; do not flattenruntimes.Cotabby-win-x64-v0.5.0.zip.sha256— verified checksum of the ZIP above.
SHA-256: 5eeae2d3ce53832147dd699a5031c94e8327b40a934c373c8a72ea8d17140fd1
Verification
- Windows CI on this commit runs the full test suite, the synthetic real-UI-Automation credential proof and a GPU counter/persistence smoke test.
- The published ZIP is extracted and every member is hashed against the packaged manifest before upload.
- Live model decoding, physical GPU readings, per-adapter behavior and browser/application credential coverage remain owner-verified.
- Inference stays local: no telemetry and no cloud completion. Do not share raw logs; they can contain typed text.
Cotabby for Windows v0.4.1
Cotabby for Windows v0.4.1
Tagged build from commit f5c6dbdd6691986c8f8834cddd16339871298553.
The v0.4.0 tag build was cancelled before publication when the final privacy
review found typed-character debug logging. v0.4.1 is the first published build
for this cumulative change set. No v0.4.0 release ZIP was published.
Added
- Complete the global, opt-in double-tap Tab acceptance port (#840): first Tab accepts a word/phrase, second distinct Tab within 300 ms accepts the remainder once. Backtick remains the default; Shift+Tab stays navigation. Serialized acceptance preserves spacing and handles repeats, delayed/failed insertion, focus changes and disposal. See scope and verification.
- Content-free application-log warnings for captured acceptance keys that cannot be inserted and are deliberately not replayed. No unsafe injection into an unknown foreground window.
- Actual Windows Settings dropdown/persistence and production text-inserter runtime regressions in both CI and the release workflow, in addition to nine synthetic hook/UIA cases.
Fixed
- Stop recording typed-character codes in key diagnostics, including credential fields. Older builds' local
C:\tmp\cotabby-live.logmay contain reconstructable keystrokes: remove that old log when upgrading; no logs are included in this release ZIP. - Prevent a retiring acceptance processor from draining a replacement queue started by a completion callback or concurrent keypress; queued recovery keys keep their own processor and spacing.
- Recheck field/process/credential ownership before the first overlay chunk, even when a focus-change notification has not arrived.
- Revalidate the actual focused UIA element and foreground process at production insertion dispatch; a stale target cannot intentionally direct text into the newly focused field.
- Keep input blocking, clipboard paste and unblocking on one STA thread instead of crossing async continuations, which could silently lose long completions or leave input blocked.
- Preserve non-text clipboard formats, restore an originally empty clipboard, and avoid replacing a clipboard changed by another application. If a format cannot be copied, refuse long insertion before modifying it.
- Respect SendInput's dispatched-event count rather than reporting success unconditionally. Finish cleanup after an irreversible dispatch even when cancellation arrives.
- Preserve all earlier ports: full output-budget reservation (#851), partial GPU/request Performance pane (#858), and credential-field protection (#848).
Known limits
- Rejected captured keys are not replayed; that press can be lost. Warnings make this visible without logging its content.
- Physical keys, live-model suggestions, per-application accessibility and GPU accuracy still require owner testing. CI uses real Windows hooks/UIA with synthetic input and a deterministic engine; it is not live-model or universal host parity proof.
Assets
Cotabby-win-x64-v0.4.1.zip— self-contained folder build. Extract into a new folder; do not flattenruntimes.Cotabby-win-x64-v0.4.1.zip.sha256— verified checksum of the ZIP above.
SHA-256: fa6964220f78e23c9cec4e2bd158879f88d24bb92e23964a0abaee1c210b6ab7
Verification
- Windows CI on this commit runs the full test suite, the synthetic real-UI-Automation credential proof and a GPU counter/persistence smoke test.
- The published ZIP is extracted and every member is hashed against the packaged manifest before upload.
- Live model decoding, physical GPU readings, per-adapter behavior and browser/application credential coverage remain owner-verified.
- Inference stays local: no telemetry and no cloud completion. Do not share raw logs; they can contain typed text.
Cotabby for Windows v0.3.1-doubletap-test — double-tap Tab acceptance (test build)
Cotabby for Windows — double-tap Tab acceptance (test build)
This is a test build for owner validation, not a stable release. It is a
prerelease and does not replace v0.3.0 as the latest stable download.
Source
- Commit:
39a300ca8b82e0a42a9d061ae4bcb1b8782079ad(branchcodex/upstream-double-tap, draft PR #4) - Ports upstream FuJacob/cotabby #840 double-tap acceptance.
- Zip sha256:
02425a7573ed82c1dc7d1de10651c1b1b79f73ea89243ad2ca83e3e59a68a3fc
What is new
- Opt-in double-tap Tab: Settings → Shortcuts → Accept Entire Suggestion → Double-tap Tab.
The first Tab accepts a word or phrase immediately; a second distinct Tab within 300 ms
accepts the remainder of the same suggestion, once. Repeats stay word-by-word, and moving
the pair is retired by any intervening key, session change, focus change or settings change. - Shift+Tab stays navigation (upstream matches the accept key by keycode plus the whole
modifier set), so a reverse-navigation key press reaches the app instead of being eaten. - Acceptance is serialized and honest. A queued second press is resolved against the live
suggestion instead of being discarded; the 300 ms window is measured from the physical key
events; a word boundary is derived from confirmed insertions rather than a lagging
accessibility read; and an insertion that landed but could not be committed is reported as
such instead of as a refusal. - Failed insertions do not advance or arm the suggestion, the acceptance queue recovers
from a processor fault, and disposal completes every captured key exactly once. - Field identity now uses the UI Automation runtime id, and a field whose provider exposes
none is treated as unproven rather than unowned, so double-tap still works there.
Verified
- 274 portable tests pass; Windows CI run
38570074952 on this exact
commit passed tests, compilation and packaging. - Windows CI also runs the real keyboard hook and UI Automation against WPF fixtures: 9/9 cases
(double tap, held key, unowned Tab, Shift+Tab, cross-process and same-process focus change, held
dispatcher, stale snapshot). - Credential-field privacy proof (real UIA) and native CPU runtime load passed; every packaged byte
is hashed inPACKAGE-MANIFEST.json, and the extracted ZIP was verified member by member.
About this publication
- Published as a prerelease from the branch commit above (draft PR #4), not from
main; it does not
replace v0.3.0 as the latest stable download. No merge and no stable tag were performed. - The repository's tag-triggered Release Windows build workflow is intentionally not used for this
test tag: it requires theVERSIONfile to equal the tag, which a-testtag cannot satisfy. The asset
here is the artifact of the green verification run on this exact commit, byte-verified before upload.
Known limits — please read before testing
- A Tab captured by the accept path whose insertion is then refused is NOT replayed. That key
press is reported, not re-delivered: the app may miss it. This is deliberate; a safe replay path
does not exist yet. - The synthetic hook proof uses a fixture-directed insertion adapter and injected keys. It is not
proof for the productionSendInputinserter or for physically held keys. - Live model suggestions, GPU behaviour and real host applications are not verified by
automation and need owner testing. - Global opt-in on the Tab key only: no per-app shortcut overrides, no typing-history collection.
Selecting Double-tap Tab replaces the previous full-accept key choice rather than keeping it dormant.
How to test
- Extract the complete ZIP into a new folder and keep
runtimes\win-x64besideCotabby.exe. - Run
Cotabby.exeas a standard user (no .NET install needed); your existing settings and model
cache are used. - Settings → Shortcuts → choose Double-tap Tab, then in a normal text field try: one Tab, two
quick Tabs, holding Tab, two slow Tabs, and Shift+Tab. - Check
C:\tmp\cotabby-live.logfor model load and a constrained decode. Do not share the raw log —
it can contain your typed text.
Cotabby for Windows v0.3.0
Cotabby for Windows v0.3.0
Tagged build from commit c0a2522d530c84e8905c4924ce8e824720dfcd99.
Added
-
Port upstream sign-in and verification-field protection (#848):
Cotabby leaves email, username, phone, one-time-code, card and password inputs
alone. The Windows tracker decides from field metadata — password flag,
whole-word accessible label (Name,HelpText,LabeledBy.Name) and bounded
automation identifier — before reading any field text, and returns a
snapshot with no text for a recognized field. A neutral single-line field may be
read once for the address-shape fallback; rejected text never travels further.
The gate applies to every caller: the request path, the trigger entry point (the
post-exhaustion continuation previously bypassed the primary check), the
accept/insert path, and the emoji trigger and commit. -
Port upstream GPU usage in the Performance pane (#858)
as a partial Windows Performance pane (no CPU/RAM graphs): live Cotabby GPU
share, busiest-engine machine GPU utilization and GPU memory read from the
GPU Engine/GPU Adapter Memoryperformance counters, plus an opt-in log of
per-request latency (timestamp, model, elapsed; newest 200 retained, off by
default). Every GPU value is optional, so an unavailable counter set shows "no
data" rather than a misleading zero, and sampling runs only while the pane is
visible. Latency rows are recorded only for generations actually shown to the
user. -
tabby-2-plus: Qwen3.5 4B Base Q4_K_M for general-purpose autocomplete. -
tabby-2-code: Qwen3.5 9B Coder Q4_K_S for programming-focused autocomplete. -
Project provenance, change boundaries, and AI-agent handoff documentation.
-
UPSTREAM_PORTING_PLAN.md: staged plan and copy-paste prompt for selectively
porting compatible improvements from the original Cotabby project.
Changed
- Port upstream full output-budget reservation (#851):
reserve at least 50 output tokens, the full larger request allowance, and a
64-token margin before rendering. Windows uses the loaded model's actual
context size and tokenizer, including BOS and serialized separators. - Trim low-priority prompt sections before caret text; preserve the caret tail
without splitting UTF-16 surrogate pairs. Exhausted budgets produce no prompt. - FIM prompt capacity now follows the loaded context rather than a fixed 4096.
- GPU readouts retain consecutive raw counter samples instead of discarding rate
baselines, keep adapter/engine identity, and report unknown rather than a
fabricated zero; a per-engine counter reset can no longer be hidden by growth
on another engine. - The release workflow verifies provenance, the full package manifest, the
required native layout and the absence of model/log/secret files, and publishes
a SHA-256 checksum beside the ZIP. The app reports its version fromVERSION. - Windows CI additionally runs a synthetic real-UI-Automation credential proof
(password, username, verification-code and card fields must be refused with zero
payload reads) and a GPU counter/persistence smoke test.
Maintained
- Existing nano, mini, Gemma E2B, and Gemma E4B model choices.
- Folder-based self-contained Windows release packaging with native LLamaSharp
runtime files beside the executable. - Inference stays local: no telemetry, no cloud completion, no typing-history
storage. Upstream's typing-history feature (#841) is deliberately not ported.
Known limits
- GPU accuracy, per-adapter behavior and minimize/restore on real hardware are
owner-verified only. Hosted CI proves API compatibility, packaging and the
synthetic credential guards — not live readings or live autocomplete. - Browser/application accessibility metadata varies; credential recognition is
metadata-based and is not complete DOM/autofill parity. - The local live log records rendered suggestions, not typed text, and should not
be shared.
Assets
Cotabby-win-x64-v0.3.0.zip— self-contained folder build. Extract into a new folder; do not flattenruntimes.Cotabby-win-x64-v0.3.0.zip.sha256— verified checksum of the ZIP above.
SHA-256: 688a06c2d87d9fb1c041832980f16c4e8e996706fb8a28e3995dd89b5f3756f2
Verification
- Windows CI on this commit runs the full test suite, the synthetic real-UI-Automation credential proof and a GPU counter/persistence smoke test.
- The published ZIP is extracted and every member is hashed against the packaged manifest before upload.
- Live model decoding, physical GPU readings, per-adapter behavior and browser/application credential coverage remain owner-verified.
- Inference stays local: no telemetry and no cloud completion. Do not share raw logs; they can contain typed text.
Cotabby for Windows v0.2.0
Adds Qwen3.5 4B Base as the general-purpose default and Qwen3.5 9B Coder as a programming-focused option. Includes project provenance, changelog, OpenSpec notes, and AGENTS.md handoff instructions. The Windows release workflow publishes a folder-based self-contained ZIP with the LLamaSharp native runtime layout.
Full Changelog: v0.1.0...v0.2.0
Cotabby for Windows v0.1.0
Self-contained Windows x64 release. Extract the complete ZIP and run Cotabby.exe. Keep the runtimes\win-x64 folder beside the executable so LLamaSharp can load its native CPU/Vulkan libraries.
Full Changelog: https://github.com/pupontech/cotabby-windows/commits/v0.1.0
Full Changelog: https://github.com/pupontech/cotabby-windows/commits/v0.1.0