Skip to content

Open Brain 1.0.1

Choose a tag to compare

@benclawbot benclawbot released this 24 Jul 19:05
· 16 commits to master since this release

Open Brain 1.0.1

Patch release over 1.0.0. Five commits since cb590ae (the previous upstream head). Nothing in this release introduces a breaking change to the API, schema, or operator workflow.

What changed

  • Docker stack actually works on a fresh clone. 1.0.0's docker-compose up -d --build failed to bring the api up because of CRLF line endings in shell scripts, env-var-ignoring setup_db.py, and a missing UUID adapter in psycopg2. All three are fixed. A new scripts/quickstart.sh brings the whole stack up idempotently and (with --with-hermes) wires it into a locally-installed Hermes.
  • NLTK 3.8.2+ rename. Entity extraction silently fell through because the runtime data files were renamed. New names are looked up first; the data is now baked into the api image so cold starts don't have to download.
  • Local embeddings by default. The 1.0.0 compose stack pointed at OpenRouter; the key on file had been revoked (HTTP 401 "User not found"). The new stack ships an ollama service running nomic-embed-text locally; no API key required.
  • Default port changed from 8000 to 8765. Windows IP Helper (iphlpsvc) often holds port 8000, which prevented the api container from binding. Override with API_PORT in .env if you need a different port.
  • Schema migration 015. Alters memory.embedding from vector(1536) to vector(768) to match the new default embedder. Rebuilds the HNSW index. Existing 1536-dim embeddings cannot be converted; the migration is safe on a fresh install or a database where the column is empty.
  • .env removed from version control. 1.0.0 had a .env with a real OpenRouter API key checked in. It's gone from the index. Copy .env.example to .env (or let openbrain configure --project-root . generate the secrets) on first run.
  • .gitattributes added so Windows checkouts stop reintroducing CRLF into shell scripts.
  • E2E test suite at tests/e2e/test_api.py exercises every category of route in the OpenAPI schema. Auto-skips when the stack isn't reachable, so pytest tests/ still works in CI without docker. 10/10 pytest passing; 39/39 standalone passing.

How to upgrade from 1.0.0

git pull
docker compose down
docker compose up -d --build

Then recreate your .env from the new .env.example (the old .env is no longer tracked):

cp .env.example .env
openbrain configure --project-root .   # generates DB_PASSWORD + OPENBRAIN_API_KEY

The openbrain CLI on your PATH will reuse the existing OPENBRAIN_API_KEY from ~/.config/openbrain/.env if present.

How to install from scratch

git clone https://github.com/benclawbot/open-brain.git
cd open-brain
bash scripts/quickstart.sh --with-hermes

Verification

$ pytest tests/e2e/ -v
Pytest: 10 passed

$ python tests/e2e/test_api.py --slow 3
=== Summary ===
  39 passed, 0 failed

Full change log

See docs/pr-1.0.1-stack-and-nltk.md in the repo and the commit log:

  • 010ded5 fix: make the local docker stack actually work end-to-end
  • b05f502 fix: bake NLTK data into the api image and handle 3.8.2+ renames
  • ed88338 test: add e2e suite + PR description for stack/NLTK fixes
  • 5801db0 test(e2e): add --slow/--url/--key flags to the standalone runner (#53)
  • e7c5eb7 test(e2e): use distinctive content to avoid near-duplicate ranking