Skip to content

Release v2026.8.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 17:47

Downloads

OS Download
Windows GameSentenceMiner-Setup-2026.8.0.exe
Windows (unpacked) GameSentenceMiner-2026.8.0-win-unpacked.zip
Linux GameSentenceMiner-2026.8.0.AppImage
macOS (Apple Silicon) GameSentenceMiner-2026.8.0-arm64.dmg

Intel Mac builds are no longer provided. If you need GSM on Intel Mac, run it from source.

What's Changed

This release improves Text Intake into GSM, consistent timing across textfeed and overlay, OCR optimizations, and Quality of Life updates across many systems.

Highlights

1. Async Rewrite

GSM does a lot of stuff at the same time. This update rewrites handling of text intake, background tasks, health checks, everything. Realistically this should mean text arrives to the textfeed and overlay a lot faster, and more consistently, regardless of what's happening in the background. I've called this problem fixed many times, but this time feels different. :D

2. Built-in STEINS;GATE Hook for OCR-less overlay.

GSM can attach directly to the supported 32-bit Windows Steam build of STEINS;GATE and capture text and glyph positions without OCR. Other builds and games are not supported yet. This is a VERY cool feature, which allows for INSTANT Overlay readiness, but each game/engine is it's own reverse engineering project similar to Agent, so do not expect widespread support. I would welcome and probably merge ANY PR that adds a custom hook to GSM, and there are some Agentic Automation Guidelines in /docs.

STEINS;GATE hook placeholder

OCRLess Overlay

3. OCR and Overlay Updates

OCR Result handling and duplicate detection has been rewritten in a native rust component. This results in noticeable speedup depending on how much text is in the ocr result. OCRs with tons of text should be a lot faster, while OCR with small amount of text should just a tiny bit faster. Note: This is post-processing time, so you won't see it in the OCR Run 2: Text recognized in 0.200s logs. Also fixed an edge case where Google Lens was treating text as a formula (i.e. lceil z -? rfloor)

OCR text blocks Before: Python + langid Now: Rust Saved per scan Text-filter speedup
50 62 ms 2.2 ms 60 ms 28.8×
100 140 ms 4.5 ms 136 ms 31.0×
200 280 ms 10.2 ms 270 ms 27.5×
300 409 ms 16.3 ms 392 ms 25.1×

4. Backup and Database Controls

Automatic database snapshots now support a custom folder and retention count found in the Desktop app settings. Manual backups and restores can be limited to selected categories, and the database layer has been reworked for safer concurrent access and recovery.

5. TextFeed and Text Hooking

TextFeed session recovery, delete line from db, replay actions, and scrolling were revised. Text hooks now have a configurable input-length limit and reject unusually large (10k+) payloads.

6. Mining and Automation

The Anki confirmation window adds a live dialogue timeline, VAD boundary handling has been refined, and game automation better handles scene changes and black frames.

Anki dialogue timeline placeholder

7. Exclusive Fullscreen Detection

When a game is running and being captured in Exclusive Fullscreen, GSM can detect that and nudge towards using Borderless FullScreen or Windowed Gamemodes, since overlay is pretty much 70% incompatible with exclusive fullscreen.

Exclusive Warning

Detailed Changelog

Game Text, OCR, and Overlay

  • Added the experimental built-in STEINS;GATE hook and a manual advance-text action.
  • Added native OCR layout and text-filtering components with Python fallback controls.
  • Added a standalone OneShot OCR utility and routed manual scans through shared hotkey handling.
  • Added OCR-area exclusion rectangles, clearer area-selection cursors, and advanced JSONL diagnostics.
  • Fixed Magpie and precomputed-coordinate handling, exclusion filtering, OCR stabilization, and Google Lens formula fallback behavior.
  • Added overlay scan-quality, instant-text, activation-scan, and floating-font controls.
  • Added borderless-mode guidance when exclusive fullscreen prevents overlay use.

TextFeed and Text Hooks

  • Revised TextFeed recovery, replay controls, autoscrolling, and session deletion syncing.
  • Added configurable text-length limits and hard rejection for unusually large text-hook payloads.
  • Prevented WebSocket negotiation headers from being forwarded by the text-hook proxy.
  • Reduced overlay and input-server connection log noise.

Mining, Audio, and Automation

  • Added a live dialogue timeline to Anki confirmation and preserved sentence line breaks in generated cards.
  • Improved VAD boundaries and added an optional clean pre-roll mode.
  • Added target-window mute controls with optional unmute-on-focus.
  • Synchronized foreground scene state after OBS connects and kept temporary black frames from ending automation immediately.
  • Fixed OBS replay paths containing escaped usernames.

Data, Backups, and Tadoku

  • Added configurable daily database snapshots and category-based manual backup and restore.
  • Reworked SQLite access, async work scheduling, and text-ingress delivery.
  • Added per-game Tadoku auto-sync controls and limited deduplication to pending lines.
  • Reloaded mounted stats after GSM initialization and avoided redundant backend startup checks.

Packaging and Maintenance

  • Added native extension build, wheel smoke-test, and prerelease metadata checks.
  • Resynchronized development Python environments after dependency changes.
  • Updated Python dependency pins, uv, TextFeed tooling, and CI coverage.
  • Limited Windows OpenBLAS worker allocation and exposed overlay DevTools from the tray.
  • Aligned release regression fixtures and stopped managed test runtimes cleanly.

Commit Inventory

  • c7b94899 - Improve VAD boundary and preroll handling.
  • 59c30f29 - Add target window mute hotkeys.
  • 2692f59b - Synchronize foreground scene state on OBS connect.
  • 888ba586 - Improve overlay scanning and font controls.
  • 90d01f92 - Add per-game Tadoku automatic sync controls.
  • 4a0ce89c - Improve TextFeed recovery and replay actions.
  • f26239c2 - Reduce overlay message log noise.
  • 6f217c1f - Prefer dialogue over character for gamepad and fix Tadoku behavior.
  • bbe0b8f4 - Reduce overlay input connection log noise.
  • 03dff5bd - Add the standalone OneShot OCR utility.
  • fda97fb9 - Route manual OCR through shared hotkey handling.
  • 74a3b693 - Support exclusion rectangles in overlay OCR areas.
  • 924661a5 - Improve area-select cursor visibility.
  • a16d78dc - Avoid precomputed overlay coordinates with Magpie.
  • 8af8f424 - Recommend borderless mode for exclusive fullscreen.
  • a28e4de5 - Base Tadoku auto-sync eligibility on game totals.
  • a9a3398e - Repair OBS replay paths with escaped usernames.
  • 8cb61aea - Reload mounted stats after GSM initialization.
  • 11b144eb - Add a live dialogue timeline to Anki confirmation.
  • 17699e79 - Keep temporary black scenes from ending game automation immediately.
  • 5318206a - Add advanced OCR diagnostic logging.
  • 2d4711fe - Add configurable automatic database backups.
  • b324ac17 - Skip redundant backend startup checks.
  • a66db000 - Modernize TextFeed scrolling and tooling.
  • a9b8176d - Expose overlay DevTools from the tray.
  • 853d3eb9 - Increase the legacy settings window height.
  • b1b9222d - Rework async processing and related runtime paths.
  • a353f70c - Rework SQLite access.
  • 339933d7 - Add the native OCR backend and rollout pipeline.
  • 423b7ae7 - Fix OCR stability and overlay coordinate regressions.
  • 8231c2b2 - Limit Windows OpenBLAS worker allocation.
  • aed5a36c - Fix development prerelease packaging.
  • dcadad31 - Correct the development build workflow.
  • fd485503 - Add text-hook payload size safeguards.
  • 3a1cf3d6 - Add the STEINS;GATE hook and Google Lens crop handling.
  • a83893e3 - Add Google Lens formula fallback handling.
  • d68cc9d4 - Restore OCR crop padding.
  • 7b4fdcf8 - Render Anki sentence line breaks as HTML.
  • 332429f1 - Apply exclusions to precomputed overlay OCR.
  • 559b7b90 - Deduplicate only pending Tadoku lines.
  • 9b792083 - Avoid forwarding WebSocket negotiation headers.
  • 719b5c05 - Preserve TextFeed session deletions during sync.
  • 5152d530 - Resync development Python environments after changes.
  • f5c0b6d5 - Refresh Python dependency pins and uv.
  • 07d8beb0 - Hide the development text-hook stress test.
  • Release preparation worktree - Align regression fixtures and managed test shutdown.

Release Metadata

  • Stable baseline: v2026.7.4, published 2026-07-26.
  • Repository comparison: v2026.7.4...develop, plus the release-preparation worktree.
  • New-release commit window: v2026.7.4..07d8beb0, plus the release-preparation worktree.
  • Reviewed head: develop at 07d8beb0.
  • Reviewed scope: 45 commits across 297 branch-diff files, plus release metadata and test fixes.