Holdfast Labs
Changelog

What's new

Highlights from recent seekfs and vanth releases. Full notes ship with every tag on GitHub.

Agent usability

Smaller surprises for agents and first-time users.

  • vanth wait and --wake-me now cover every terminal outcome by default: completed, failed, timeout, cancelled and orphaned.
  • Every MCP tool has a description, and the tool reference is grouped by task.
  • vanth doctor summarizes relays and highlights failed deliveries.
  • First-run vanth setup creates a missing client config before registering.

Zero-JSON wakes

Be woken when a job finishes without writing wake-target JSON by hand.

  • vanth start --wake-me and job_start(wake_me=True) resolve the live session for the job's folder.
  • Start responses echo the resolved wake targets, so the caller can confirm who will be woken.
  • Wake targets on remote jobs register locally and fire when the remote job emits a matching event.
  • vanth start refuses commands reassembled around bare shell operators instead of running them wrong.

Cleaner names

An internal refactor and test-coverage release; search, indexing and the service behave as in 1.10.2.

  • The direct builder subcommand is now direct; direct-v9 still works.
  • Service variables dropped the V9 qualifier: SEEKFS_*. Old spellings are still read.
  • Removed the no-op -skip-startup-sync flag.

No more fold loops

A torn write-ahead-log tail, left by a persist killed mid-append, blocked the post-fold WAL rewrite and sent the service into back-to-back folds. The rewrite now tolerates it.

Wake a job after it started

  • vanth wake <job> adds a wake target to a running or finished job; --now fires one immediately.
  • --wake, --trigger and --policy accept @file or stdin, so PowerShell 5.1 quoting can't corrupt nested JSON.
  • Relay client ids are rejected as wake destinations instead of sitting pending forever.

The service stops watching itself

Measured on a live index, 91.7% of pending changes came from seekfs's own index, log and WAL files. They are now dropped before they reach the log, and the persist trigger scales with index size.

Rebuilds up to 7× faster

  • A 17.1M-record volume rebuilds in about 1m 54s instead of 13m 06s, at 4.4 GiB peak instead of 8.5.
  • Name trigrams build with bounded memory by default.
  • regex: queries pre-filter on the literal text every match must contain.

OpenCode wakes in the TUI

  • vanth setup installs an in-process OpenCode plugin, so wakes reach a plain opencode terminal session.
  • vanth start, vanth wait, vanth deliveries and vanth api give a full workflow without MCP.
  • Every subcommand gets --help, and job ids accept unambiguous prefixes.

Operational hardening

  • vanth backup and vanth restore archive jobs, artifacts and events safely while the daemon runs.
  • An authenticated Prometheus endpoint and edge-triggered operator alerts.
  • One outbound policy for webhooks and probes that refuses link-local and cloud-metadata destinations.

Live sizes and dates

Files changed on disk are re-read when the journal reports them, so sizes and modification times stay current, and folder sizes update live up the tree.

Recursive folder sizes

Folders report the total size of their contents, and size: filters match folders by that total.