Skip to content

Releases: yjid/kensaku

Kensaku v1.0.15

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:30

Fixed

  • Indra OCR crawl stall & lock contention: Resolved an indexing freeze that could stall crawls at 97%+ when processing large batches of images with Indra OCR.
    • Eliminated high-frequency \EmptyWorkingSet\ memory trims on Windows that were acquiring the kernel virtual memory manager lock after every single extracted file, rate-limiting them to at most once every 5 seconds.
    • Replaced the serialized mutex-guarded channel receiver in \SlotPool\ with a condition variable (\Condvar) and permit count, preventing caller thread starvation during backpressure.
    • Replaced the blocking lock convoy across parallel Indra OCR engines with non-blocking \ ry_lock()\ polling and adaptive thread yields, ensuring idle engines are immediately utilized.
    • Increased single-file OCR extraction timeout budget from 8 s to 45 s for images and scanned PDFs, avoiding spurious timeouts and orphaned tasks on dense high-resolution screenshots.
    • Replaced parallel slice operations in skew detection with sequential row processing, eliminating nested thread pool overhead on preview thumbnails.
    • Reduced indexing progress update interval from every 25 files to every 5 files, providing smooth and responsive UI progress feedback during compute-heavy document processing.

Full Changelog: v1.0.14...v1.0.15

Kensaku v1.0.14

Choose a tag to compare

@yjid yjid released this 04 Nov 18:16

[1.0.14] — 2026-11-04

Added

  • Seamless in-app updater: Updates no longer require manually navigating GitHub release pages. When an update is detected, an update badge appears on the status bar and in Settings → About, showing the release notes, asset size, and download progress bar. Users can download and install updates with a single click; the installer executes detached and Kensaku cleanly shuts down to prevent process lock conflicts.
  • Configurable auto-update checks: Background update checks (once every 12 hours) are enabled by default and can be toggled on/off in Settings → About.
  • One-click GitHub issue reporting: Health check failures, OCR warnings, and About settings now include a direct "Report Issue" action that copies complete system and index diagnostics to the clipboard and opens a pre-filled GitHub issue in the default browser.
  • Automated ONNX Runtime build staging: Development and test builds automatically stage the required ONNX Runtime dynamic library (onnxruntime.dll / libonnxruntime.so / libonnxruntime.dylib) to target directories via build.rs.

Fixed

  • Indra OCR Cyrillic recall (#93): Indra OCR now falls back to the comprehensive base recognizer (rec.onnx + vocabulary) when specialized script models return empty or low-confidence results, restoring 100% recall for Cyrillic and mixed-script screenshots.
  • ONNX Runtime anti-hijacking: The dynamic library loader in ocr.rs now verifies explicit paths (deps/, debug/, src-tauri/, config/model folders) and eliminates the bare library fallback on Windows that was silently loading older, incompatible copies from C:\Windows\System32\onnxruntime.dll.
  • Transparent OCR error reporting: self_test() and text extraction now return explicit OcrOutcome::Unavailable(reason) and expose detailed diagnostics rather than masking failures as silent blank text (NoText).
  • Linux AppImage system Tesseract isolation (#93): Sanitized the execution environment when invoking host system /usr/bin/tesseract inside AppImages by clearing APPDIR and restoring LD_LIBRARY_PATH_ORIG, preventing crashes caused by linking against bundled AppImage libraries.
  • Doctor health auditing: Added active auditing of indra_status() to the Doctor suite whenever Indra is configured as the active OCR engine.

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