Skip to content

Releases: HSPK/mm

v0.1.7

05 Jun 09:18
5949570

Choose a tag to compare

Highlights

Stable per-library UUID

Each library database now has a stable library_id (UUID4), generated on first read and immutable. Exposed via GET /api/library. Concurrent first-readers (multi-worker startup, racing library switches) are safely deduplicated.

Per-library thumbnail cache

Thumbnails are now cached under ~/.cache/mm/thumbs/<library_id>/<size>/<media_id>.webp. Fixes a real collision where thumbnails would bleed across libraries because media_id is only unique within a single DB.

Unified, YAML-overridable application config

~12 formerly scattered constants (CLIP model/threshold/labels, hashing chunk size, thumbnail sizes & HTTP cache headers, server cache TTLs, cache directories, import template, DB name) are now nested sections of CliConfig in ~/.config/mm.yaml. Edit any of them; defaults are unchanged.

paths:
  cache_dir: ~/.cache/mm
clip:
  model_name: ViT-L-14
  confidence_threshold: 0.5
thumbnails:
  sizes: {sm: [200, 200], md: [400, 400], lg: [800, 800], xl: [1920, 1080]}
server:
  token_cache: {ttl: 300, max: 256}

Internal: explicit storage injection

storage: FileStorage is now a required keyword-only argument on all storage-aware helpers (was = local_storage default). Makes the dependency boundary explicit and prevents accidental local-filesystem reads in code that should be backend-agnostic.

Test suite

33 → 45 tests, covering library_id semantics, thumbnail namespacing, YAML override round-trip, and config-cache behaviour.

Full diff: #2

v0.1.6

03 Jun 06:10

Choose a tag to compare

Patch release for mm init.\n\n- Fix CLI startup/import cycle around mm.db exports.\n- Add regression coverage for mm init library setup so initialization no longer fails with a NameError.

v0.1.5

02 Jun 10:55

Choose a tag to compare

v0.1.5

  • Retry release with PyPI trusted-publishing environment configured for the release workflow.
  • Includes the v0.1.4 release changes.

v0.1.4

02 Jun 10:54

Choose a tag to compare

v0.1.4

  • Reorganized Python modules by domain and removed the old core package.
  • Reworked database access into typed DBClient namespaces.
  • Added release workflow for PyPI trusted publishing.
  • Removed SQLite vector store support ahead of PostgreSQL-backed vector search.
  • Simplified import, config, IO, extractor, and utility layers.
  • Includes frontend updates and rebuilt release assets workflow support.

v0.1.3

10 May 06:34

Choose a tag to compare

Highlights

  • Refactored CLI output around a unified Rich-based UI layer.
  • Packaged the built Web UI into wheels and sdists so installed mm server can serve the frontend.
  • Fixed release validation issues so Ruff and tests pass.

Validation

  • uv run --with ruff ruff check src tests
  • uv run --with pytest python -m pytest -q
  • uv build