mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-30 18:56:16 +00:00
Remove EC2/RDS deployment scripts, EC2 watchdog, and RDS substrate provisioning files. Drop the legacy AWS API MCP server from all IDE configs. Replace hardcoded AWS proof-server and RDS default endpoints with localhost/env-only placeholders. Deleted: - 4-Infrastructure/infra/deploy_aws_language_proof_server.sh - 4-Infrastructure/infra/aws_language_proof_server_user_data.sh - 4-Infrastructure/infra/ec2-configuration.nix - 4-Infrastructure/infra/ec2_idle_watchdog.py - 4-Infrastructure/infra/ec2-idle-watchdog.service - 4-Infrastructure/infra/ec2-idle-watchdog.timer - 4-Infrastructure/deploy/rds-substrate/* Changed: - .mcp.json, .cursor/mcp.json, .roo/mcp.json, .vscode/mcp.json: remove aws server, make remote-lean-proof URL env-only - .vscode/settings.json: remoteLeanProof.url -> localhost - 4-Infrastructure/infra/remote_lean_proof_mcp.py: default URL -> localhost - ene-rds/ene-session-sync: default RDS_HOST -> localhost - RECOVERY.md, INFRASTRUCTURE.md, TODO_MAP.md: remove AWS/EC2 refs Build: cargo check ene-rds OK; python3 -m py_compile OK; JSON valid
2.4 KiB
2.4 KiB
ENE RDS — Rust workspace replacing the Python RDS stack
Workspace structure
| Crate | Purpose | Replaces |
|---|---|---|
ene-rds-core |
Shared PostgreSQL client, DSN builder, vec_to_pgtext, receipts |
ene_rds_* base connection logic |
ene-rds-wiki |
Wiki CRUD + full-text search + revision tracking | ene_rds_wiki_layer.py |
ene-rds-ephemeral |
EphemeralNode thermal zones, tasks, receipts, scars, metrics | ene_rds_ephemeral_node.py |
ene-rds-chat |
Chat session ingestion, keyword/semantic search | ene_rds_chat_log.py |
ene-api |
Axum HTTP server mounting all surfaces on :3000 |
ene_chat_api.py + FastAPI |
ene-sync |
Polls opencode.db SQLite → upserts into RDS chat tables | ene_claw_sync.py |
Build
cd 4-Infrastructure/infra/ene-rds
cargo build --release
Run
Initialize schema only
export RDS_PASSWORD=...
./target/release/ene-sync init-schema
One-shot sync
./target/release/ene-sync sync --embed
Watch mode (polls every 60s)
./target/release/ene-sync watch --interval 60 --embed
API server
./target/release/ene-api
# → http://0.0.0.0:3000/health
# → http://0.0.0.0:3000/sessions
# → http://0.0.0.0:3000/search?q=thermal+zone
# → http://0.0.0.0:3000/wiki/search?q=compression
# → http://0.0.0.0:3000/ephemeral/nodes?zone=hot
Environment variables
| Variable | Default | Purpose |
|---|---|---|
RDS_HOST |
localhost |
PostgreSQL host |
RDS_PORT |
5432 |
PostgreSQL port |
RDS_USER |
postgres |
PostgreSQL user |
RDS_PASSWORD |
— | Password or IAM token |
RDS_DB |
postgres |
Database name |
OLLAMA_HOST |
http://localhost:11434 |
Ollama embedding endpoint |
OLLAMA_EMBED_MODEL |
nomic-embed-text |
Embedding model |
What changed from Python
- No
psycopg2runtime dependency — single static binary tokio-postgreswithwith-serde_json-1feature for native JSONB supportpgvectorvectors passed as'[0.1,0.2,...]'::vectortext format- Ollama embeddings via
reqwestinstead ofrequests - SQLite source via
rusqlitewith bundled bindings - Axum replaces FastAPI for the API server
Python bridge (optional)
The standalone bridge_wrapper.py still exists for calling legacy Python modules that have not been ported. The Rust surfaces do not depend on it.