# Semantic Index V1 Pre-Deployment Manifest - Patch set: `semantic-index-v1-predeployment-20260425T150000Z` - Created: `2026-04-25T15:00:00Z` - Purpose: deployment manifest for the Redmine semantic index service and its LAN/production preparation docs. ## Files To Install ```text semantic_index/ tests/semantic_index/ deploy/semantic-index/ docs/semantic_index_deployment_runbook.md docs/semantic_index_production_notes.md docs/semantic_index_predeployment_validation.md docs/redmine_issue_api_helpdesk_include.md dist/semantic-index-v1-predeployment-20260425T150000Z.MANIFEST.md ``` ## Files Not To Install ```text semantic_index/.env .cache/ .venv/ __pycache__/ *.pyc ``` Keep runtime secrets in `semantic_index/.env` or in the service manager environment on the target host. Do not commit or copy local secrets into a source bundle. ## External Dependencies - Redmine Helpdesk API patch documented in `docs/redmine_issue_api_helpdesk_include.md` - Qdrant reachable through `QDRANT_URL` - OpenAI API key for `text-embedding-3-small` - Python packages: `openai`, `qdrant-client`, `fastapi`, `uvicorn` ## Validation Commands ```sh deploy/semantic-index/install.sh .venv/bin/python -m py_compile semantic_index/*.py .venv/bin/python -m unittest discover -s tests/semantic_index bash -n semantic_index/refresh.sh SEMANTIC_INDEX_PROJECT_LIMITS='customer-service=5' semantic_index/refresh.sh ``` Before any production backfill, follow `docs/semantic_index_deployment_runbook.md` and confirm Qdrant snapshot or volume rollback is available. ## Operational Rules - Run `semantic_index/refresh.sh` in dry-run mode before `--apply`. - Do not schedule `--force-rebuild`; keep it manual-only. - Review refresh logs for `detail_fetched_issues`, `would_embed_documents`, and `embedded_documents`. - Bind HTTP to localhost unless LAN access is explicitly required and protected with `SEMANTIC_INDEX_API_KEY`.