Skip to content

v0.7.0 — bring-your-own storage; per-language FTS

Choose a tag to compare

@AlexDuchDev AlexDuchDev released this 04 Jun 16:06
· 87 commits to main since this release

Changed

  • Blob storage is now provider-neutral and genuinely optional. Object storage for raw ingested bytes is no longer DigitalOcean-specific: the SPACES_* env vars become S3_*, with a new S3_ENDPOINT (+ S3_FORCE_PATH_STYLE for MinIO) so any S3-compatible provider works — AWS S3 (default), Cloudflare R2, MinIO, Backblaze B2, or DigitalOcean Spaces. The hard-coded *.digitaloceanspaces.com default is gone. Old SPACES_* names are still read as a fallback.
    • Fixed: storage was effectively mandatory — the settings module validated credentials eagerly at import (which the server does on boot), so a keyless deployment crashed at startup despite the no-op fallback. Storage config is now all-optional and import-safe; credentials are required only when S3_BUCKET is set (a bucket without keys fails loudly instead of silently dropping bytes).

Added

  • Optional per-language full-text search. kl_ingest gains an optional language parameter, and each material records its own fts_config so language-aware stemming can be applied per document — while the corpus default stays the language-neutral simple config. Migration 0002 adds the column. MCP tool contract → 1.2.0 (additive; existing clients unaffected).

CI

  • The canonical CI job now runs a check-only lint step (oxlint --type-aware, no autofix) after typecheck, so lint regressions can't merge unnoticed.

Images: ghcr.io/moai-team-llc/agenticmind-server:0.7.0 and …-worker:0.7.0 (also :latest).