NEWOfficial SDKs Now Available — Python, JavaScript & Go SDKs with full API coverage
Back to blog
scrapingaiself-hostedpricing

JIRO v0.3.1 Update: WinError 32 Auto-Heal, Unified Packages, Complete Changelog

By Adarsh Kushwah, CEO & Founder of Blackvault Technology

Adarsh Kushwah, CEO & Founder of Blackvault Technology
6 min read

JIRO v0.3.1 Update: WinError 32 Auto-Heal, Unified Packages, Complete Changelog

By Adarsh Kushwah, CEO & Founder of Blackvault Technology

September 26, 2026


From v0.3.0 to v0.3.1: What Shipped and What Changed

JIRO v0.3.1 is more than a patch — it's the completion of a platform journey that started with v0.3.0. This post breaks down everything: what v0.3.0 delivered, what v0.3.1 fixes, and why it matters.

What Shipped in v0.3.0 (September 15, 2026)

v0.3.0 was the foundation. It introduced:

Feature Details
RFC 8628 Device Code Flow CLI authenticates via browser. Works over SSH, Docker, headless servers
Encrypted Credential Storage AES-256-GCM with machine-derived PBKDF2 key
Self-Hosted 3-Tier Pricing Free (100 RPM, 10K RPD), Pro (500 RPM, 100K RPD), Enterprise (1,000 RPM, 1M RPD)
HMAC-SHA256 License Validation Offline-first, hardware-bound, max 3 devices
CLI License Commands jiro license activate, info, deactivate, validate
Device Code Polling Rate-limited per RFC 8628 specification

What Broke in v0.3.0

Despite being a landmark release, v0.3.0 had issues:

  • WinError 32 on update: jiro update on Windows failed because the running jiro.exe locked itself
  • Firestore user resolution: Device authorization didn't resolve the Firestore user document before issuing API keys
  • Firestore emulator flows: Reported an unconfigured server when the emulator was active
  • normalize_profile AttributeError: Crashed on SocialProfile objects with type defaults to profile
  • _CurlResponseAdapter missing methods: raise_for_status() and json() were absent
  • Cloud credit revocation: Malformed request handling was unsafe

What's New in v0.3.1

v0.3.1 builds on v0.3.0 with critical fixes, hardened infrastructure, and a unified package version.

Critical Fix: WinError 32 Auto-Heal

The #1 blocker for Windows users. The updater now:

  1. Force-kills any running jiro.exe via taskkill /F /IM jiro.exe
  2. Retries the pip install up to 5 times with exponential backoff (2s, 4s, 8s, 12s, 15s)
  3. Falls back to heal_pip_install() on non-Windows platforms
jiro update
# Now works without WinError 32!

Auto-Heal Update System

Three new functions in self_healing.py:

  • heal_pip_install(pip_args, max_retries=5): Runs pip install with automatic retry on file lock errors
  • _kill_jiro_exe(): Force-kills running jiro.exe on Windows
  • _is_winerror_32(exc): Detects WinError 32 from exception strings for precise matching

Unified 0.3.1 Packages

The CLI, JavaScript SDK, Python SDK, and Cloud API all publish as 0.3.1:

pip install jirosearch==0.3.1
npm install jiro-sdk@0.3.1

Additional Features Added in v0.3.1

  • Built-in engine plugin auto-registration (arXiv, GitHub, Google Scholar, Hacker News, Reddit, Wikipedia)
  • Cloud pricing endpoint and synchronized credit actions across all operations
  • CI workflow: pytest (non-network tests) + pip-audit + gitleaks on every push
  • Release guard tests for social normalizers and the curl response adapter (15 tests)
  • Hardened WAF query normalization and high-confidence payload blocking
  • Improved async session validation and Firebase realtime token refresh
  • Test suite: 835 tests (pytest 9.1.1 / pytest-asyncio 1.4.0)

Complete v0.3.0 to v0.3.1 Comparison

Area v0.3.0 v0.3.1
Auth RFC 8628 Device Code Flow RFC 8628 + hardened internal auth + WAF normalization
Pricing 3-Tier (Free/Pro/Enterprise) 3-Tier + Cloud pricing endpoint + synchronized credits
Licensing HMAC-SHA256, hardware-bound Same + device-auth Firestore resolution fix
Update System Manual only Auto-heal with WinError 32 recovery and exponential backoff
Package Version Mixed across packages All unified at 0.3.1
Tests ~800 835 (+15 release guard tests)
CI Basic pytest + pip-audit + gitleaks on every push
WAF Basic Hardened with query normalization
Circuit Breakers Present Hardened failure handling
Firebase Token refresh Resilient loading states + emulator support
Normalization Missing _CurlResponseAdapter now has raise_for_status() and json()

All Bug Fixes in v0.3.1

  • WinError 32 blocking pip upgrades — auto-heal with retry
  • Device authorization Firestore user resolution — resolves before issuing API keys
  • Firestore emulator flows — no longer reports unconfigured server
  • Cloud credit revocation — malformed request handling now safe and consistent
  • Metrics shutdown paths — safe and consistent
  • normalize_profile AttributeError — type defaults to profile, dict results pass through unchanged
  • _CurlResponseAdapter missing methods — now provides raise_for_status() and json()

Security Hardening

v0.3.1 continues the security trajectory from v0.3.0:

Security Area v0.3.0 v0.3.1
Device Code Polling Rate-limited per RFC 8628 Same + hardened
License Keys Hardware-bound, max 3 devices Same + Firestore fix
Grace Period 24-hour Same
WAF Basic Hardened with query normalization
Internal Auth Optional Required + API key ownership checks
Circuit Breakers Present Hardened failure handling

Upgrade Instructions

# Update via the CLI
pip install --upgrade jirosearch==0.3.1
jiro update
jiro doctor

Try JIRO Today

JIRO is 100% free and open-source under the MIT license:

git clone https://github.com/blackvault-technology/jiro.git
cd jiro
pip install -e .
jiro doctor
jiro update

Or try the cloud version at https://searchjiro.vercel.app — 100 RPM / 10K RPD free, no credit card required.

Looking Ahead

What's coming next?

  • More search engines (Startpage, Qwant, Ecosia, Naver)
  • More social platforms (Mastodon, Bluesky expansion)
  • Better AI models (Claude 3.5, GPT-4o, local LLM support with Ollama)
  • Plugin system for custom engines and parsers
  • Distributed scraping for massive scale (Kubernetes-based)
  • Enterprise features (SSO, audit logs, compliance reporting)

Frequently Asked Questions

Was v0.3.0 broken?

No. v0.3.0 was a complete, functional release. The WinError 32 update blocker and Firestore resolution issues were edge cases that affected specific workflows. v0.3.1 fixes all of them.

Do I need to reinstall after upgrading?

No. pip install --upgrade jirosearch==0.3.1 handles the update. jiro update also works now with the auto-heal system.

What Python version does JIRO support?

JIRO supports Python 3.11+ and is tested on Python 3.14. It uses FastAPI for the web framework, Pydantic for data validation, and aiohttp for async HTTP requests.

Is self-hosting still free?

Yes. The core JIRO engine is 100% free and open-source under the MIT license. The free tier provides 100 RPM, 10K RPD. The Pro tier is ₹4,999 one-time and the Enterprise tier is ₹14,999 one-time.

About the Author

Adarsh Kushwah is the CEO & Founder of Blackvault Technology, based in Indore, MP, India. He built JIRO to solve the problem of expensive, closed-source search APIs. With over 8 years of experience in full-stack development and systems architecture, Adarsh has led engineering teams at multiple startups before founding Blackvault Technology.

Company: Blackvault Technology
GitHub: blackvault-technology/jiro


JIRO v0.3.1 — From v0.3.0 Foundation to Auto-Heal Everything. Local-first. AI-native.


AK

Adarsh Kushwah

CEO & Founder of Blackvault Technology. Building open-source developer tools and AI infrastructure in Indore, MP, India.

Stay ahead of the curve

Get weekly insights on search technology, web scraping, and open-source infrastructure. No spam, unsubscribe anytime.

Join 2,000+ developers. Free forever.