Skip to content

Added roadmap

Added roadmap #46

Workflow file for this run

name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
quickstart-smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build gRPC server binary
run: cargo build --bin mnemos_grpc --verbose
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Python client and regenerate stubs
working-directory: python/mnemos-client
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
./scripts/generate_proto.sh
- name: Run quickstart smoke test
run: |
set -euo pipefail
set -x
MNEMOS_GRPC_ADDR=127.0.0.1:50051 \
MNEMOS_STATUS_ADDR=127.0.0.1:50052 \
MNEMOS_DATA_DIR=/tmp/mnemos-ci \
MNEMOS_VECTOR_DIM=3 \
target/debug/mnemos_grpc > /tmp/mnemos-ci.log 2>&1 &
SERVER_PID=$!
cleanup() {
kill ${SERVER_PID} >/dev/null 2>&1 || true
}
trap cleanup EXIT
HEALTHY=0
for _ in $(seq 1 40); do
if curl -fsS http://127.0.0.1:50052 >/dev/null; then
HEALTHY=1
break
fi
sleep 0.5
done
if [ "${HEALTHY}" -ne 1 ]; then
echo "mnemos_grpc failed to become healthy"
tail -n 200 /tmp/mnemos-ci.log || true
exit 1
fi
curl -fsS http://127.0.0.1:50052 | grep -q "Mnemos is running"
source python/mnemos-client/.venv/bin/activate
export MNEMOS_ADDR=127.0.0.1:50051
export MNEMOS_NAMESPACE=ci-quickstart-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}
export PYTHONWARNINGS=error::DeprecationWarning
# API contract check: stable surface must be importable and present.
python - <<'PY'
from mnemos_client import MnemosMemory
required = ["store", "store_many", "ask", "ask_raw", "ask_with_context", "close"]
for name in required:
assert hasattr(MnemosMemory, name), f"missing stable API method: {name}"
print("contract_ok")
PY
python python/mnemos-client/examples/simple_memory.py | tee /tmp/quickstart.out
grep -q "Answers:" /tmp/quickstart.out
# Deterministic retrieval assertion for quickstart quality.
python - <<'PY'
from mnemos_client import MnemosMemory
memory = MnemosMemory.from_env()
try:
memory.store("Alice owns release planning.")
memory.store("Release deadline is Friday at 5 PM.")
answers = memory.ask("When is the release deadline?", top_k=5)
assert any("Friday at 5 PM" in a for a in answers), answers
print("retrieval_ok")
finally:
memory.close()
PY
curl -fsS http://127.0.0.1:50052/metrics | grep -q "mnemos_rpc_total"