fix: resolve all 8 Phase 3 config/path issues

V3.01-V3.03: Replace hardcoded Path.home() / 'Vault' with os.environ.get()
  - wiki_continuous_ingest.py: WIKI_ROOT via env with fallback
  - bulk_wiki_ingest.py: WIKI_ROOT + EMBEDDING_MODEL via env with fallback
  - backfill_decay_metadata.py: VAULT_ROOT via VAULT_PATH env with fallback

V3.04-V3.05: Replace hardcoded EMBEDDING_MODEL string with os.environ.get()
  - context_enhancer.py + bulk_wiki_ingest.py

V3.06: Replace ~/.hermes til fallback with ./hermes (Docker doesn't expand ~)

V3.07: Add /fabric volume mount (~/Vault/fabric:/fabric:rw)

V3.08: Add Qdrant healthcheck + change worker qdrant dependency from
  service_started to service_healthy
This commit is contained in:
ClaudioDrews 2026-06-03 11:44:22 -03:00
parent 384395b78d
commit e5edb58a19
5 changed files with 14 additions and 7 deletions

View File

@ -39,6 +39,12 @@ services:
environment:
QDRANT__SERVICE__HTTP_PORT: "6333"
QDRANT__SERVICE__API_KEY: ${QDRANT_API_KEY:-}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6333/healthz"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
worker:
build:
@ -47,7 +53,7 @@ services:
restart: unless-stopped
depends_on:
qdrant:
condition: service_started
condition: service_healthy
redis:
condition: service_healthy
environment:
@ -66,7 +72,8 @@ services:
LOG_LEVEL: ${LOG_LEVEL:-INFO}
volumes:
- ${WIKI_PATH:-./wiki}:/wiki:ro
- ${HERMES_HOME:-~/.hermes}:/hermes:rw
- ${HERMES_HOME:-./hermes}:/hermes:rw
- ${FABRIC_DIR:-./fabric}:/fabric:rw
volumes:
redis_data:

View File

@ -50,7 +50,7 @@ COLLECTION = "knowledge_base"
BATCH_SIZE = 200
SCROLL_LIMIT = 200
LOG_FILE = Path.home() / ".hermes/logs/decay_scanner.log"
VAULT_ROOT = Path.home() / "Vault"
VAULT_ROOT = Path(os.environ.get("VAULT_PATH", str(Path.home() / "Vault")))
# ─── Heuristics ──────────────────────────────────────────────────────────────
CONFIDENCE_BY_SOURCE = {

View File

@ -29,8 +29,8 @@ except ImportError:
OPENROUTER_KEY = os.environ.get("OPENROUTER_API_KEY")
QDRANT_URL = "http://localhost:6333"
COLLECTION = "knowledge_base"
WIKI_ROOT = Path.home() / "Vault" / "wiki"
EMBEDDING_MODEL = "qwen/qwen3-embedding-8b"
WIKI_ROOT = Path(os.environ.get("WIKI_ROOT", str(Path.home() / "Vault" / "wiki")))
EMBEDDING_MODEL = os.environ.get("EMBEDDING_MODEL", "qwen/qwen3-embedding-8b")
EMBEDDING_DIMS = 4096
MAX_TEXT_LEN = 8000 # truncate text for embedding (model context limit)
BATCH_SIZE = 8 # parallel embedding requests

View File

@ -41,7 +41,7 @@ if not OPENROUTER_KEY:
QDRANT_URL = os.environ.get("QDRANT_URL", "http://localhost:6333")
COLLECTION = os.environ.get("QDRANT_COLLECTION", "knowledge_base")
EMBEDDING_MODEL = "qwen/qwen3-embedding-8b"
EMBEDDING_MODEL = os.environ.get("EMBEDDING_MODEL", "qwen/qwen3-embedding-8b")
TOP_K_DEFAULT = 3
SCORE_THRESHOLD_DEFAULT = 0.55
MAX_TEXT_LEN = 8000

View File

@ -22,7 +22,7 @@ ENV_PATH = Path.home() / "ai-stack" / "cognitive-agent" / ".env"
if ENV_PATH.exists():
load_dotenv(ENV_PATH)
WIKI_ROOT = Path.home() / "Vault" / "wiki"
WIKI_ROOT = Path(os.environ.get("WIKI_ROOT", str(Path.home() / "Vault" / "wiki")))
STATE_FILE = Path.home() / ".hermes" / "wiki_ingest_state.json"
FAILURES_FILE = Path.home() / ".hermes" / "wiki_ingest_failures.json"
REDIS_PASSWORD = os.environ.get("REDIS_PASSWORD", "")