What changed in v2.1?
Bilinc 2.2.0 has a cloud-only public boundary. Public installs expose the CloudClient SDK, CLI, and Cloud MCP adapter. Local runtime internals are not shipped in the wheel or sdist.
status() no longer returns service health.
CloudClient.status() previously read the public health endpoint. It now reads GET /api/cloud/statusand answers “what can this authenticated key do?” — workspace, plan, entitlement state, capabilities, recall profiles, limits, and usage. Service health moved to the new CloudClient.health() and the unchanged GET /api/cloud/health.
If a monitor calls status() to decide whether Bilinc is up, repoint it at health(). Otherwise an expired entitlement will read as an outage.
Migration checklist
Install v2.2.0
Upgrade the public package with pip install -U bilinc==2.2.0.
Start on Cloud Free
Create a Bilinc Cloud account and confirm email.
Connect Cloud key
Create a hosted API key. Use bilinc login locally, or BILINC_API_KEY in server, CI, and MCP runtimes.
Replace imports
Use from bilinc import CloudClient or the Bilinc alias from the public package.
Move writes
Commit, recall, and status calls run against hosted Bilinc Cloud endpoints.
Split status and health
client.status() is now the authenticated account and capability call. Repoint uptime monitors at client.health() or GET /api/cloud/health.
Adopt the full lifecycle
revise, forget, snapshot, diff, and rollback are available on the same API key. No local database configuration.
Update MCP
Point agent config at python -m bilinc.cloud_mcp.
Common substitutions
Legacy local runtime
CloudClient()
plane.commit_sync(...)
client.commit(key, value, memory_type="semantic")
plane.recall(...)
client.recall(query, limit=5)
plane.forget(key)
client.forget(key, reason="…") — a reason is required on Cloud
plane.rollback(timestamp)
client.rollback_preview(...) then client.rollback(..., confirmation_token=…)
python -m bilinc.mcp_server.server_v2
python -m bilinc.cloud_mcp
Minimal v2 SDK path
import os
from bilinc import CloudClient
client = CloudClient(api_key=os.environ["BILINC_API_KEY"])
client.commit("agent.memory", {"status": "active"}, memory_type="semantic")
results = client.recall("agent status", limit=5)
print(results)