Skip to content

Releases: yjid/kensaku

Kensaku v1.0.12

Choose a tag to compare

@github-actions github-actions released this 02 Nov 22:49

Search inside documents, code, and even screenshots — instantly and locally.

What's New in v1.0.12

Proximity Search (near[x])

  • Match terms that appear within a specific distance: mouse near[5] button finds documents where the terms sit within 5 words of each other.
  • Supports chaining (a near[3] b near[2] c) and the filter syntax near:5. Distances are safely clamped to 100.

Portable Mode & Data Directory Override (#68)

  • Windows Portable Release (.zip): A self-contained portable distribution (kensaku-portable-1.0.12-x64.zip) is now available alongside installers. Keeps all config, index, metadata, and OCR state in a local data\ directory next to the executable.
  • KENSAKU_DATA_DIR: Environment variable override supported across platforms for headless, containerized, Nix, and isolated setups.

Multilingual & Multi-Format Search Support

  • Added comprehensive documentation (docs/LANGUAGES.md) covering CJK (Chinese, Japanese, Korean) unigram + bigram segmentation, OCR multi-script routing (Latin, Hanzi, Hangul, Arabic, Cyrillic), and 50+ programming/data language extensions.

Fixes & Reliability

  • macOS Sequoia Permissions Loop (#73): Bundled Info.plist with explicit TCC privacy usage descriptions (NSDocumentsFolderUsageDescription, etc.) and hardened thumbnail preview fallback to prevent permission prompts when summoning Kensaku via Alt+Space.
  • Theme First-Paint Flicker (#72): Pre-paint theme resolution in index.html eliminates dark-mode flashes on light OS themes.
  • Office XML Entities: Decoded XML entity references (&, <, >, ", ') across DOCX, PPTX, XLSX, EPUB, and ODT documents.
  • Excel Cell Text: Fixed cell text accumulation across split <t> tags in shared strings.
  • PDF Extraction Budget: Guaranteed character boundary slicing to prevent UTF-8 panic on single-page PDFs.
  • Ignore Engine Rule Deduplication: Properly merges rules when .gitignore and .kensakuignore coexist in the same folder.

Windows on ARM (added post-release)

  • Native ARM64 builds are now part of this release: Kensaku_1.0.12_arm64_en-US.msi, kensaku_1.0.12_arm64-setup.exe, kensaku-portable-1.0.12-arm64.zip and kensaku-cli-windows-aarch64.exe. Built from the same source as the x64 assets, staged against Microsoft's SHA-256-pinned onnxruntime-win-arm64-1.31.0.zip, so PP-OCR loads natively on Snapdragon laptops. SHA256SUMS covers every asset including these.

Full Changelog: v1.0.11...v1.0.12

Kensaku v1.0.11

Choose a tag to compare

@github-actions github-actions released this 30 Oct 04:56

Kensaku 1.0.11

Search inside documents, code, and even screenshots — instantly and locally.

New: Indra OCR engine

  • A third OCR engine, ported natively to Rust on the same ONNX Runtime as
    PP-OCR: orientation and deskew, script routing to four CTC recognizers,
    RTL reordering, and Hangul composition.
  • Text matches the Python reference at 97–100% on the sample pages.
  • The ~27 MB model pack (v1.1.0, SHA-256-pinned) downloads only if you pick
    Indra; it falls back to PP-OCR, then Tesseract. Doctor, Settings, and the
    setup wizard report engine availability.
  • PP-OCR remains the default engine. PP-OCR and Indra now share one ONNX
    Runtime per process.

New: launcher-only setup wizard

  • Folder, OCR-quality, and shortcut steps. You cannot proceed past the OCR
    step until the selected engine is ready; pack downloads show progress and a
    verifying phase.
  • Closing the window just hides Kensaku — it keeps running in your tray.

Improved

  • Existing model artifacts are checksum-verified at startup instead of
    trusted by filename; corrupt files are re-downloaded automatically.
  • The initial scan shows "Verifying files" instead of a stuck 0%.

Fixed

  • No more scans of your home directory before setup finishes. A fresh or
    corrupt config once made the mid-setup OCR-pack download trigger a crawl of
    the default roots (your entire home folder, including AppData, MTP phone
    mounts, and network locations). The indexer now refuses to scan anything
    until you have chosen your folders, for the GUI and the daemon alike.
  • Watcher reliability: fixed a regression that made four watcher tests
    fail on Windows since 1.0.10, exposing that the live-update path under
    AppData-pruned roots was silently treated as excluded.
  • Agent CLI builds again: the CLI stopped compiling after the vendored
    OCR crate landed (a Cargo patch-table scoping issue), which is what blocked
    the earlier 1.0.11 attempt. The daemon rescan command now also honors the
    folders you picked in setup when the daemon was already running.

Credits

  • Models: PaddleOCR PP-OCRv6 tiny by PaddlePaddle (Apache-2.0).
  • Indra weights by Datalab (indra-ocr),
    under a modified OpenRAIL-M license; SHA-256-pinned pack.
  • ONNX wrapper: paddleocr_rs_onnx (MIT).

What's Changed

  • feat(ocr): add Indra OCR as a third engine by @pg0 in #66

New Contributors

  • @pg0 made their first contribution in #66

Full Changelog: v1.0.10...v1.0.11

Kensaku 1.0.10

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:19
b166a85

Kensaku 1.0.10. OCR that actually works, better defaults, and Windows fixes.

OCR, fixed end to end (#60)

  • Searching for a word inside a screenshot finds it. PP-OCR glued words together ("Open settings" became "Opensettings"), so word search never matched.
  • Scanned PDFs are OCR'd. JPEG, Flate and black-and-white scans were skipped silently before.
  • PP-OCR is now the default engine and works on Windows, macOS (Apple silicon) and Linux. The installers include its runtime. Tesseract is the automatic fallback, for example on Intel Macs.
  • Images that couldn't be OCR'd are retried instead of staying empty forever. Downloading the PP-OCR pack or switching engines re-reads images.
  • Settings shows the truth. "Verified" means PP-OCR read a test image correctly. If it can't run, Settings says why and which engine is reading instead.
  • Your existing index repairs itself. On first launch, images and PDFs are re-read once.

Better defaults (existing settings you changed are kept)

  • Videos, music, archives, fonts and design files are findable by name. Their contents are not read.
  • Full-text search for big documents: up to 100 MB files and 4 MB of text (was 20 MB / 1 MB).
  • Setup pre-selects Documents, Desktop, Downloads and Pictures, and the first run matches your system's light or dark mode.
  • Indexing runs at background priority. ~/Library (macOS) and AppData (Windows) are skipped when you index your home folder.

Also

  • Windows: in:"C:\Users\me\My Docs" works. Backslashes were being dropped (#61).
  • Windows tray: a click shows Open/Quit and a double-click opens search. Before, a click opened and instantly closed the window (#62).
  • Setup can be minimized while it indexes (#62).
  • "Rebuild index" works in place instead of restarting the app (#57).
  • New: content-depth settings and an optional OCR image-size cap (#57). Health and update indicators in the status bar.

Verified on

Tests and clippy pass on Linux. Real PP-OCR models read 104/104 test lines and pass an image plus scanned-PDF test on Linux, macOS and Windows. Installers and the CLI build on all three.

Known limitations

  • Builds are not yet code-signed.
  • PP-OCR needs Apple silicon on Macs (Intel Macs use Tesseract).
  • JPEG 2000, fax and JBIG2 scans aren't decoded yet.

Kensaku 1.0.9

Choose a tag to compare

@github-actions github-actions released this 29 Oct 07:28

Kensaku 1.0.9 - bugfix release.

Fixed

  • macOS: no more repeated folder-access prompts during indexing. Tesseract and pdftoppm now read files through stdin instead of opening them themselves, so macOS stops asking for permission once per file. Linux and Windows are unchanged. (#51, fixes #50)
  • macOS: Kensaku no longer indexes its own storage. On macOS the index lives in ~/Library/Application Support/kensaku, which isn't a hidden folder, so a home-folder crawl walked Kensaku's own index, database and thumbnails. Both the crawler and the live file watcher now skip it on every platform. Leftover entries are cleaned up automatically on the next crawl. (#53, fixes #52)
  • macOS: Eco mode now actually slows down under load. It reads the system load average like Linux does, instead of never throttling. (#53)
  • Windows: the accurate OCR engine works out of the box. Windows can include an older, incompatible onnxruntime.dll in System32, which made accurate OCR silently fall back to Tesseract. The installers now ship ONNX Runtime 1.31.0 next to kensaku.exe, and Kensaku loads that copy first. (#55, #56, fixes #54. Thanks @shavyamChitranshi1)

Verified on

Tests and clippy pass on Linux, macOS and Windows. Bundles and the CLI build on all three.

Known limitations (unchanged)

  • Builds are not yet code-signed.
  • Auto-updater not wired up (use Settings > About > Check for updates).
  • The standalone CLI daemon on Windows still uses Tesseract for OCR (ONNX Runtime is bundled with the desktop app only).
  • Thumbnails: image files only.
  • Visual search: beta, not in results yet.

Kensaku 1.0.8

Choose a tag to compare

@yjid yjid released this 28 Oct 23:42

Kensaku 1.0.8 - bugfix release.

Fixed

  • Console windows no longer flash on the desktop during index rebuild on Windows. Tesseract (OCR), pdftoppm (PDF thumbnails), and external extractors are console applications; spawning them without CREATE_NO_WINDOW flashed a console window per file. Added CREATE_NO_WINDOW to all child-process spawn sites. (Reported by a user on Win 11.)
  • "Check for updates" button added to Settings ? About (was hardcoded "1.0.0", now shows real version and opens the latest release page).

Also

  • README restored to polished version with hero and dashboard screenshots.
  • Added roadmap section with discussion links for feature requests.
  • Marketing launch kit and growth plan prepared.

Known limitations (unchanged)

  • Builds are not yet code-signed.
  • Auto-updater not wired up (manual check button added).
  • OCR: Tesseract (default) + optional PP-OCRv6 pack.
  • Thumbnails: image files only.
  • Visual search: beta, not in results yet.

Kensaku 1.0.7

Choose a tag to compare

@yjid yjid released this 28 Oct 19:50

A persistence bugfix release, one day after 1.0.6.

Fixed

  • The chosen theme (light / dark) now survives closing and reopening the app. The launcher rebuilds its webview on every summon, and the frontend was restoring the theme from localStorage - which does not survive that - instead of the durable config file. The persisted config is now the single source of truth, theme picks update the shared config copy so a later Settings save can no longer write an old theme back, and Settings shows the correct active swatch after a remount.

Also

  • README refreshed: a differentiators table against filename-only search tools, measured Windows numbers (9 MB installer, about 20 MB of memory idle in the tray), and a contributing section with concrete first steps.

Kensaku 1.0.6

Choose a tag to compare

@yjid yjid released this 28 Oct 19:28

Kensaku 1.0.6 - the Windows polish release: true launcher behavior, a calmer Apple-style UI, and a home screen that shows what you actually opened.

Home & recents

  • Recents now rank by what you actually opened through Kensaku (persisted opens, falling back to modified time), with "Opened 5m ago" labels and a deterministic order that no longer reshuffles across refetches
  • Home never renders dead tiles under a restored query; Tab visibly walks the recents and scrolls to follow past the fold

Search & results

  • Results cards match the home tiles: 16:10, softened selection ring, smaller and denser grid
  • Borderless Spotlight-style search field, tighter spacing, Apple-style radius scale with continuous (squircle) corners
  • Removed the flickering search progress bar; the result count stays visible while searching

Windows platform

  • True launcher behavior: starts hidden to tray, Alt+Space to summon, no ghost-frame flash, webview cleanup via the process API
  • Start-at-sign-in runs in the background with no console window
  • Real memory (RSS) reporting in Stats
  • App icon embedded in the installer and uninstaller; NSIS uninstall is a full cleanup

OCR & setup

  • Auto-switches to the PP-OCRv6 pack when Tesseract is missing; setup mirrors the real engine state
  • Setup wizard survives losing focus; folder picker with validated manual entry

Kensaku v1.0.5

Choose a tag to compare

@github-actions github-actions released this 28 Oct 06:39

What's Changed

  • Fix: theme choice never saves in 1.0.4 by @ren-at-gochi-s-workspace[bot] in #31
  • Fix red CI on master (clippy: items after a test module) by @ren-at-gochi-s-workspace[bot] in #32

New Contributors

  • @ren-at-gochi-s-workspace[bot] made their first contribution in #31

Full Changelog: v1.0.4...v1.0.5

Kensaku v1.0.3

Choose a tag to compare

@github-actions github-actions released this 27 Oct 17:25

Changelog

All notable changes to Kensaku. Format: Keep a Changelog;
versioning: SemVer.

[1.0.3] — 2026-10-27

Changed

  • Scope: Ask-a-file, the local model query refinement, kensaku-cli ask, and video previews are removed.
  • Quick shortcut: Settings label, Wayland note, and kensaku --toggle for desktop keys.
  • Keyboard: Cmd/Ctrl+C copies the selected path, Cmd/Ctrl+I opens details.
  • Time travel: "last Tuesday" and "N days ago" become time filters.
  • README: speed-first hero, measured performance section, new hero image.

[1.0.2] — 2026-10-27

Added

  • Grid or list results, chosen in the results bar and in Settings.
  • Sort dropdown: Best match, Newest, Oldest, Largest, Name.
  • Previews for PDFs (first page) and images, shown on cards and in Quick Look (Space).
  • Recent files shown as a list on the home screen.
  • Save-search and layout controls on the same row as the category filters.
  • Tesseract OCR is found inside the app first, before PATH and system installs.

Changed

  • Thumbnails and previews use one 240px size.
  • Filters, sort, and layout share one pill style.
  • Setup folder step: clearer selection, neutral checkboxes, centered layout.
  • Dark-mode borders use the theme color.
  • Settings labels: "Meaning search" and "Local model" replace the AI wording.

Fixed

  • Release workflow stages only installable files and checks that artifacts arrived.

[1.0.1] — 2026-10-27

Changed

  • New UI: neutral light and dark themes with no accent color, the Mac system
    font, and Apple-style motion curves.
  • Header is search and Settings only.
  • Results are a grid of square cards with infinite scroll. Only what is on
    screen is rendered.
  • Hover shows a slim info bar with size, image dimensions, and age.
  • Sort is an icon row. Right-click a result for Open, Show in folder, Copy
    path, and Details.
  • Onboarding starts with no folders selected.

Added

  • Show thumbnails setting (Settings → Search), on by default.
  • Thumbnails are sent to the UI as data URLs, so they render on every platform.

Fixed

  • Infinite scroll no longer repeats the same page request.
  • Thumbnails are generated for every visible image, not only the first 30.

[1.0.0] — 2026-10-27

Kensaku 1.0 is the first release with the full agent surface, optional local
LLM, the search-quality pass, and a cleaned public documentation set. The
desktop app, daemon, CLI, and MCP/HTTP transports are read-only by default and
local-first.

Added

  • Agent surface v2: find_symbol (tree-sitter for Rust, Python, JavaScript,
    TypeScript), .gitignore/.cursorignore parity at index time
    (include_ignored opts out), keyset cursors past the 10k exhaustive cap,
    and agent_scoped_roots read-only scoping with resolved-path containment.
  • Loopback HTTP/SSE transport: kensaku-cli serve exposes the MCP tools on
    127.0.0.1 with a bearer token, JSON or SSE responses, and read-only
    /health and /search endpoints. reindex is never available there.
  • One-click agent connect for Claude Desktop, Claude Code, and Cursor via
    Settings → Agents (atomic merge, .bak backup), mirrored by
    kensaku-cli connect <client> [--write].
  • Optional local LLM (Ollama / LM Studio / OpenAI-compatible; off by default):
    a query compiler that validates filter keys and values before showing chips,
    and /ask with path+line citations and no-retrieval-no-answer semantics.
    Non-loopback endpoints require explicit consent and show a cloud indicator in
    the app; the default remains fully local.
  • facet_bench and a KENSAKU_SEARCH_BENCH=1 mode for mem_probe, plus the
    golden-query integration set in CI.

Changed

  • Search performance: interned extensions (no per-entry String), content
    schema v3 with indexed ext and fast size filter pushdown, allocation-light
    rayon-folded facets (release p50 3.1 ms at 100k, 17.3 ms at 1M), parallel
    metadata materialization, a path index only for trie queries, and parallel
    fuzzy scoring. Full search_response_fast p50 is 207 ms at 1M and 24 ms at
    100k; the fuzzy filename tier is 3.6–5.2 ms. Content indexes rebuild once to
    v3 and preserve index.legacy-*.
  • The Tantivy writer stays single-threaded with a 16 MB arena after measuring
    the 1M trade-off (2 threads were 1.9× faster but used ~47 MB more peak RSS).
  • Doctor now checks free disk space alongside its existing per-root
    readability, database, index, watcher, extractor, model, OCR, and version
    checks. The reset marker/restart path has an automated smoke test.
  • RELEASING.md now documents the draft-release workflow, which uploads every
    bundle, CLI binary, and SHA256SUMS to a draft GitHub release on tag push.
  • Project version is 1.0.0 in the app, CLI, Tauri config, and docs.

Fixed

  • The ONNX runtime loads dynamically, so older glibc toolchains link again.
    Accurate OCR probes the runtime, contains loader/run panics, reports the
    engine unavailable when the library is missing, and falls back to Tesseract
    instead of losing the file.
  • Agent root scoping resolves .., . and symlinks before comparison;
    out-of-scope reads are rejected.
  • One-click connect uses the platform Claude config directory, detects
    project-scoped Claude Code entries, and writes atomically with full-name
    .bak backups.
  • The query compiler rejects invalid filter values instead of silently
    downgrading them to text terms.
  • PP-OCRv6 is compiled into normal builds; Setup/Settings present Tesseract and
    PP-OCRv6 as an either/or choice, and the unsupported native-OCR option is
    disabled rather than faked.
  • The fake visual/native paths from the automated pass were removed. Visual
    search remains a Settings → Beta model-download experiment and is not wired
    into search.

Release notes

  • Bundles and the CLI are unsigned. See INSTALL.md for how to verify a
    download and what the OS warnings mean. Signing/notarization and the
    auto-updater are follow-ups after 1.0.
  • Linux: .deb, .rpm, .AppImage; macOS: universal .dmg; Windows: .msi
    and NSIS .exe; plus kensaku-cli for each platform and SHA256SUMS.

[0.3.3] — 2026-10-26

Fixed

  • Images and PDFs were not indexed for existing installs. Early UI configs
    stored exclusions with a leading dot (.jpg, .pdf), which the v1 migration
    did not normalize, so those files were skipped forever. A v2 migration strips
    dotted document/image extensions and bumps the config version. Restart after
    upgrading; the startup crawl picks the files up.
  • Thumbnails were blank. The Tauri asset scope used $APPCONFIG, which is
    <config>/<identifier>, while thumbs live at <config>/kensaku/thumbs. The
    scope now starts with $CONFIG/kensaku/thumbs/**.
  • Search took 5–9 s. Snippets called the full extractor (PDF/OCR) inside the
    query. They now read plain text directly or a cached extraction only; a second
    batched request fills them after the results paint. Measured: 3.86 s → 0.14 s.
  • The metadata DB was 310 MB for 382 rows. Startup now vacuums when free
    pages exceed 20%, caps the WAL at 64 MB, and checkpoints after crawls
    (310 MB → 604 KB).
  • Image previews no longer run OCR; previews are debounced and sequenced.
  • content_docs reports the real Tantivy document count.

Changed

  • Release pipeline builds bundles and CLI binaries as workflow artifacts;
    publishing is done with gh (see docs/RELEASING.md).
  • Packaging: bench is now a cargo example and kensaku-cli is a separate
    crate, so Tauri bundles exactly one binary. This fixes the macOS universal
    build failing while trying to copy the extra binaries.

[0.3.1] — 2026-10-26

Fixed

  • OCR could not be turned on. The Settings switch was a disabled placeholder
    and ocr_enabled was never read by the backend. The switch now persists to
    config, extraction is gated on it, and changing it re-scans only images.
  • OCR silently produced nothing when tesseract had no language data. Settings
    now reports engine/language status, can download eng.traineddata (~4 MB) into
    Kensaku's own directory, and shows platform install commands when the engine is
    missing. Doctor gained an OCR check.

Changed

  • content_pending column lets a settings change re-process only the affected
    files; pending images with no extractable text have stale documents removed.

[0.3.0] — 2026-10-26

The open-source launch. Seven focused changesets on top of v0.2.0.

Added

  • Agent surface. kensaku-cli with search, state, and mcp; an MCP stdio
    server exposing search, read_snippet, and index_state over the same
    read-only index. Token-budgeted snippets, ranked and exhaustive modes, path/ext/
    lookback filters. See docs/AGENTS.md.
  • Real static embeddings. Manual safetensors (F32/F16) + BERT WordPiece loader
    for potion-base-8M, loaded once via a global registry; automatic re-embed when
    the model id changes. Hashing estimator remains the fallback.
  • Image support. Lazy cached thumbnails (320 px JPEG), dimensions, 64-bit dHash,
    perceptual near-duplicate groups merged into find_duplicates, thumbnail-forward
    results and preview.
  • Query semantics. re: regex execution, true name:/content: field scoping
    in BM25, mode:exhaustive, and a semantic candidate prefilter.
  • Robustness. Single-instance lock, atomic config writes with corrupt-file
    backup, unavailable-root preservation, 8-second extraction timeout on a bounded
    pool, directory-rename subtree rewrite, Windows cloud-placeholder guard.
  • Launch plumbing. Start at login, rotating local crash log (256 KiB) with a
    Doctor check, unsigned multi-OS draft release workflow, CLI artifacts.
  • Tests and CI. 77 Rust tests (parser, config migration, extraction, fuzzy
    relevance, ranking, MCP/CLI, images, crash log), clippy -D warnings, web and
    rust workflows, benchmark methodology.

Changed

  • Ranking n...
Read more

Kensaku v1.0.2

Choose a tag to compare

@github-actions github-actions released this 27 Oct 16:50

What's Changed

  • UI polish: thumbnail cards, shared controls, one type and radius scale by @yjid in #23
  • Release 1.0.2 by @yjid in #25

Full Changelog: v1.0.1...v1.0.2