Skip to content

Releases: nnemirovsky/grepogram

v0.3.0

Choose a tag to compare

@nnemirovsky nnemirovsky released this 03 Oct 15:29
dd88eb4

New Features

  • Claude Code plugin: install with /plugin marketplace add nnemirovsky/grepogram and /plugin install grepogram@grepogram, then run /grepogram:setup. It adds search and research skills that drive the CLI and a hook that asks before any consent-confirming command #11 @nnemirovsky
  • Sign in several Telegram accounts at once, and opt-in research that finds chats beyond the indexed ones and joins them only with your approval #8 @nnemirovsky

Improvements

Upgrading
index.db migrates in place from schema 6 to 9 on first open, and session.session becomes the default account. v0.2.0 cannot open the migrated index, so don't downgrade.

v0.2.0

Choose a tag to compare

@nnemirovsky nnemirovsky released this 06 Sep 12:28
d972557

New Features

  • Photo OCR through macOS Vision — text in a photographed announcement, price list or screenshot is read locally and becomes searchable, in Russian, English and Turkish. Needs the media extra; Russian recognition needs macOS 15.
  • PDF and DOCX text extraction through the same pass.
  • grepogram extract — a bounded, resumable pass that reads media after a sync, never inside one, so a slow OCR or a large PDF cannot eat a sync's budget. Media this build cannot read is parked without a single network request.
  • Reactions as a ranking signal — a bounded bonus that reorders near-ties without letting a popular message outrank a relevant one. search.reaction_weight = 0 disables it.
  • grepogram import <tdesktop export dir> — index a Telegram Desktop export of a chat the account can no longer open.
  • sources prune — drop chats that have left an indexed folder.
  • grepogram prune-deleted — a resumable sweep that removes messages deleted in Telegram.
  • PyPI publishing, behind a repository variable and trusted publishing (no API token).

Improvements

  • units.window_max_chars is now a real ceiling. It used to be a floor — a window closed only after passing the cap — so 15.8% of windows overflowed the embedder's 512-token limit and their tails were never vectorised. Existing indexes are re-cut once, automatically.
  • Deletions are noticed during an ordinary sync, not only by the explicit sweep.
  • The one-time re-cut runs a bounded number of whole chats per sync, each in its own transaction and resumable through per-chat markers, so search keeps answering while it works.
  • thread and context show extracted media text, and a chat can be named by its import:<slug> id wherever a chat spec is accepted.

Bug Fixes

  • grepogram extract resolved no chat at all on a real Telegram account: the client's entity cache starts empty by design and the two new by-id passes never warmed it. Found only by running against a real account — 1,757 tests missed it because the test client resolved any id, which it no longer does.
  • A search hit for an OCR'd photo linked to the wrong message, because extracted text never reached the message-level index.
  • An imported chat's import: tag could be overwritten by four separate code paths, after which sources prune would offer its history for deletion.
  • A replaced attachment kept the previous file's extracted text forever, unreachable even to --retry-failed.
  • sources prune re-validates every candidate inside the deletion lock, so a chat imported between the scan and the confirmation is no longer deleted.

Upgrading from v0.1.x

The next grepogram sync re-cuts and re-embeds every unit once — about an hour on a 47k-unit index — a few chats per run, each atomically, with search working throughout. Run grepogram extract afterwards to read the media already in your index.

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 09:33
c803339

What's Changed

  • fix(config): answer a config error with a hint instead of a bare message by @nnemirovsky in #2

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 05:21

What's Changed

  • feat: grepogram v1 — local hybrid search over opt-in Telegram chats by @nnemirovsky in #1

New Contributors

Full Changelog: https://github.com/nnemirovsky/grepogram/commits/v0.1.0