Skip to content

v3.0.0a1

Pre-release
Pre-release

Choose a tag to compare

@kjanat kjanat released this 24 Feb 01:03
· 83 commits to master since this release
v3.0.0a1
e393132

Warning

Alpha prerelease — breaking transport change. Not recommended for production use.

PyPI

Highlights

bw serve HTTP transport — Replaces the one-subprocess-per-operation model with a persistent bw serve process and HTTP API. Dramatically fewer process spawns, automatic port selection, health polling, and signal-safe cleanup.

Batch import — New bw import path for bulk item creation instead of creating entries one at a time.

Async parallel attachment uploads — Attachments upload concurrently (bounded semaphore, default 4) instead of sequentially.

Dedup index — O(1) duplicate detection via in-memory set, skipping per-item API lookups.

New CLI flags

  • -d / --debug — Full DEBUG logging (including httpx/pykeepass). -v now only shows kp2bw operational detail.

Key fixes

  • Shell injection in bw import (replaced shell=True with list-form subprocess)
  • bw serve IPv6 binding mismatch causing 60s timeout
  • Duplicate item names losing attachment associations
  • Signal handler init race on early timeout
  • close() double-call crash
  • Sensitive secrets leaking in diagnostic output

Breaking changes

  • Requires httpx>=0.28.0 (new dependency)
  • Transport layer completely replaced — CLI behavior is the same but internal API surface changed by @kjanat in #2

Full Changelog: v2.0.0...v3.0.0a1