Skip to content

Releases: pupontech/cotabby-windows

Cotabby for Windows v0.5.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 14:17
ad95b52

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 flatten runtimes.
  • 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

Choose a tag to compare

@github-actions github-actions released this 15 Oct 19:02
8ceeea7

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-generation CompletionSeamGuard now 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 via GetSystemPowerStatus, 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
    an ISpellAssessor is 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 flatten runtimes.
  • 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

Choose a tag to compare

@github-actions github-actions released this 15 Oct 12:50
f5c6dbd

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.log may 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 flatten runtimes.
  • 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)

Choose a tag to compare

@pupontech pupontech released this 14 Oct 13:18

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 (branch codex/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 in PACKAGE-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 the VERSION file to equal the tag, which a -test tag 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 production SendInput inserter 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

  1. Extract the complete ZIP into a new folder and keep runtimes\win-x64 beside Cotabby.exe.
  2. Run Cotabby.exe as a standard user (no .NET install needed); your existing settings and model
    cache are used.
  3. 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.
  4. Check C:\tmp\cotabby-live.log for model load and a constrained decode. Do not share the raw log —
    it can contain your typed text.

Cotabby for Windows v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 14:25

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 Memory performance 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 from VERSION.
  • 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 flatten runtimes.
  • 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

Choose a tag to compare

@pupontech pupontech released this 11 Oct 10:05

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

Choose a tag to compare

@pupontech pupontech released this 10 Oct 17:47

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