Archived
This repository has been archived on 2026-10-08 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
def811bab46748bd65fb605e04f6ccb88a98caff
Records the outcome of the 001 brainstorm and the Recoll spike that backed it. Decisions: Python + FastAPI managed with uv; the product split into four specs built in order; collections managed at runtime through the API with SQLite as the store of record; indexing as an in-process job queue; search scope as an explicit required parameter; results carrying metadata and snippets; real authentication in 001 with user administration deferred to 004. The load-bearing one is collection membership. A collection cannot be a directory, because files sharing a directory must be able to belong to different collections, so every document is indexed once into a single Recoll index and membership is a user.collection extended attribute mapped to a queryable field. Verified against Recoll 1.43.0 in a throwaway container: the tag must be an opaque single-token ID rather than the collection name, because Recoll tokenises the field value and matches case-insensitively, so a tag of cook-books is also matched by collection:cook and collection:books. Names as tags would let collections silently bleed into each other. Opaque IDs also make renaming free, since the index is never touched. Two operational consequences are recorded in docs/TODO.md: documents must live on a volume with extended-attribute support, checked loudly at startup, and a plain incremental recollindex does not notice xattr-only changes, so retagging must go through recollindex -i on the affected file. uv 0.12.16 was installed on this host as part of the stack decision; AGENTS.md is corrected in the same commit, since it previously listed uv as absent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
recoll-modern
A modern, self-hosted web UI and MCP server on top of Recoll full-text search, with support for multiple independent collections.
Status: greenfield — no application code yet.
Working here (human or agent): read AGENTS.md. It is the single source of truth for
commands, workflow, and boundaries. Deeper context lives in docs/.
Languages
Python
97.9%
C
1%
Dockerfile
0.6%
Shell
0.4%