chore: commit deployed runtime (*_local modules, migrations, units, config example) — reproducible install - #2
Open
davidgut1982 wants to merge 2 commits into
Open
davidgut1982 wants to merge 2 commits into
davidgut1982 wants to merge 2 commits into
Conversation
…onfig example)
Captures the actual running implementation that was previously untracked:
- src/server_local.py: asyncpg-based MCP server (replaces Supabase server.py)
- sse_server_local.py: HTTP/SSE transport wrapper for server_local
- daemon/{worker,watcher,chunker,embedder}_local.py: asyncpg-backed indexing pipeline
- migrations/020_vector_search_indexer.sql: full schema (pgvector tables + functions)
- systemd/: three user service units (worker, watcher, http) with path notes
- config.yaml.example: redacted template (password → CHANGE_ME, placeholder paths)
- .gitignore: adds config.yaml, *.bak*, embed_cache.json exclusions
- requirements.txt: adds asyncpg>=0.29.0 (required by all _local modules)
- SETUP.md: end-to-end install guide (PostgreSQL/pgvector, venv, config, units, MCP entry)
No secrets committed. config.yaml remains gitignored.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
davidgut1982
force-pushed
the
chore/reconcile-deployed-runtime
branch
from
May 31, 2026 13:34
6723082 to
d5bd4b3
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
chore: commit deployed runtime (*_local modules, migrations, units, config example) — reproducible install
What this is
Captures the entire deployed runtime for
vector-indexer-mcpthat was previously untracked, making the setup reproducible from a clean clone. This indexer backs the embedding reranker benchmark in NousResearch/hermes-agent#35457 and the eval suite in davidgut1982/hermes-agent#1.Problem
The deployed production runtime (
*_local.pymodules, pgvector schema, systemd units) existed entirely in the local install but was absent from the repository. Anyone cloning the repo to reproduce the reranker benchmark — including the 194-tool embedding pass and the 98-query Recall@K suite — had no path to a working install. Four concrete gaps:server_local.py,sse_server_local.py, alldaemon/*_local.py) not committedmigrations/020_vector_search_indexer.sql) not committedasyncpg>=0.29.0missing fromrequirements.txt(required by all*_local.pymodules; fails at import)config.yaml.example— no template for a fresh installApproach
Committed all untracked runtime files using explicit paths (no
git add -A). Addedconfig.yaml.examplewith all credentials replaced byCHANGE_MEand machine-specific paths replaced with<YOURPATH>placeholders. AddedSETUP.mddocumenting the full install path: PostgreSQL + pgvector, role/db creation, migration, venv + deps, config, systemd units, and the MCP stdio entry. Updated.gitignoreto permanently excludeconfig.yaml,*.bak*, andembed_cache.json.PROOF — backend was operational before this PR
The pgvector backend (PostgreSQL + pgvector, asyncpg, SentenceTransformer embeddings) was verified operational before this PR was created:
Secret scan result: zero matches for passwords, private keys, or API credentials across all committed files.
config.yamland*.bak*remain gitignored and were not staged.Reproduce from a clean clone:
Watcher path validation — critical behavior note:
reindex_path(path)enqueues files, but the worker validates each path againstwatcher.pathsinconfig.yamland silently discards anything outside the allowed roots. Files outsidewatcher.pathswill never persist regardless of how often you reindex. To index a new tree: add its root towatcher.paths, restart the worker, then reindex. This is documented inSETUP.md.What was untracked and is now committed
src/server_local.pyserver.py)sse_server_local.pydaemon/worker_local.pydaemon/watcher_local.pydaemon/chunker_local.pydaemon/embedder_local.pymigrations/020_vector_search_indexer.sqlsystemd/*.serviceconfig.yaml.exampleSETUP.mdKnown limitations (documented in SETUP.md; not fixed in this PR)
Honest known-bad items captured so follow-up PRs have a clear list:
CONFIG_PATHis hardcoded — server reads a fixed path; should readVECTOR_INDEXER_CONFIGenv var with a fallbackpyproject.tomlscripts mismatch — scripts point at old Supabase modules, not*_localmodulessupabase,postgrest-py,tiktokenare in requirements but unused by the local runtimeasyncpgonly inrequirements.txt— not inpyproject.tomldependencies (this PR adds it torequirements.txt;pyproject.tomlis a follow-up)Recommended follow-ups (explicit; not in this PR)
CONFIG_PATH— read fromVECTOR_INDEXER_CONFIGenv var with fallbackpyproject.tomlscripts to point at*_localmodulessupabase,postgrest-py,tiktoken) from requirementsasyncpgtopyproject.tomldependenciesRelated PRs