Skip to content

Releases: jexp/watfile

v0.3.1

Choose a tag to compare

@jexp jexp released this 21 Sep 14:37

CLI ergonomics round.

New

  • -c and -d combinable: target folder (created if missing) with explicit categories; error only when no categories exist anywhere
  • category descriptions in -c: invoice:bills and payment requests — included in the classification prompt; double-quoted descriptions may contain commas
  • bare filename passed as a weak classification hint (content stays primary)

Changed

  • --backend and --min-confidence moved to advanced options (--help-all)
  • uncertain files: inline marker + end recap with top-2 categories and probabilities

v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@jexp jexp released this 21 Sep 00:41

Confidence gating, filename hints, clearer uncertain output.

New

  • Confidence gating: files classified below --min-confidence (default 0.5, per TypeSafe's recommended floor) are not placed — left where they are
  • Uncertain files are unmissable: inline UNCERTAIN marker plus a final recap listing each unplaced file with its top-2 categories and probabilities, so you can tell 'fits two categories' from 'a category is missing'
  • Bare filename passed to the model as a weak hint (content still primary) — rescues content-poor or scanned files
  • -v/--version, --self-update (uv tool / pipx aware), version line on all errors

Changed

  • Batching is on by default for jev (--batch caps, --no-batch disables)
  • laya runs on any OS: coreml > mlx > torch auto-detected, each an optional extra

v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@jexp jexp released this 20 Sep 23:29

Cross-platform laya backend, version/self-update CLI polish.

New

  • laya backend runs on any OS: runtime auto-detection (coreml > mlx on Apple Silicon, PyTorch torch elsewhere); each runtime is its own optional extra — watfile[laya], watfile[laya-coreml], watfile[laya-torch]
  • torch runtime defaults to the multilingual checkpoint (non-English documents classify locally out of the box)
  • -v/--version, --self-update (uv tool / pipx aware), version line printed on every error path
  • laya tests run on machines without any laya runtime (agent stubbing)

Changed

  • laya-mlx no longer a hard dependency; jev-only installs stay lean

v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@jexp jexp released this 20 Sep 21:06

Local MLX backend, batch mode, smarter defaults.

New

  • laya backend: local typed-decision model on Apple Silicon (laya-mlx, ~13ms/decision, offline after ~1GB checkpoint, no API key). Optional extra: pip install watfile[laya]
  • Jev batch mode (default on): documents packed into one system_one call (~256 tokens each, ~100 files per 30k window)
  • Multi-chunk classification with adaptive extension (--chunks N; 0=adaptive, default for laya with 200-token chunks)
  • tiktoken token budgeting

Changed

  • symlink placement is now the default (-m/--move moves, --copy copies)
  • help split into main options (--help) and advanced options (--help-all)

Accuracy on arXiv fixtures: Jev 4/4; laya 3/4 (adaptive multi-chunk)

v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@jexp jexp released this 20 Sep 20:23

Initial release.

  • Classify files via TypeSafe Jev (System One Choice question): category, probabilities, confidence
  • Placement modes: symlink (default), move (-m), copy (--copy), dry-run (-n)
  • Categories from -c list or -d target-folder subfolders; recursive folder input (-r)
  • liteparse PDF extraction (first 2 pages, OCR off), direct read for text formats
  • Config: env > ./.env > ~/.config/watfile/config.toml
  • Pluggable Classifier backend (laya/MLX planned)