3 Commits
Author SHA1 Message Date
Markus cc536b80ab feat(p3): MCP server — six memory_* tools, bearer auth, idempotency, audit log
Uses mcp 2.2.0 (FastMCP is MCPServer there) with stateless streamable HTTP.
The SDK's DNS-rebinding protection checks the Host header, so the in-cluster
name Bifrost dials is an explicit allow-list entry (MCP_ALLOWED_HOSTS) —
otherwise every proxied call returns 421 and looks like an mdmem bug.
Agent edits to active notes become inbox revisions; no delete tool exists.
2026-09-12 08:00:06 +00:00
Markus 4aa3d5a86c feat(p1): watcher, core service, hybrid-search skeleton, embed client, mdmem reindex
A file written directly into the vault is searchable in well under 2 s, the
service's own writes are hash-deduped so the watcher never double-indexes, and
reindex runs standalone with --no-embed for a lexical-only rebuild.
2026-09-12 07:53:41 +00:00
Markus d9b42e3432 feat(p0): repo skeleton — pyproject, config, JSON logging, CLI, Containerfile
Non-root, read-only-rootfs image with HOME/XDG_CACHE_HOME on /tmp so nothing
writes outside /data and /tmp (§13a.3, §14.16).
2026-09-12 07:41:44 +00:00