Only include EnvironmentFile when at least one *File option
(openaiApiKeyFile, tokenFile, qdrantApiKeyFile) is set.
Without this, an empty EnvironmentFile list causes systemd
to fail with 'Failed to load environment files'.
Schema: public_id + version columns with UNIQUE constraint,
delete_timestamp for soft-delete.
Tools: store_flashcard accepts optional public_id, update_flashcard
creates a new version preserving history, delete_flashcard inserts
a tombstone row and removes the Qdrant point.
Qdrant: point ID is public_id (only latest version indexed).
- /version returns JSON with build_date and git_commit from env vars
- NixOS module injects GIT_COMMIT (first 8 chars of self.rev)
and BUILD_DATE (self.lastModified) into systemd service environment
The embedding endpoint path was but OpenAI-compatible APIs
serve embeddings at . When EMBEDDING_BASE_URL is set to a
bare host (e.g. https://llm.aviron.ai), the resulting URL would be
/eembeddings instead of /v1/embeddings, returning 404.
Changed defaultBaseURL to not include /v1 and always use /v1/embeddings
as the endpoint path.