Skip to content

Release history

l33tdawg/sage releases

Institutional memory for AI agents with real BFT consensus. 4 application validators vote on every memory before it's committed — no more storing garbage. 13 MCP tools, runs locally, works with any MCP-compatible model. Backed by 4 published research papers.

All releases

142 shown

No immediate action
v9.2.2 Mixed

Snapshot retention + README update + SDK bump

No immediate action
v9.2.1 Bug fix

Boot wedge fix + nonce seeding

No immediate action
v9.2.0 New feature

Governed memory + corroborator tools

Review required
v9.1.0 New feature
Auth Breaking upgrade

Persistent agent memory + ABCI/tx upgrade

Review required
v9.0.0 Breaking risk
Auth RBAC

Quorum‑gated upgrades + SDK 9.0.0

Review required
v8.9.0 Mixed
Auth RBAC

Content‑gate hardening + SDK bump

No immediate action
v8.8.1 Bug fix

Actual model reporting for /v1/embed

No immediate action
v8.8.0 New feature

Governance activatable validation

No immediate action
v8.7.0 New feature

SDK bump + L2 validator

No immediate action
v8.6.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
v8.5.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
v8.5.0 New feature

Upgrade machinery hardening

No immediate action
v8.4.2 Bug fix

Fixes app version reporting

No immediate action
v8.4.1 Bug fix

Watchdog naming fix

No immediate action
v8.4.0 Mixed

Quorum weight + drift audit + classification

No immediate action
v8.3.0 New feature

Verdict-correction EWMA + corroboration

Upgrade now
v8.2.1 Security relevant
Dependencies

Go bump + close CVEs

No immediate action
v8.2.0 New feature

Epoch weights + PoE quorum

No immediate action
v8.1.2 Bug fix

O(1) per‑block ComputeAppHash

No immediate action
v8.1.1 New feature

SDK classify proposal arg

No immediate action
v8.1.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
v8.0.1 Bug fix

Postgres quorum fix

Review required
v8.0.0 New feature
Auth RBAC

Cascading grants + domain recovery

Config change
v7.7.1 Maintenance
Auth

Routine maintenance and dependency updates.

No immediate action
v7.7.0 New feature

Full profile via /v1/agent/me

No immediate action
v7.6.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v7.6.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
v7.5.10 Bug fix

REST read consistency fix

No immediate action
v7.5.9 New feature

SAGE_INITIAL_ADMIN_AGENT_ID env var

No immediate action
v7.5.8 Bug fix

Non‑lossy upgrade messages

No immediate action
v7.5.7 Bug fix

Launcher refuses empty/suspect backup

No immediate action
v7.5.6 Maintenance

Routine maintenance and dependency updates.

No immediate action
v7.5.5 Bug fix

Chain reset gating fix

No immediate action
v7.5.4 Bug fix

ABCI mirror registration fix

No immediate action
v7.5.3 Bug fix

Read fixes

No immediate action
v7.5.2 Bug fix

Timeout increase

No immediate action
v7.5.1 Maintenance

Routine maintenance and dependency updates.

No immediate action
v7.1.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v7.1.0 New feature

Query‑expansion support

No immediate action
v7.0.0 New feature

Claude Code lifecycle hooks

v6.8.8 Bug fix

Fixed Cerebrum status pill dispatch based on the embedding provider.

Full changelog

SAGE v6.8.8

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f3a8274f6f933c0c8f222ceca342aa6ac77186e4 chore: bump v6.8.7 → v6.8.8 (CEREBRUM embedder status pill)
  • e51087df8fb33ffa15dcd66c997ce94fb34d22f3 fix(cerebrum): status pill dispatches on embedding.provider (#24)
v6.8.7 New feature
Notable features
  • Added OpenAI‑compatible embedding provider.
  • Updated wizard form to support OpenAI flow and added Ollama Named() parity.
Full changelog

SAGE v6.8.7

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 470b645a71dea35b2c52b38b0f8917ffa1181493 feat(embedding): add OpenAI-compatible embedder provider (#22)
  • e0c8d286ca199bc39985c92a9010e17bcd00d7cc feat(wizard,embedding): openai-compatible wizard form + Ollama Named() parity (v6.8.7)
v6.8.6 New feature
Notable features
  • Public‑by‑default classification and filter observability for ABCI and REST
Full changelog

SAGE v6.8.6

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 2a1aa7f2f51197d3285dbbb22bf14fad1f306f6e feat(abci,rest): public-by-default classification + filter observability (v6.8.6)
v6.8.5 Bug fix

Fixed admin‑bootstrap escape hatch issue when SQL contains admin or chain identifiers.

Full changelog

SAGE v6.8.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • a0137f0e539d41fba12621900ca620d45925b82a fix(abci,rest): admin-bootstrap escape hatch when SQL has admin/chain doesn't (v6.8.5)
v6.8.4 Bug fix

Fixed preservation of agent permissions across re-registration and PATCH operations.

Full changelog

SAGE v6.8.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 67f248ab605b70fa320e3a6145abb273c16247df fix(abci,rest): preserve agent permissions across re-register + PATCH semantics (v6.8.4)
v6.8.3 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v6.8.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 4f99e756104032e10c7b35d69ac88d1e561861a9 chore: bump v6.8.2 → v6.8.3 (PyPI republish — init.py drift)
v6.8.2 Bug fix

Fixed ABCI auto‑register capture to exclude the sage-* domain prefix.

Full changelog

SAGE v6.8.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 932101a136ac3a484dedcf518d1068b2a4f9bfbe fix(abci): carve out sage-* domain prefix from auto-register capture (v6.8.2)
v6.8.1 New feature
Notable features
  • Windows parity for CEREBRUM ChatGPT setup
Full changelog

SAGE v6.8.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 9ffd595fb01fa8945ea970439ac905316011da8f feat(wizard): v6.8.1 - Windows parity for CEREBRUM ChatGPT setup
v6.8.0 New feature
Notable features
  • OAuth Dynamic Client Registration (DCR) now persists clients and requires mandatory state, CSRF nonce, and gated roster.
Full changelog

SAGE v6.8.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 9514dedc17354500bafde198e11f826f0f2a2422 chore(abci,rest,mcp): clamp setpermission, sanitize broadcast errors, lock cors
  • f080bbbbac1e327e8f11dd2bbb99ec1ce24cd0d4 chore(oauth): bind issued bearers to node operator identity
  • 7d12c5dd96582c7b6f98bc994787a724103c5d95 chore(oauth): persist DCR clients, mandatory state, csrf nonce, gated roster
  • 5b7a3904bdbe89b03fca786b00212c0b303a1cb0 chore(web): tighten wizard auth + cors + file modes
  • 633086c2e14b2cbf7970e0bc8bfbb4bb0f483d36 chore: bump v6.7.5 → v6.8.0
  • 202849aff49321c1039dc00e108c3ed15874eea5 chore: drop unused broadcastErrorStatus wrapper + tighten clearance type
  • 4cdac9184f686ac9fe71ff28c8b615a153b54fa2 docs(site): add v6.8 hardening note + drop yanked v6.7.5 references
  • 58e5bea347e00289e3e053b0c776436fae34a41c docs(site): refresh landing page for v6.8 + restructure ChatGPT path
v6.7.5 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v6.7.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 2213df6d593fd85beea592eed6f199f7678d5812 v6.7.5 — DCR, RFC 9728, consent dropdown, SPA wizard hop
v6.7.4 New feature
Notable features
  • Autostart errors no longer cause fatal failures (non‑fatal handling)
  • Added Cloudflare zone dropdown for selection
Full changelog

SAGE v6.7.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • dadf9f03a4d824bd572618c4aedf28a51fe02a0a fix+feat: v6.7.4 — autostart non-fatal + Cloudflare zone dropdown
v6.7.2 New feature
Notable features
  • OAuth 2.0 + PKCE wrapper for ChatGPT MCP connector compatibility
Full changelog

SAGE v6.7.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 70c1b3289c8d3bbb3e0157ae46b4a4b0dc40d611 feat: OAuth 2.0 + PKCE wrapper for ChatGPT MCP connector compat (v6.7.2)
v6.7.1 Bug fix

Fixed shadowing of the /v1/mcp/tokens endpoint.

Full changelog

SAGE v6.7.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 799848c0ec53bfeb36a9461bf48aa84e3db20636 chore: bump v6.7.0 → v6.7.1 (route-shadow hotfix release)
  • 5ef76a69ce04f3ce509a53144add5f1b212a4b88 fix(mcp): unshadow /v1/mcp/tokens by flattening transport route registration
v6.7.0 New feature
Notable features
  • HTTPS-capable HTTP MCP transport (v6.7.0)
Full changelog

SAGE v6.7.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • a6978c4bff19d3a72b0e58f54a1af4c63a0304b7 feat: HTTPS-capable HTTP MCP transport (v6.7.0)
  • eec3063798d996e8e0a6bcc7070ee6be47bceec4 merge: v6.7.0 — HTTPS-capable HTTP MCP transport for ChatGPT/Cursor/Cline
v6.6.10 Bug fix

Fixed cryptic FTS5 error when calling sage_recall on vault‑encrypted nodes.

Full changelog

SAGE v6.6.10

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 3db97decae508b332480deb1b17e6b32fe1acb43 fix: sage_recall surfaces cryptic FTS5 error on vault-encrypted nodes (v6.6.10)
v6.6.9 Bug fix

Fixed org name lookup endpoint and silent no‑op behavior when non‑admins attempt to update agent permissions.

Full changelog

SAGE v6.6.9

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 7146d119fa4d91fb1701a6fcda3cfca4d13315e7 fix: org name lookup endpoint + SDK hex-vs-name routing (v6.6.9)
  • dcfd0c0edfe98c6ad65c9f3eeec992424712d341 fix: silent no-op on PUT /v1/agent/{id}/permission for non-admins (v6.6.9)
v6.6.8 Bug fix

Fixed multi‑org membership no longer stripping access.

Full changelog

SAGE v6.6.8

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 07612998adff09b0e810f14fbe875d6b0a85b0e6 fix: multi-org membership no longer strips access (v6.6.8)
v6.6.7 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v6.6.7

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • e8b337c25fdb88113f51ecee3e78c1bbf284761a fix: golangci-lint shadow violations in v6.6.6 release (v6.6.7)
v6.6.5 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v6.6.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 9262361d4ba044bf92d1483dde01c6c22cac747e chore: v6.6.5 — align Python SDK version with SAGE release
v6.6.4 Bug fix

Fixed SQLite pragma application, transaction serialization, and post‑commit context handling.

Full changelog

SAGE v6.6.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • b26596360f38a57241af621af0ec07219b8f4ebe fix: SQLite pragma application, tx serialization, and post-commit context
v6.6.3 Maintenance
⚠ Upgrade required
  • Python SDK bump: install `sage-agent-sdk==6.6.3` via `pip install -U sage-agent-sdk==6.6.3`.
  • Docker image `ghcr.io/l33tdawg/sage:6.6.3` (multi‑arch amd64+arm64) includes the HEALTHCHECK with a 5 minute start period; also tagged `latest`.
  • No node‑side changes required – runtime behavior identical to v6.6.2.
Full changelog

SAGE v6.6.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Deployment-only release — zero Go code changes; binary/API behavior identical to 6.6.2.

After v6.6.2 deploy, the Level Up team reported "6.6.2 hung at boot" — actually a ~3min CometBFT chain-bootstrap window on a fresh data dir during which /health returns 503. REST was bound the whole time; Docker just reported unhealthy and they rolled back unnecessarily. This release bakes in two preventatives so the next operator doesn't repeat the same heart attack.

deploy/Dockerfile.abci — HEALTHCHECK with cold-start window

HEALTHCHECK --interval=15s --timeout=5s --start-period=5m --retries=3 \
    CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:8080/health || exit 1

start_period=5m covers the CometBFT cold-start window so containers don't flap to unhealthy during normal bootstrap. interval=15s / timeout=5s / retries=3 keeps post-startup detection responsive.

docs/ADMIN_BOOTSTRAP.md — chain-bootstrap-window section

New section explaining the cold-start symptom and the diagnostic:

  • Symptom: container shows unhealthy for the first ~3min; curl /health returns 503 with body {"status":"unhealthy"} (REST is bound, just waiting for CometBFT).
  • Diagnostic: curl localhost:8080/health from inside the container — 503-with-body means bootstrap (wait), connection-refused means actual bind failure (investigate).
  • Orchestrator guidance: Docker compose start_period: 5m; Kubernetes startupProbe with failureThreshold × periodSeconds ≥ 300s (e.g. failureThreshold: 30, periodSeconds: 10), with liveness/readiness only running after that.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.6.3 — version bump only, no SDK code change. pip install -U sage-agent-sdk==6.6.3.
  • Docker: ghcr.io/l33tdawg/sage:6.6.3 — multi-arch (amd64+arm64), also tagged :latest. The HEALTHCHECK is baked in — pull this image and your docker ps cold-start status will go starting → healthy cleanly without manual intervention.
  • No node-side action required — runtime behavior is identical to 6.6.2.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.6.2 Breaking risk
⚠ Upgrade required
  • Python SDK update to `sage-agent-sdk==6.6.2` (behavior unchanged).
  • Docker image `ghcr.io/l33tdawg/sage:6.6.2` is multi‑arch and also tagged `latest`.
  • Cold‑start gotcha: on a fresh data directory the post‑migration bootstrap takes ~3 minutes, during which `/health` returns 503; set container health probe start period to ≥5 min if using this version directly.
Notable features
  • New `X-SAGE-Filter-Applied` header and `filtered` JSON envelope indicate which silent‑hide filters ran on `/v1/memory/list`, `/query`, and `/search`.
  • `/list` now returns `filtered.total_before_filter` and `filtered.visible` to differentiate empty domains from RBAC‑hidden results.
  • TopSecret org members (`clearance=4`) automatically bypass the `submitting_agents` RBAC filter, removing the need for `visible_agents="*"` boilerplate.
Full changelog

SAGE v6.6.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Addresses Level Up post-6.6.1 feedback on silent hiding ("empty result vs filtered-out is indistinguishable") and homogeneous-trust boilerplate (visible_agents="*" on every agent).

Silent-filter observability (api/rest/memory_handler.go)

/v1/memory/list, /v1/memory/query, and /v1/memory/search now expose two new signals whenever any silent-hide filter ran:

  • X-SAGE-Filter-Applied response header — comma-separated list: rbac_submitting_agents, classification, or both.
  • filtered JSON envelope field with structured detail.

Per endpoint:

  • /listfiltered.total_before_filter + filtered.visible (server runs a second count-only query without SubmittingAgents so the caller can distinguish empty-domain from RBAC-hidden).
  • /query and /searchfiltered.hidden_count for records dropped by the in-handler classification + multi-org gate (topk-bounded, so no meaningful unbounded total).

Previously, identical 200-with-empty results made "empty domain" and "filtered out" indistinguishable — clients had to guess.

Org-clearance-as-seeAll (resolveVisibleAgents)

TopSecret (clearance=4) org members automatically bypass the submitting_agents RBAC filter. Per-domain access control (HasAccessMultiOrg, checkDomainAccess) and per-record classification gates still apply, so this only lifts agent isolation within the agent's existing visibility envelope.

This closes the visible_agents="*" boilerplate that single-org deployments used to need: make everyone a TopSecret member of one org instead, and the wildcard-on-every-agent pattern goes away.

Admin bootstrap docs (docs/ADMIN_BOOTSTRAP.md)

Canonical recovery playbook for empty-list-post-deployment symptoms, including:

  • Three deployment patterns: single-org (recommended for levelup-style deployments), multi-org federated, homogeneous-trust (legacy) — each with setup commands.
  • The chain-reset visibility gotcha — what happens when you wipe ~/.sage/badger/, why general and self look open afterwards, and how each deployment pattern recovers.
  • Quick-reference table of admin endpoints (/v1/agent/{id}/permission, /v1/org/register, /v1/org/{id}/member, /v1/federation/propose, /v1/domain/{domain}/transfer, etc.).

Tests

5 new filter-observability tests + 2 new org-clearance tests in api/rest/filter_observability_test.go. Full test suite green.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.6.2 — version bump only, no SDK behavior change.
  • Docker: ghcr.io/l33tdawg/sage:6.6.2 — multi-arch (amd64+arm64), also tagged :latest.
  • ⚠️ Cold-start gotcha — on a fresh data dir the post-migration chain bootstrap takes ~3min, during which /health returns 503 and Docker may report the container as unhealthy. This is normal, not a hang. v6.6.3 ships a HEALTHCHECK with start_period=5m to absorb this; if you're on 6.6.2 directly, set start_period: 5m in your compose / startupProbe in k8s.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.6.1 Breaking risk
⚠ Upgrade required
  • Take a snapshot of /root/.sage/data before upgrading; lost writes from previous silent drops are not recovered automatically.
  • Monitor for panic "offchain flush failed after 30 attempts" – it indicates SQLite contention and will cause CometBFT to replay the block.
  • Update Python SDK: pip install -U sage-agent-sdk==6.6.1.
Notable features
  • Python SDK version aligned to sage release (sage-agent-sdk==6.6.1)
  • Docker image ghcr.io/l33tdawg/sage:6.6.1 multi‑arch with :latest tag
Full changelog

SAGE v6.6.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Primary fix — offchain flush silent-drop under SQLITE_BUSY contention. On sustained SQLite lock contention, Commit()'s flush retry loop could exhaust (5 attempts × ≤1.6s backoff), log CRITICAL, and silently clear pending writes. BadgerDB had already advanced, so CometBFT reported ABCI caught up on restart and skipped replay — the SQLite rows were lost invisibly, and the REST read path saw the offchain store frozen in the past even though /v1/memory/submit kept returning 201. Fixed by reordering so the offchain flush runs before BadgerDB state is saved, raising the retry budget to 30 attempts (backoff capped at 5s), and panicking on exhaustion so CometBFT replays the block on restart instead of silently skipping it. Two new regression tests guard the invariant (TestCommitRetriesOnSQLITE_BUSYAndEventuallyFlushes, TestCommitPanicsOnExhaustedBUSYAndDoesNotAdvanceBadger).

First surfaced by Level Up prod running 6.5.5: 521 accepted submits with zero new committed memories visible via GET /v1/memory/list since the CRITICAL window opened, across 96 hours.

Upgrade notes

  1. Snapshot first. cp -a /root/.sage/data /root/.sage/data.backup-$(date +%Y%m%d) before you pull. The v6.5.5 silent-drop has already happened on any node showing CRITICAL: atomic flush of pending writes failed in its log — those writes are not recovered by the upgrade alone, because CometBFT won't replay blocks it already considers committed. If those memories matter, keep the snapshot; a dedicated BadgerDB→SQLite replay tool can reconstruct them later (open an issue if you need one).
  2. Post-6.6.1, watch for panic: sage: offchain flush failed after 30 attempts. That's a correctness feature, not a regression. CometBFT will restart the node and replay the block. If you see it fire more than once or twice under normal load, your SQLite is under genuine contention — file an issue with the surrounding log window and we'll tune the retry budget or chase the contention source.
  3. Python SDK: sage-agent-sdk==6.6.1 — version bumped in lockstep. pip install -U sage-agent-sdk==6.6.1.
  4. Docker: ghcr.io/l33tdawg/sage:6.6.1 — multi-arch (amd64+arm64), also tagged :latest.

⚠️ Chain-reset visibility gotcha (all versions, not new in 6.6.1)

Flagged by Level Up post-6.5.4→6.6.1 migration and worth knowing if you've reset chain state between releases: a chain-state reset clears on-chain domain ownership records. Queries against domains with no post-reset writes fall through to the "no owner = open listing" path in /v1/memory/list and look fine. Domains that receive their first post-reset write get a fresh owner record (the first writer) and stop being visible to every other reader whose visible_agents doesn't include that writer. Same node, same agent, different visibility per domain — confusing to debug.

Mitigations (any one):

  • Set the querying agent's role=admin on-chain.
  • Set the querying agent's visible_agents="*" (bare-string wildcard — this is the value recognized by the RBAC check, not the JSON array ["*"]).
  • Explicitly grant the querying agent access on every domain used by the pipeline.

A cleaner path (extending org clearance to imply cross-domain visibility for TopSecret members) is in the v6.6.2 scope. If this bites you before then, the three mitigations above all work today.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 071f4276c02f82a722ba5b09a9a18f34bc7577db chore: align Python SDK version with SAGE release (6.6.1)
  • f029a31e436fa39826870dfdac0d1a14138ec87d fix: offchain flush must not silently drop writes on SQLITE_BUSY — ABCI-vs-offchain divergence (6.5.5/6.6.0)
v6.6.0 Breaking risk
⚠ Upgrade required
  • Upgrade Python SDK to `sage-agent-sdk==6.6.0` to handle the new `on_chain_height` field.
  • Clients using `sage-agent-sdk<6.6.0` will fail parsing re-registration responses; bump the SDK version.
Breaking changes
  • Renamed response key `registered_at` to `on_chain_height` on `/v1/agent/register` endpoint.
Notable features
  • Tags can be submitted with memory and filtered by tags in semantic recall endpoints.
  • SQLite and SDK support tag filtering via subquery; PostgreSQL ignores the filter.
Full changelog

SAGE v6.6.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Tags on propose + tag-filtered semantic recall, plus a wire-level rename to on_chain_height on /v1/agent/register.

Tags reach the hot path

Tags previously lived in the store layer (memory_tags table, SetTags / ListMemoriesByTag) and on the dashboard list endpoint, but were absent from the main submit and semantic-query paths:

  • POST /v1/memory/submit had no tags field, forcing MCP to do a two-step dance (submit, then PUT /v1/dashboard/memory/{id}/tags).
  • POST /v1/memory/query and /v1/memory/search had no tags filter, so callers could attach tags but not filter semantic recall by them.

Now tags flow through the whole pipeline as node-local, non-consensus metadata (same semantics as today — tags are not part of the on-chain tx):

  • Server: SubmitMemoryRequest.Tags (handler calls store.SetTags after broadcastTxCommit returns); QueryMemoryRequest.Tags / SearchMemoryRequest.Tags plumbed into store.QueryOptions.Tags with any-match (OR) semantics.
  • Stores: sqlite.QuerySimilar and SearchByText honor opts.Tags via a subquery against memory_tags. postgres.QuerySimilar ignores the filter (PostgresStore.SetTags is already a no-op).
  • MCP: toolRemember drops the 2-step PUT workaround — single atomic /v1/memory/submit handles tags now.
  • SDK: SageClient.propose(tags=...) and .query(tags=...), sync + async. MemorySubmitRequest.tags / MemorySearchRequest.tags are Optional[list[str]] with exclude_none keeping them off the wire when unset, so existing callers can't accidentally clear tags by omitting the field.
  • Docs: openapi.yaml updated for both request bodies.

Wire-level rename: registered_aton_chain_height on /v1/agent/register

The idempotent already_registered path of POST /v1/agent/register returned an int64 block height under the JSON key registered_at, but:

  • The Python SDK's AgentRegistration model declared registered_at as str | None, so every re-register call failed pydantic validation (input_value=92, input_type=int).
  • The OpenAPI RegisteredAgent schema declared only on_chain_height (integer), never registered_at.

Renamed the response key to on_chain_height on the REST handler, the MCP tool (which parses the same response), and the Python SDK model. The on-disk OnChainAgent.RegisteredAt json tag is unchanged — that's the on-disk serialization for on-chain state and changing it would break storage compatibility for existing nodes.

Tests

sqlite_test.TestQuerySimilar_TagFilter (single-tag, multi-tag OR, no-match, empty-slice no-filter, untagged-memory-never-matches), handlers_test covering submit-with-tags / submit-without-tags (proves SetTags is NOT called when omitted) / query-with-tags reaches QueryOptions.Tags, and sdk test_client propose/query with and without tags.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.6.0 — additive change. pip install -U sage-agent-sdk==6.6.0.
  • Docker: ghcr.io/l33tdawg/sage:6.6.0 — multi-arch (amd64+arm64), also tagged :latest.
  • Wire breaking change for old SDKs — clients on sage-agent-sdk<6.6.0 will fail to parse on_chain_height on the re-register path. Bump the SDK in lockstep.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.5 Bug fix
⚠ Upgrade required
  • Upgrade Python SDK to sage-agent-sdk==6.5.5 via `pip install -U sage-agent-sdk==6.5.5`
  • Use Docker image ghcr.io/l33tdawg/sage:6.5.5 (multi‑arch, also tagged :latest)
  • Shared domains `general` and `self` become write‑any for authenticated agents after upgrade; use `TransferDomain` to correct ownership of other misconfigured domains
Notable features
  • `RegisterDomain` now performs check‑and‑set, returning `ErrDomainAlreadyRegistered` on overwrite
  • New `TransferDomain` API for authorized domain ownership transfers
Full changelog

SAGE v6.5.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Primary fix — RBAC ownership theft + misleading broadcast error.

Two bugs were masquerading as Broadcast error: Failed to broadcast transaction to CometBFT when in reality CometBFT was fine and the FinalizeBlock step was returning access denied: agent X has no write access to domain general. Agents saw the generic broadcast message and chased ghost CometBFT issues.

Root cause

  • RegisterDomain (internal/store/badger.go) did an unconditional txn.Set, so any path that called it would overwrite existing ownership silently.
  • processMemorySubmit's auto-register fallback (introduced in v4.5.0) meant that when GetDomainOwner transiently returned empty, the next writer "captured" the domain. Over multiple upgrades, ownership of general and self drifted through several agents, leaving the current writers locked out.

Fixes

  • Reserve general and self as shared catch-all domains in processMemorySubmit — never auto-registered, no ownership check, any authenticated agent can write.
  • RegisterDomain is now check-and-set — returns ErrDomainAlreadyRegistered if the key already has a non-empty owner. Added TransferDomain as the explicit authorized-transfer path for admin ops.
  • Real error surfacing — REST handlers (memory/vote/governance submit, vote, challenge, forget, corroborate, gov propose/vote/cancel) now surface the actual broadcast error via err.Error() and return 403 on access-denied / validator-set rejections.

Tests

Regression coverage for: shared domains bypass ownership, RegisterDomain refuses overwrite, TransferDomain accepts authorized transfer, owned domains still gate writes correctly.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.5.5pip install -U sage-agent-sdk==6.5.5. No SDK behavior change.
  • Docker: ghcr.io/l33tdawg/sage:6.5.5 — multi-arch (amd64+arm64), also tagged :latest.
  • If your node has a stolen general or self ownership from prior versions, the fix takes effect on upgrade — those domains stop checking ownership entirely. For other domains where ownership is wrong, use TransferDomain (admin) to repoint.

Known issue (fixed in 6.6.1)

If your 6.5.5 node ever logged CRITICAL: atomic flush of pending writes failed, that pending batch was silently lost — BadgerDB advanced but the offchain SQLite did not, and CometBFT skipped replay on restart. Snapshot your data dir before upgrading to 6.6.x if you might need to recover those memories with a future replay tool. See v6.6.1 release notes for the full fix.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.4 Breaking risk
⚠ Upgrade required
  • Upgrade Python SDK to `sage-agent-sdk==6.5.4` via `pip install -U sage-agent-sdk==6.5.4`.
  • Use Docker image `ghcr.io/l33tdawg/sage:6.5.4` (multi-arch amd64+arm64), also tagged `:latest`.
Notable features
  • `POST /v1/memory/{id}/forget` endpoint added as thin alias for `/challenge`, accepting optional reason with default fallback.
  • Python SDK `SageClient.forget()` (sync) and `AsyncSageClient.forget()` (async) methods introduced, plus `ForgetRequest` model.
Full changelog

SAGE v6.5.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

POST /v1/memory/{id}/forget endpoint + SDK forget() method.

Closes a semantic gap where "forget" was the user-facing verb across MCP (sage_forget), dashboard events, and documentation — but the REST API only exposed POST /v1/memory/{id}/challenge. External clients (Level Up's sage_bridge.py) hit 405 Method Not Allowed trying POST /v1/memory/{id}/forget.

REST

  • New route POST /v1/memory/{id}/forget — thin alias for /challenge.
  • Accepts {"reason": "..."} (optional). When omitted, substitutes "deprecated by user". Unlike /challenge which requires a non-empty reason, /forget is intentionally forgiving — callers often just want to dedupe.
  • Builds the same TxTypeMemoryChallenge under the hood, so consensus/validator logic is unchanged.

Python SDK

  • SageClient.forget(memory_id, reason=None) (sync)
  • AsyncSageClient.forget(memory_id, reason=None) (async)
  • New ForgetRequest model.

Tests

3 Go handler tests (success / default reason / 404) + 4 Python SDK tests (sync+async × with-reason+without).

Upgrade notes

  • Python SDK: sage-agent-sdk==6.5.4pip install -U sage-agent-sdk==6.5.4 to get forget().
  • Docker: ghcr.io/l33tdawg/sage:6.5.4 — multi-arch (amd64+arm64), also tagged :latest.
  • Existing /v1/memory/{id}/challenge callers are unaffected.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.3 Maintenance
⚠ Upgrade required
  • Python SDK: `sage-agent-sdk==6.5.3` — version bump only, no code change.
  • Docker: `ghcr.io/l33tdawg/sage:6.5.3` — multi-arch (amd64+arm64), also tagged `:latest`.
Full changelog

SAGE v6.5.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

CI revert + RBAC regression test backfill.

  • Reverts 6.5.2's overwrite: true on the GitHub Pages upload step — the flag didn't address the actual failure mode for our docs deploy.
  • Backfills RBAC regression tests in api/rest/rbac_bugs_test.go (7 new tests) covering the three visibility bugs Level Up reported against SAGE 4.4.0:
    • visible_agents="*" not persisted through the broadcast tx
    • Domain-filtered /v1/memory/query ACL stricter than the unfiltered list path
    • grant_access providing auth without visibility
      All three were fixed in v4.5.0 (5228ea9); these tests lock the fixes in. The test suite uses a filter-honouring mock memory store — the default mock returns all memories regardless of filter and would silently hide RBAC regressions.
  • Wildcard-permission persistence test in internal/abci/app_test.go (+1 test): proves the bare-string "*" wildcard persists through both BadgerDB and the SQLite pending write. The prior test used ["*"] (a JSON array), which doesn't exercise the wildcard code path.

No runtime or SDK behavior changes — purely test and CI hygiene.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.5.3 — version bump only, no SDK code change.
  • Docker: ghcr.io/l33tdawg/sage:6.5.3 — multi-arch (amd64+arm64), also tagged :latest.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.2 Breaking risk
⚠ Upgrade required
  • Python SDK version bump to sage-agent-sdk==6.5.2 (no code change).
  • Docker image ghcr.io/l33tdawg/sage:6.5.2 is multi-arch (amd64+arm64) and also tagged :latest.
Full changelog

SAGE v6.5.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

CI fix — GitHub Pages duplicate-artifact errors. Adds overwrite: true to the actions/upload-pages-artifact step to prevent the docs-deploy workflow from failing on the duplicate-artifact name collision that started after a recent action version change.

⚠️ This workaround turned out to be ineffective for the actual failure mode — see v6.5.3 which reverts it. If you're catching up the changelog, treat 6.5.2 as a CI-only release that's effectively superseded by 6.5.3.

No runtime, API, or SDK behavior changes. No node action required.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.5.2 — version bump only, no SDK code change.
  • Docker: ghcr.io/l33tdawg/sage:6.5.2 — multi-arch (amd64+arm64), also tagged :latest.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.1 Breaking risk
⚠ Upgrade required
  • Upgrade Python SDK to sage-agent-sdk==6.5.1 (pip install -U sage-agent-sdk==6.5.1).
  • Use Docker image ghcr.io/l33tdawg/sage:6.5.1 (multi-arch, also :latest).
  • Existing `proposed` memories persist; run manual deprecation to remove them from `/v1/memory/list?status=proposed`.
Full changelog

SAGE v6.5.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

What's in this release

Primary fix — stuck-proposed memory deprecation + validator vote dedup. When all validators voted on a memory but the 2/3 quorum threshold was not reached (e.g. a 2–2 tie on a 4-validator cluster), the memory stayed in proposed status forever. The validator ticker re-evaluated proposed memories every 2 seconds and submitted a fresh vote each pass — flooding the chain with ~1.4M redundant MemoryVote transactions over 8 days for a single stuck memory.

Two fixes:

  • checkAndApplyQuorum: when all eligible validators have voted but quorum is not met, transition the memory to deprecated instead of leaving it in proposed.
  • startAppValidators: per-session set of memory IDs already voted on this run, so the ticker no longer re-submits duplicate votes for the same memory after a node restart.

Upgrade notes

  • Python SDK: sage-agent-sdk==6.5.1pip install -U sage-agent-sdk==6.5.1. No SDK behavior change.
  • Docker: ghcr.io/l33tdawg/sage:6.5.1 — multi-arch (amd64+arm64), also tagged :latest.
  • Existing proposed memories from prior versions remain; the ticker simply stops re-voting on them. Run a manual deprecation if you want them out of /v1/memory/list?status=proposed.

Quick Start (sage-gui)

./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

v6.5.0 New feature
⚠ Upgrade required
  • Python SDK v6.1.0 adds `ca_cert` parameter; setting it to `False` now correctly disables verification
  • Docker deployments can use `amid --tls-cert`, `--tls-key`, `--tls-ca` flags and mount cert volumes per node
Notable features
  • REST API serves HTTPS by default; personal mode auto-generates self‑signed certs on first boot
  • Quorum mode uses a per‑quorum ECDSA P-256 CA distributed during `quorum-init`/`quorum-join`
  • New internal TLS certificate infrastructure (`internal/tlsca/`) with CLI monitoring
Full changelog

Encrypted Node-to-Node Communication

No plaintext memories on the wire. v6.5 completes the LAN hardening cycle with transport encryption for all SAGE quorum deployments.

Highlights

  • TLS Everywhere — REST API serves HTTPS by default. Personal mode auto-generates self-signed certs on first boot. Quorum mode uses a per-quorum ECDSA P-256 CA distributed during quorum-init/quorum-join.
  • CometBFT P2P Already Encrypted — Verified that CometBFT v0.38.15 encrypts all validator gossip via SecretConnection (X25519 DH + ChaCha20-Poly1305). Documented, not new, but now part of the security story.
  • TLS Certificate Infrastructure — New internal/tlsca/ package with CA generation, node cert generation, TLS config builders. sage-gui cert-status CLI for monitoring expiry.
  • TLS-Aware Clients — MCP server auto-detects HTTPS when certs exist. Go internal clients (seed, vault, mcp) use 3-tier fallback: SAGE_CA_CERT env → ~/.sage/certs/ → system CAs.
  • Python SDK v6.1.0ca_cert parameter for TLS verification. Bug fix: ca_cert=False now correctly disables verification. 64 tests passing.
  • Docker TLSamid supports --tls-cert, --tls-key, --tls-ca flags. Production compose mounts cert volumes per node.

What Changed

  • 36 files changed, +1,962 lines
  • 20/20 integration tests on 4-validator Docker cluster
  • 14 internal packages pass with race detector
  • Also fixed: deploy/init.sql missing provider column, integration test RBAC domain conflicts, .dockerignore for faster Docker builds

Foundation for v7.0

Certificates include ExtKeyUsageClientAuth for future mTLS. Per-quorum CA model supports cross-quorum federation. Certificate rotation can be governance-proposal-driven.

Full Changelog: https://github.com/l33tdawg/sage/compare/v6.0.0...v6.5.0

v6.0.0 New feature
Notable features
  • Add MCP governance tools and Python SDK governance methods
  • Dynamic validator set changes with zero‑downtime support
Full changelog

SAGE v6.0.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 2ea831dd2722bd135d8826ad9d854c567ec8aadb feat: add MCP governance tools and Python SDK governance methods
  • aa9fd159736be7203d3610cc2ba73194dcf0343d feat: v6.0 dynamic validator governance — zero-downtime validator set changes
  • 9279e1f9a77bbb2a32e8fb06ae0f363c6b50f9be fix: resolve golangci-lint issues in governance code
v5.4.5 Maintenance
Notable features
  • Added OLLAMA_URL and OLLAMA_MODEL env var support for Docker deployments
Full changelog

SAGE v5.4.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • aadb637f8263ecdbe2917bf32f1b1b67a4e91eba fix: add OLLAMA_URL and OLLAMA_MODEL env var support for Docker deployments
v5.4.4 Bug fix

Fixed broadcast_tx_commit timeouts by enabling empty blocks in single‑node mode.

Full changelog

SAGE v5.4.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 34bca066f7235a00d7cc0f464906fafbc826319f fix: enable empty blocks in single-node mode to prevent broadcast_tx_commit timeouts
v5.4.3 Bug fix

Fixed returning null for empty query results; now returns empty arrays.

Full changelog

SAGE v5.4.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • caacdd359279baee932c1368e44776e390a25d7b fix: return empty arrays instead of null for empty query results
v5.4.2 Bug fix

Fixed thread agent nonce handling in transaction codec and ABCI verification.

Full changelog

SAGE v5.4.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 5125e8215b86dd71e7ca8b1ba5dd7c9eb44b27b0 fix: thread agent nonce through tx codec and ABCI verification
v5.4.1 Bug fix
Security fixes
  • Added nonce to request signing to prevent sub‑second replay collisions
Full changelog

SAGE v5.4.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 310a47df96b0b5d29ed8f3f68a4f3f5f3dde4e59 fix: add nonce to request signing to prevent sub-second replay collisions
v5.4.0 New feature
⚠ Upgrade required
  • `SAGE_EMBEDDING_PROVIDER` env var can be used to override the embedding provider in Docker deployments
  • FTS5 indexing is skipped when Vault encryption is active
Notable features
  • SQLite FTS5 full‑text search fallback with BM25 ranking when Ollama is unavailable
  • New `docker-compose.sage-gui.yml` for single‑node deployment of sage-gui with Ollama sidecar
Full changelog

What's New

FTS5 Full-Text Search Fallback

When Ollama is unavailable (Docker, air-gapped, no GPU), SAGE now falls back to SQLite FTS5 full-text search with BM25 ranking instead of meaningless hash-based cosine similarity. sage_recall and sage_turn automatically detect the embedding mode and route through the right search engine.

  • Semantic() bool on Provider interface — hash returns false, Ollama returns true
  • FTS5 virtual table (memories_fts) with porter stemming for intelligent word matching
  • POST /v1/memory/search — text-based search with same RBAC/access control as /v1/memory/query
  • GET /v1/embed/info — returns embedding provider metadata so clients can detect the mode
  • Vault-safe: FTS5 indexing is skipped when encryption is active

Docker Compose for sage-gui + Ollama

New docker-compose.sage-gui.yml at project root — a single-node deployment with Ollama sidecar that pulls nomic-embed-text on first start:

docker compose -f docker-compose.sage-gui.yml up -d

Also adds SAGE_EMBEDDING_PROVIDER env var override so Docker users can switch to Ollama without mounting a config file.

Full Changelog

  • 15 files changed, 589 insertions, 73 deletions
  • All 17 test packages pass with -race
v5.3.2 Bug fix

Fixed SQLite busy errors by serializing all writes through writeMu.

Full changelog

SAGE v5.3.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • dd5fe0470e09f8bf726d006c3f01d071aa436640 fix: serialize all SQLite writes through writeMu to prevent SQLITE_BUSY
v5.3.1 Bug fix

Fixed CometBFT height deserialization causing HTTP 500 and resolved SQLite write contention errors.

Full changelog

Bug Fixes

  • CometBFT height deserializationbroadcast_tx_commit response returns block height as a JSON string ("6294"), but the Go struct expected int64. This caused json: cannot unmarshal string into Go struct field .result.height of type int64 and HTTP 500 on all /v1/memory/submit calls. Fixed with json:",string" tag.

  • SQLite write contention — Added write mutex to SQLiteStore.RunInTx to serialize write transactions at the Go level. SQLite's _busy_timeout doesn't reliably handle concurrent DEFERRED transactions that both escalate to write locks, resulting in SQLITE_BUSY errors during ABCI Commit flushes.

Files Changed

  • api/rest/memory_handler.go — height field tag fix
  • internal/store/sqlite.go — write mutex on RunInTx
  • api/rest/handlers_test.go — test mock now returns height as string
v5.3.0 New feature
⚠ Upgrade required
  • When using production deployment, compose with both `docker-compose.yml` and the new `docker-compose.prod.yml` to apply security hardening (PostgreSQL SSL, CORS restrictions, read‑only filesystems).
  • Existing CI pipelines should add the `make byzantine` target for fault injection testing.
Notable features
  • Consensus‑First Write Ordering: all memory submissions pass full BFT consensus via `broadcast_tx_commit` before being visible to queries.
  • Byzantine Fault Tests in CI: new `make byzantine` target runs fault injection on a 4‑validator Docker cluster (1‑node failure continues, 2‑node halt stops chain).
  • Docker Security Hardening: ABCI containers run as non‑root user, PostgreSQL enabled with SSL, restricted CORS, read‑only root filesystems, localhost‑only ports via `docker-compose.prod.yml`.
Full changelog

What's New

Consensus-First Write Ordering

Memory submissions now go through full BFT consensus before appearing in the query layer. The REST handler uses broadcast_tx_commit and a supplementary data cache so ABCI Commit is the sole write path to the offchain store. Eliminates the pre-consensus data visibility window.

Byzantine Fault Tests in CI

New make byzantine target and GitHub Actions job that spins up a 4-validator Docker cluster and runs fault injection tests — 1-node failure (chain continues), 2-node halt (chain stops), and recovery after restart.

Docker Security Hardening

  • ABCI containers run as non-root (sage user)
  • New docker-compose.prod.yml override: PostgreSQL SSL, restricted CORS, read-only root filesystems, localhost-only port bindings
  • Usage: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Benchmark Reproducibility

Python benchmark (make benchmark) now generates real Ed25519 keypairs and signs requests with the correct canonical format (method + path + body + timestamp). No more placeholder auth tokens.

Multi-Node Upsert Safety

InsertMemory upserts in both PostgreSQL and SQLite use COALESCE to safely preserve non-NULL supplementary data (embeddings, provider metadata) regardless of write order across validators.


Full changelog: https://github.com/l33tdawg/sage/compare/v5.2.2...v5.3.0

🤖 Generated with Claude Code

v5.2.2 Bug fix

Fixed the sage_remember tool description to guide agents to use the fact type for infrastructure.

Full changelog

SAGE v5.2.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • caac77e4b70c221cdb1c40c770650b9b27ee93d0 fix: sage_remember tool description guides agents to use fact type for infrastructure
v5.2.1 Bug fix

Fixed self‑updater blocking GitHub release‑assets redirects.

Full changelog

SAGE v5.2.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 523da22f215bc1aed13755fb92e47b7c6f7ebf11 fix: self-updater blocks GitHub release-assets redirect
v5.2.0 New feature
Notable features
  • Added immutable RegisteredName and mutable DisplayName fields for agent identity
Full changelog

SAGE v5.2.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • c5e726e2157b30a24362b15f80648d183b1f726d feat: immutable RegisteredName + mutable DisplayName for agent identity
v5.1.0 Bug fix

Fixed agent rename split‑brain between GUI and on‑chain state.

Full changelog

SAGE v5.1.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 1313d84ac7c4a4f4f82414d630031cdc564c4016 fix: agent rename split-brain between GUI and on-chain state
v5.0.12 Bug fix

Fixed mcp install --token to respect SAGE_IDENTITY_PATH and made Docker containers accept external requests.

Full changelog

SAGE v5.0.12

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 501fc470f59137da92521d53e0edd0fbbebcb3ee fix(mcp): make mcp install --token respect SAGE_IDENTITY_PATH
  • 62b4987039ffe78bf1f14fc77515175ba5a0aa43 fix(mcp): respect SAGE_IDENTITY_PATH env var (highest priority)
  • 26d2a26bdf2f47d1d53470f22982c38568c0926c fix: Docker container binds 0.0.0.0 — accepts external requests (#16)
v5.0.11 Bug fix

Fixed Docker container restart loop by defaulting to serve mode.

Full changelog

SAGE v5.0.11

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • c91e6cee864a0760f82a4ea6bd91ba388bce2472 fix: Docker container default to serve mode — fixes restart loop (#14)
v5.0.10 New feature
Notable features
  • Add SAGE_IDENTITY_PATH env var for configuring agent identity location.
  • Introduce AgentIdentity.default() helper method in the SDK.
Full changelog

SAGE v5.0.10

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f33c3e9bddd31c61acd4fb183d89631b731ac332 chore: bump version to 5.0.10 — UI fix + SDK follow-up
  • b0cad4c65e8c9a1debf0237a07712e8cec257fcd feat(sdk): add SAGE_IDENTITY_PATH env var + AgentIdentity.default()
v5.0.9 Bug fix

Fixed startup hangs by removing stale CometBFT consensus WAL on upgrade.

Full changelog

SAGE v5.0.9

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • a8a479b3fd5cad1e77dfe5fd59acce5dba992faf chore: bump version to 5.0.9
  • 7b65d874ca67c771e9f7fc9c360d068a77eac8b9 fix: remove stale CometBFT consensus WAL on upgrade — prevents startup hang
v5.0.8 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v5.0.8

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • a404813 fix: bump rate limit from 100/min to 10k/min, speed up seed script
  • e8377f2 docs: update README changelog to v5.0.7
  • 9a41241 chore: bump SDK version to 5.0.8 — fix version mismatch
v5.0.7 Bug fix

Fixed freed minds counter regression by using floor plus delta instead of baseline.

Full changelog

SAGE v5.0.7

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 9deb02b774f6038b4ea1881d3391e96180c66edb fix: SDK query param signing + pipeline target validation
  • d7e7a8a551314908c766b14856049006175b9afe fix: freed minds counter regression — use floor+delta instead of baseline
v5.0.6 Bug fix

Fixed SDK query parameter signing and freed minds counter regression.

Full changelog

SAGE v5.0.6

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 9deb02b774f6038b4ea1881d3391e96180c66edb fix: SDK query param signing + pipeline target validation
  • d7e7a8a551314908c766b14856049006175b9afe fix: freed minds counter regression — use floor+delta instead of baseline
v5.0.5 Bug fix

Fixed MCP server crash on startup caused by unexpanded tilde in SAGE_HOME.

Full changelog

Fix: Tilde expansion in SAGE_HOME

Bug: SAGE MCP server crashes on startup in Claude Desktop with mkdir ~: read-only file system.

Root cause: When sage-gui mcp install writes the MCP config, SAGE_HOME could contain a literal ~ (e.g., ~/.sage). Go's os.MkdirAll doesn't expand ~ like a shell, so it tries to create a directory literally called ~.

Fix: Added expandTilde() helper that replaces leading ~ with the actual home directory. Applied in all SAGE_HOME resolution paths.

Reported by Modi (Muhammad).

v5.0.4 Bug fix

Fixed backup of the vault key during upgrades and in‑app updates.

Full changelog

SAGE v5.0.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 83d9c5c90ead3aa08bee16f4ce3443f6b29e869e fix: back up vault key on every upgrade and in-app update
v5.0.3 Bug fix

Fixed bug preventing vault key overwrite that caused permanent memory loss.

Full changelog

SAGE v5.0.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • aee325eb50c0ed4911127ab501569856caef5144 fix: prevent vault key overwrite that causes permanent memory loss
v5.0.2 Breaking risk
Security fixes
  • Addressed OpenClaw security scan findings in SKILL.md
Notable features
  • Python SDK v5.0.1 provides complete coverage of the v5 API and includes updated docs
Full changelog

SAGE v5.0.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • b5f799a32dc253293dc10f99c21451e05949a066 chore: rename SAGE Personal to SAGE GUI on landing page
  • c3346049cbde38617c5bcb28bf221e0a96490110 chore: trigger GitHub Pages rebuild
  • f3718797cf4fd838752fa24c36330a25c12d6cda feat: Python SDK v5.0.1 with full v5 API coverage, docs update
  • 8c9a84f309a4ff0dfacf3b9b57a726677b45e0b5 fix: address OpenClaw security scan findings in SKILL.md
  • 41b6814aba89f7a0ba38e0e2f525534a4eb9dc2b fix: auto-reset validator signing state on height regression
  • 7385c32744e7b816f9921bea2340cc925928ac17 fix: paginate GitHub releases API to fix stuck minds freed counter
  • 38af3832b0fe3c4d578297b624cf4e0cedf8474d fix: remove deprecated license classifier from SDK pyproject.toml
v5.0.1 Bug fix

Fixed lint errors and resolved agent names in the pipeline dashboard.

Full changelog

SAGE v5.0.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f46a3e4fd56e326d267e18878ac29b5caef537f6 fix: last unchecked rows.Close in PipelineStats
  • f8ee6d714195916ea484b134a413aff5a22b1a51 fix: lint errors and resolve agent names in pipeline dashboard (v5.0.1)
  • 6ae8f033d3c9f335b5a39daec7b8f459c422e2c6 fix: suppress all gosec false positives for trusted local paths
v4.6.0 New feature
Notable features
  • Vault recovery feature allowing passphrase reset via a recovery key
Full changelog

SAGE v4.6.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • e614dff392fb45ce758117e9fd61104d52201ebc feat: add vault recovery — reset passphrase using recovery key (v4.6.0)
v4.5.8 Breaking risk
Breaking changes
  • Removed `Install SAGE.command` to avoid Gatekeeper block on macOS.
Full changelog

SAGE v4.5.8

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 1ab8af46f76833fd1282de96c056555f5793e73a fix: remove Install SAGE.command to avoid Gatekeeper block on macOS Tahoe
v4.5.7 Bug fix

Fixed macOS Tahoe launch failures and Gatekeeper warnings.

Full changelog

SAGE v4.5.7

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 5351e289388902246014e7f37a364cca526eed44 chore: remove article draft from tracking
  • 9a3ac9dcf78e7c1fdb4c65cc049e3c71b0461fa9 chore: remove redundant gitignore entry (docs/* already covers it)
  • 323f0b25304cc6fe15b3b4edb7ed2751243404d7 fix: resolve macOS Tahoe launch failure and Gatekeeper warnings (v4.5.7)
v4.5.6 Bug fix

Fixes bypassing agent isolation when domain access is approved.

Full changelog

SAGE v4.5.6

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 23a5512d0b6a2e85abdee0fb1dc83a6e79029e96 chore: bump Dockerfile ARG and SKILL.md to v4.5.5
  • 86cd7f9a289da77a6d633b88a4082c6f477472a3 fix: bypass agent isolation when domain access is approved
v4.5.5 Bug fix

Fixed bug where domain-filtered queries excluded memories from other providers.

Full changelog

Fix: Domain-filtered queries now return cross-provider memories

Bug: When querying a specific domain (e.g. design.dockerfile.forensics), SAGE's provider scoping filter silently excluded memories submitted by agents using a different provider. This caused 0 results even when committed memories existed in the domain.

Fix: Provider scoping is now skipped when a domain filter is explicitly specified. The domain filter IS the relevance filter — if you're querying a specific domain, you should see all committed memories in it regardless of which provider created them.

Impact: Any multi-agent pipeline where agents submit memories through different providers (e.g. pipeline agent via REST API, designer agent via MCP) will now correctly see each other's domain-scoped memories.

Changes

  • internal/store/sqlite.go: Skip provider filter in QuerySimilar when DomainTag is set
  • server.json: Bump to v4.5.5
v4.5.4 New feature
Notable features
  • Added on-demand memory mode allowing zero automatic token usage
Full changelog

SAGE v4.5.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 7b5e3fc13bc62f621fa5e48461d457b3a054f36e feat: add on-demand memory mode for zero automatic token usage
  • 74e0162209232f5c2c0f2d26d6ecc37019d1862f fix: use tagged switch for memory mode (staticcheck QF1003)
v4.5.3 New feature
Notable features
  • Added memory mode setting (full/bookend) to reduce token usage
Full changelog

SAGE v4.5.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • c01711007523ca5e90c375476187d2441eb52e13 chore: add glama.json and SECURITY.md for registry scoring
  • 2974c2450d92ec8c590c1cb732a3b61df1f0b86f chore: bump server.json to v4.5.3
  • 3ed4ede86aa7f3cd28b42445b37a727f7d9869fe feat: add memory mode setting (full/bookend) to reduce token usage
  • c2853ac9381aa3d57c71e940ef38be3ae295c69d fix: run hook install on existing MCP configs for upgrade path
v4.5.2 Bug fix

Fixed download counter undercounting and ensured org‑level RBAC checks during agent isolation overrides.

Full changelog

SAGE v4.5.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • d1ea0438350edce2c25c08488fc3b011e35b1bfb chore: bump server.json to v4.5.2
  • ac77ce8bfa262e3a7c3baee272ef571ea420e796 fix(landing): add baseline to download counter to prevent undercounting
  • 238e032050e11d7be12fe127e61a999ae28c39ea fix(rbac): check org-level access in agent isolation override
v4.5.1 Bug fix

Fixed RBAC issues causing incorrect query access and agent isolation for unregistered domains.

Full changelog

SAGE v4.5.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 93690cc10af605d91e46e7ecb2cd7cfe8b5fb413 chore: bump server.json to v4.5.1
  • c9267eb0df98e57af8a5ce38351fe427fca364bd fix(rbac): don't stack DomainAccess and multi-org gates on queries
  • 8ccb1b568b9ccdeaa91c59d6d628df06c1fa7824 fix(rbac): skip agent isolation for unregistered domains
  • 5228ea9c03543e7b03f152f012e4d7bc45cb1638 v4.5.0: fix cross-agent visibility — 4 bugs reported by Level Up pipeline
v4.4.0 New feature
Notable features
  • CEREBRUM UX overhaul with snap‑back physics, UI cleanup, and focus mode improvements
Full changelog

SAGE v4.4.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • e1743caa48dcbee8fd4722dabeb1f43f5cdc1542 v4.4.0: CEREBRUM UX overhaul — snap-back physics, cleanup UI, focus mode improvements
v4.3.6 Bug fix

Fixed auth by including query parameters in signature verification and added memory deduplication.

Full changelog

SAGE v4.3.6

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 4688dfd18b495c3af062af99b4e97d31dc7f907f chore: bump server.json to v4.3.6
  • d9e7522cc1af649c5de1663e09b045532a3f4cf2 fix(auth): include query params in signature verification + memory dedup
v4.3.5 Bug fix
Security fixes
  • Fixed authentication allowing MCP agents to bypass session cookie auth via Ed25519 signatures
Full changelog

SAGE v4.3.5

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 86764f0c89ba2f387de1bf5e13d21d6053f968c3 chore: bump server.json to v4.3.4
  • 006920badead093f51a07f400354078f7de3deba chore: bump server.json to v4.3.5
  • bf173e401bc3713eee71ecdfd1deeb8bf8d6702e fix(auth): allow MCP agents to bypass session cookie auth via Ed25519 signatures
v4.3.4 Bug fix

Fixed rbac: resolveVisibleAgents now falls back to SQLite for dashboard settings.

Full changelog

SAGE v4.3.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 163d6862b7301209ff2a38cca580014b004aa4b9 fix(rbac): resolveVisibleAgents fallback to SQLite for dashboard settings
v4.3.3 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v4.3.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • c98c64f93319aca4693d31fd7208aa5bedaa6b30 fix: embedding provider + visible_agents on-chain broadcast
v4.3.2 Bug fix

Fix for visible_agents not persisting from dashboard PATCH.

Full changelog

SAGE v4.3.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 13878b4f48cf59c5a9c4182de1c4e3d52f2504ab fix(rbac): visible_agents not persisted from dashboard PATCH
  • 93aa13c8218fbf0ec91f09336d0fbe43d246e7bf rename sage-sdk to sage-agent-sdk on PyPI
  • af4900df086cf2dd4c3f8d9e20e70af60f0e6c8a sage-sdk 1.0.0 + CI fix: non-fatal server.json commit
v4.3.1 New feature
Notable features
  • /v1/mcp-config endpoint for agent self‑configuration
Full changelog

SAGE v4.3.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • e5c0550e519f29539e457e4128a871b39e2dc654 feat: /v1/mcp-config endpoint for agent self-configuration
  • b9c123e7f3c8e5692b163b96ec3060a47d854b34 fix(ci): support deploy_pages_only — skip build jobs, run pages deploy independently
  • 1a6d7f586796f83a6ea62aacd4e60b49804266c9 fix(dashboard): canvas hover/click respects agent tab filter
  • 85f8342e7d0c92c1b6d330946fe7f88d093ee055 fix(onboarding): tell agents to run sage-gui mcp install instead of manual config
v4.3.0 New feature
Notable features
  • Synaptic Ledger safeguards added
  • Bulk operations support introduced
Full changelog

SAGE v4.3.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • ccd9da93a0930a2d737ce80b2d905280cb9bc439 fix(ci): update docker/build-push-action to v7.0.0 — stale SHA caused Docker job failure
  • deb5b8d6c1455e92800d4f0b65a933fd278b8589 v4.3.0: Synaptic Ledger safeguards, bulk operations, automated Docker CI
v4.2.2 Breaking risk
Breaking changes
  • Agent memory access is now isolated by default using role-based access control (RBAC).
Full changelog

SAGE v4.2.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 8c6bcf13e0815712c2fb50f9a700bad3ac8228ec v4.2.2: Isolated-by-default RBAC for agent memory access
v4.2.1 Bug fix

Fixes on-chain agent registration canonical body hash mismatch.

Full changelog

SAGE v4.2.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f38be71b9a4ff4126014e79fb7e176303fdb8c33 Add Agent Skills definition for skills.sh discovery
  • 268cb769b3502192512adcb7e7df6140896215bb Bump GitHub Actions to Node.js 24-compatible versions
  • 129a7f6cb6620c7deabfa810f807b30d2f29361f Move skill to repo root for skills.sh discovery
  • ccbca34f17b719ab128f87f574893216c2148eb8 v4.2.1: Fix on-chain agent registration — canonical body hash mismatch
v4.2.0 Bug fix

Fixed upgrade hangs and bulk seeding issues.

Full changelog

SAGE v4.2.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 943bd2644f4fdd54ddda6af863f0d021ac2af3c1 Fix lint: remove invalid gosec taint rules from config, add nolint annotations
  • d1ecea2ccb8d5dec6878fae5e9222459121b74b3 add MCP server badge
  • 16f3355b43133280b19a330657b910d62c4a3ddd v4.2.0: Fix upgrade hang, bulk seeding, malformed URLs, hook auto-install, lint cleanup
v4.1.1 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v4.1.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f5ffc290e2258dc18213d01e17a676b04144939b Fix Linux desktop bundle: strip v prefix from version in tarball name
  • 80f59b98eecb458f4df260bfda547c09891e8368 Fix lint: gosec G306, govet shadow, noctx in sage-launcher
  • fcfceb171af1bf2d40937fd024075a1b1f76450c v4.1.1: Release pipeline — lint gate, workflow_dispatch, fix deploy-pages deps
v4.1.0 New feature
Notable features
  • Native launchers for macOS, Windows, and Linux
  • Task board UI
  • Tab reuse
Full changelog

SAGE v4.1.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 7230c5035ea38d75f81c450995d52579de0ffeca v4.1.0: Native launchers for macOS/Windows/Linux, task board UI, tab reuse
v4.0.0 New feature
Notable features
  • Application validators with BFT consensus for memory validation
Full changelog

SAGE v4.0.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 0845c900684b0e33d357655a4f7227482d1a431f Fix gosec G115 lint: nolint for UnixNano→uint64 conversion
  • fd0f00df6dcd6e0294e6c899a408d4d7caafa386 v4.0.0: Application validators with BFT consensus for memory validation
v3.8.0 New feature
Notable features
  • Agent memory transfers between instances
  • Toast notifications for user feedback
  • SSE heartbeat to keep connections alive
Full changelog

SAGE v3.8.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • c7d71d87c7b1fb10e34bf4ae4a731821fc7670b3 v3.8.0: Agent memory transfers, toast notifications, SSE heartbeat, MCP auto-registration
v3.7.7 Security relevant
⚠ Upgrade required
  • Go runtime updated to version 1.24; golangci-lint upgraded to v2.x with config adjustments
  • CI pipeline now pins GitHub Actions by SHA and GoReleaser for reproducibility
  • x/net dependency bumped to v0.51.0
Security fixes
  • CVE-2025-22869 — upgrade x/crypto to v0.48.0 (addresses OOM and other vulnerabilities)
  • Security audit #2 fixes: panic→error conversion in tx codec, adds OOM protection, hardens CORS, improves URL validation
Full changelog

SAGE v3.7.7

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 2cb8f33e45cd4545de05b4e4c430faf0302054ba Add export pagination and empty DB tests
  • b4adb13b8eebeb425e438900f62740b9c511a4b9 CI: bump Go version to 1.25 and golangci-lint to v1.65.1
  • 4493bace0f23da50d61396309d896186785619ae CI: fix Go version compatibility — downgrade go.mod to 1.24, x/net to v0.50.0
  • 2a7955eb4c12a21c33691db3e283dad26262856e CI: fix golangci-lint v2 compatibility (action SHA is v7, requires v2.x)
  • 1fdb499be6e3061cad226eea0085512420b3a568 CI: fix golangci-lint v2 config (exclude-rules → exclusions.rules)
  • be6d0ce57eb220b1885db0babe90b1cd2a9050db CI: remove typecheck from golangci-lint config (not a linter in v2)
  • 7da6808dc15836218764597a6a80a57886bc90d8 Fix NSIS EnVar plugin checksum in release workflow
  • 4dd41bcf797253b54892ae65cf65ed46d206200c Fix agent "Not registered" and "Never" timestamps — backfill on_chain_height and first_seen
  • b81b367cffd74237beb7e55ca3888eb2ccefb71d Fix agent last_seen "Never" + missing SSE events for corroborate/agent
  • e9c22eabb86b57135abd43e0e6c0041eb0337577 Fix agent on-chain registration: direct BadgerDB+SQLite migration, chi middleware ordering
  • 70f4f5f6c3a6bed9664a8d28deb031b90bab26b0 Fix all golangci-lint v2 issues: errcheck, shadow vars, staticcheck
  • 6c0b89c5308985160e70ea1fc781e3a9eedee777 Fix golangci-lint v2 config: remove invalid max-issues-per-linter/max-same-issues from exclusions
  • b63db12f416a3c18906da3555c5b293e8b831f0c Security audit #2: fix 8 findings — panic→error in tx codec, OOM protection, CORS hardening, URL validation
  • e8505652ddf2a7a714e58deac248e0502d5e6671 Security: harden self-update + cap SSE connections
  • 045dfdc4372a8a2dd174f365e35d27bd7fa0c5f2 Security: increase pairing code entropy, add redemption rate limit
  • 60ba4cf6728fc135debbb8a02e7dae2edea62959 Security: login rate limiting, atomic encryption state, security headers, passphrase min length
  • 02608c3d4453a1fe31784a405ed0665c87401e27 Security: pin GitHub Actions by SHA, pin GoReleaser, add NSIS checksum
  • baba92c35c02d77a323b880f8e7bfd881fbe2ae1 Security: restrict CORS to localhost, sanitize agent name in headers
  • 0304e6f5f1620dcc58fefb0e02483dac9fbf1cfd Upgrade x/crypto to v0.48.0 (CVE-2025-22869), x/net to v0.51.0
v3.7.4 New feature
Notable features
  • Fire SSE event on memory challenge so dashboard shows forget activity
Full changelog

SAGE v3.7.4

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • bab690f2cb5a17b259be6bf4ce40e67ededd4bb9 Fire SSE event on memory challenge so dashboard shows forget activity
v3.7.3 Bug fix

Fixed DMG upgrade bug by comparing binary hashes before copying.

Full changelog

SAGE v3.7.3

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • bf650466bfe86d94b1fcc3f9319f33528ca40df1 Fix DMG upgrade bug: compare binary hashes before copying
v3.7.2 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v3.7.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • bcdec6b2dc6e75b661a64867fe75b311e91bc8e1 Fix lint: remove ineffectual assignment to format in handleExport
  • 6e1f8d5e1bae3ca2b014536fb849d1d6921fe605 Move landing page deploy to release workflow only
  • 594674217147a03fc482914dd478aae13fd34ecd Remove deploy-pages from release workflow (CI handles it)
  • 942c0dd4b359f1bd2c6448e12b743109e576e6e1 v3.7.2: Encryption UX, export/backup, 1Password-style lock
v3.7.1 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v3.7.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 0c99241ee8f60dcd8f07dea9b419f171f60d9856 Fix lint, remove wizard import step, add quotes, dynamic landing page version
  • 97b6a632042ad3d70bd1657d74e0b6037a777711 Remove dead wizard import code, fix landing page layout below fold
v3.7.0 Maintenance
Notable features
  • Import preview/confirm workflow
  • JSONL support for data import
  • Recall settings configuration
Full changelog

SAGE v3.7.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 835de9917ee726587c2168581b61aa5121f14f8c v3.7.0: Import preview/confirm, JSONL support, recall settings, version fixes
v3.6.0 Breaking risk
Breaking changes
  • Command name changed from `./sage-gui` to `./sage-gui serve` for starting the personal memory node
Full changelog

SAGE v3.6.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-gui)

# Download and extract for your platform, then:
./sage-gui setup    # Interactive setup wizard
./sage-gui serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 4b747b0c60dec604aa647e10ac659217b5154e59 Deploy landing page only after all release binaries are built
  • 33dcebf7c06ffa5507ffa7470df841ed33ea3896 Fix lint: errcheck, gosec G115/G306, gosimple S1040, govet shadows
  • c237bbd123c6d8be7bef21896eb6ad49d94ac1be v3.6.0: Import fixes, on-chain memory import, sage-gui rename, agent identity e2e
v3.5.0 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v3.5.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 197199cf7a461f463d57b73e54c58deea8b33131 Add on-chain agent identity, real-time uptime, wider stats panel (v3.5.0)
  • e0010bab216ff0fce2f0aca919215ad2b2f6c028 Fix lint: nosec annotations, shadow vars, noctx in broadcast helper
v3.2.0 New feature
Notable features
  • Kanban task board for managing tasks
  • Per‑agent Brain tabs providing isolated memory views
Full changelog

SAGE v3.2.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 78d0e35298bcff87dcbe7f15447c3a1440e7c35e Add Kanban task board and per-agent Brain tabs
v3.1.0 New feature
Notable features
  • Adds markdown import with smart chunking and unstructured document detection
  • Introduces task memory type: a persistent backlog that does not decay
  • Allows user-defined tags on memories
Full changelog

SAGE v3.1.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • f7cd2e4344c1e6c59b44bddfb12c56c9534cd034 Add markdown import, smart chunking with embeddings, unstructured doc detection, and open-at-login
  • 22414d7082e612891977d0c37a5c2d3f8b133230 Add task memory type: persistent backlog that doesn't decay
  • 6e2be76b58f612575481b563488a0ae24e6a9bf7 Add user-defined tags on memories, fix release CI race condition
  • 77e3115e5fda30f6351fe105e5c7b213bbb2b721 Fix task_status pipeline: flow through ABCI consensus, use dashboard endpoints for MCP
v3.0.2 New feature
Notable features
  • One‑click "Install SAGE.command" replaces drag‑and‑drop upgrade on macOS
  • Future upgrades (≥3.0.2) work via drag‑and‑drop because sage-lite runs from ~/.sage/bin/
Full changelog

SAGE v3.0.2

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

macOS DMG Installer Fix

  • Replaced drag-and-drop "Upgrade SAGE.command" with "Install SAGE.command" — a one-click installer that automatically stops any running SAGE, copies the app to /Applications, and launches the new version

  • Fixes "can't be completed because SAGE is still open" error that users with pre-3.0.1 installations were hitting during upgrades

  • Future upgrades (3.0.2+) will also work via drag-and-drop since sage-lite now runs from ~/.sage/bin/ instead of inside the .app bundle

  • 2ef7e43 Fix macOS DMG upgrade: replace drag-and-drop with one-click installer

v3.0.1 New feature
Notable features
  • Replaced screenshot carousel with an image grid and lightbox
Full changelog

SAGE v3.0.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • a90daf5fdc117739dbf18b79410e89334145b8a1 Fix all golangci-lint errors, fix macOS DMG "in use" bug
  • 6bf0761ff773abfb3c87031b7f24113e90605e91 Fix missing os/filepath imports in pairing_test.go
  • d9cfc6a193b5a8d3e215aba714702d8ea4746977 Replace screenshot carousel with image grid + lightbox
v3.0.0 New feature
Notable features
  • Query‑side domain filtering for agent requests
  • LAN pairing codes to connect agents on the same local network
  • Agent key rotation UI and backend support
Full changelog

SAGE v3.0.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 1af09fe14e5439b1483a868a091be91c60c4cb08 Add Boot Instructions settings, fix landing page migrate steps, 69 e2e tests
  • df0594106fe012bec0a191107702004c3fef3dec Add query-side domain filtering, LAN pairing codes, and agent key rotation
  • 411c6ef1c46db0090b46593a0483247e738af963 Merge v3.0/network-agents: Multi-agent networks, CEREBRUM dashboard, in-app updater
  • 87f5f0eec276c6a3391b8f525fc990c83e04e76b Wire LAN pairing frontend, key rotation UI, tooltips, guide updates, landing page, 66 e2e tests
  • d12fadf404dfe2991a03455346ea0973e6f8d9a8 Wire in-app auto-updater, tabbed settings, graph search redesign, DMG update fix, screenshots, README update, 75 e2e tests
  • acc7b30d0049ead5695e3768df395e8bb864b198 v3.0 Network Agents: agent registry, redeployment orchestrator, access control, CEREBRUM guide, e2e tests
v2.6.1 Breaking risk
Breaking changes
  • MCP server now requires a mandatory boot sequence in its instructions and the inception tool.
Full changelog

SAGE v2.6.1

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 4804472fcfc8c5b883fdd85068013178097a5908 Enforce mandatory boot sequence in MCP server instructions and inception tool
v2.6.0 New feature
Security fixes
  • Fixed gosec G306 by writing MCP config files with 0600 permissions.
Notable features
  • Dashboard rebranded to CEREBRUM with favicon and tooltips.
  • Memory auto‑cleanup added for persistent agent memory.
Full changelog

SAGE v2.6.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 86bfe739a7e3eff1a2bcd83ce5f5eaabb31b15b4 Add memory auto-cleanup, rebrand dashboard to CEREBRUM, add favicon and tooltips
  • fe9d612bf8ca27b96eeef88b676fb72a0595dfac Fix gosec G306: use 0600 permissions for MCP config file writes
  • 7e15927d4419ef6c6d6b346dacdfa73b2db4c966 Fix lint errors, wizard UX bugs, brain icon, auto-install MCP config
  • c1382e7279f49005de707f1f319711e6d313f9e4 Redesign settings page: 2-column grid layout, peers panel, fix countdown
v2.5.0 New feature
Notable features
  • Add conversation import: ChatGPT, Claude.ai, Gemini exports via dashboard
  • Add zoom +/- controls to brain dashboard canvas
  • Auto-inception: seamlessly initialize brain on first MCP tool call
Full changelog

SAGE v2.5.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 210c5acc5ce6b4e554a49e2d956fa0f392af6a88 Add Claude.ai + Gemini migration cards, fix export paths
  • 15600fa062f26d446cccce52a7c2d710a3cd9098 Add chain health dashboard, auto-migration, UX improvements, and tests
  • 1ae7a88269d0f970e455b9786ba93ff0e3bcd19c Add conversation import: ChatGPT, Claude.ai, Gemini exports via dashboard
  • 0a27b25e0156b54552708243b4bd4e20d9693c00 Add zoom +/- controls to brain dashboard canvas
  • 5ed186cf3a7790ab9ad70e782bff8111ba398c9f Auto-inception: seamlessly initialize brain on first MCP tool call
  • ec29daea7db87f86d2511a5107832c1abaa818fc Fix mobile horizontal scroll with overflow-x hidden on html
  • 545bd76dd46863390c690cd066d26abaf6928799 Show latest version number on landing page hero section
v2.3.0 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v2.3.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 708988578bf7d7d053644605cd83514967d8924a AES-256-GCM encryption at rest, turn enforcement, graph colors
v2.2.0 Maintenance

Minor fixes and improvements.

Full changelog

SAGE v2.2.0

Sovereign Agent Governed Experience — persistent, governed memory for AI agents.

Quick Start (sage-lite)

# Download and extract for your platform, then:
./sage-lite setup    # Interactive setup wizard
./sage-lite serve    # Start your personal memory node

See the README for full documentation.

Changelog

  • 7e84beb6e3880c7b2d71fad7897f642edfb7b5be Add MCP connect guide, improve turn nudge timing
  • 5a37dfd6d3a0a132395f12df482da9168adf1b43 Dashboard About section, dynamic version, GA analytics, connect page updates
v2.1.1 New feature
Notable features
  • Multi-provider memory scoping: observations/inferences are provider‑scoped while facts remain shared (configure with SAGE_PROVIDER env var).
  • Signed and notarized macOS DMG eliminates Gatekeeper warnings.
  • Direct download links on landing page platform badges bypass GitHub redirect.
Full changelog

What's New

Multi-Provider Memory Scoping

  • Each AI provider (Claude Code, ChatGPT, etc.) now gets its own memory scope
  • Set SAGE_PROVIDER env var in MCP config to tag memories by provider
  • Facts are shared cross-provider; observations/inferences are scoped
  • No more memory contamination between different AI tools

Signed & Notarized macOS DMG

  • macOS installer is now properly signed and notarized by Apple
  • No more Gatekeeper security warnings — just double-click to install

Direct Download Links

  • Landing page platform badges now link directly to installer downloads
  • No more redirect to GitHub releases page

GoReleaser Fix

  • Fixed tarball archive mismatch that caused v2.1.0 release to fail
v2.0.0 Breaking risk
Notable features
  • Single binary (sage-lite) with SQLite‑based private memory store
  • Interactive setup wizard for history import, Ollama integration, and AI config generation
  • Browser‑based Brain Dashboard showing real‑time force‑directed graph of memories
Full changelog

SAGE Personal v2.0.0 — Give Your AI a Memory

Your AI forgets everything between conversations. Every project, every preference, every lesson learned — gone the moment you close the chat. SAGE Personal fixes that.

This is the first personal edition of SAGE — a single binary that gives any AI agent persistent, private, governed memory. No cloud accounts. No data leaving your machine. Ever.


🚀 Quick Start (Step by Step)

Step 1: Get the code

git clone https://github.com/l33tdawg/sage.git
cd sage

Step 2: Build the binary

You need Go 1.22+ installed. Then:

go build -o sage-lite ./cmd/sage-lite/

This creates a single sage-lite binary. That's your entire SAGE installation.

Step 3: Run the setup wizard

./sage-lite setup

The wizard walks you through everything:

  • Import your chat history — Drag-drop your ChatGPT export (ZIP or JSON) to seed your AI's memory from day one
  • Set up Ollama — The wizard auto-detects if Ollama is installed, helps you download it if not, and pulls the embedding model for you. Or skip this entirely — SAGE works without it using hash-based matching
  • Connect your AI — Generates the MCP config for Claude Desktop, ChatGPT, or Claude Code. Just copy-paste it into your AI client's settings
  • Wake up your AI — Copy the inception prompt into your first conversation. Your AI initializes its memory and you're done

Step 4: Start SAGE

./sage-lite serve

SAGE starts up and opens the Brain Dashboard in your browser at http://localhost:8080/ui/. You'll see your AI's memory visualized as a living neural network — nodes light up, connections form, everything updates in real-time.

Step 5: Just talk

That's it. Talk to your AI normally. It uses its memory tools automatically — remembering projects, learning from mistakes, building up institutional knowledge across every conversation. You don't have to do anything differently.


🧠 What's New in v2.0.0

SAGE Personal (sage-lite)

  • Single binary — no Docker, no databases, no cloud accounts. One file does everything
  • SQLite backend — your memories live in ~/.sage/data/sage.db, a standard SQLite file you can inspect, query, and back up anytime
  • Setup wizard — graphical onboarding that walks non-technical users through every step
  • ChatGPT history import — drag-drop your export file, preview the conversations, seed your memory
  • Auto-open browsersage-lite serve opens the Brain Dashboard automatically
  • Ed25519 signatures — every memory is cryptographically signed with your local key

MCP Server (Model Context Protocol)

Your AI gets 8 memory tools that it uses automatically:

| Tool | What it does |
|------|-------------|
| sage_inception | Initialize memory (run once on first conversation) |
| sage_remember | Store a fact, observation, or inference |
| sage_recall | Search memories by semantic similarity |
| sage_reflect | End-of-task reflection — what worked, what didn't |
| sage_forget | Mark a memory as deprecated |
| sage_list | Browse memories with filters |
| sage_timeline | View memories over time |
| sage_status | Check memory health and stats |

Works with Claude Desktop, ChatGPT, and Claude Code — anything that speaks MCP.

Brain Dashboard

  • Force-directed graph — memories as glowing nodes, connections as edges, clustered by domain
  • Timeline view — memory activity over time with configurable buckets
  • Memory management — inspect, filter, search, edit domain tags, delete memories
  • Health monitoring — Ollama status, memory count, domain count, uptime
  • Real-time updates — Server-Sent Events push changes to the dashboard live
  • Stats panel — aggregate statistics at a glance

Privacy-First Architecture

  • Removed OpenAI embedding provider entirely — nothing leaves your machine, period
  • Ollama embeddings — local semantic search via nomic-embed-text (768-dim), runs on your hardware
  • Hash embeddings — zero-setup fallback that works without any external software
  • No telemetry, no accounts, no API keys phoning home

Documentation

  • README rewritten — short, accessible, focused on personal use. 3-command install, not a wall of technical specs
  • Architecture guide — all technical content (multi-node deployment, Python SDK, RBAC, monitoring) moved to docs/ARCHITECTURE.md
  • Getting Started guide — updated for privacy-first setup (Ollama + Hash only)
  • GitHub Pages landing page — visit l33tdawg.github.io/sage

📋 Requirements

  • Go 1.22+ to build from source
  • That's it. No Docker, no databases, no cloud accounts.

Optional: Ollama for semantic search (the setup wizard helps you install it). Without Ollama, SAGE uses hash-based keyword matching — still works, just less smart about recall.


📚 Research

SAGE is backed by peer-reviewed research proving governed memory makes AI agents measurably better:

| # | Paper | DOI |
|---|-------|-----|
| 1 | Agent Memory Infrastructure | 10.5281/zenodo.18856658 |
| 2 | Consensus-Validated Memory | 10.5281/zenodo.18856774 |
| 3 | Institutional Memory as Organizational Knowledge | 10.5281/zenodo.18856845 |
| 4 | Longitudinal Learning (ρ=0.716, p=0.020) | 10.5281/zenodo.18888597 |
| 5 | Cross-Provider Knowledge Transfer | Whitepaper in docs/ |


⚖️ License

Code: Apache License 2.0 | Papers: CC BY 4.0


Created by Dhillon Andrew Kannabhiran — a tribute to Felix 'FX' Lindner, who showed us how much further curiosity can go.

v1.0.1 Breaking risk
Breaking changes
  • Removed proprietary integration files from version control tracking and history
Notable features
  • Added generic `sage_bridge_example.py` to SDK examples
  • Added `CITATION.cff` with Zenodo DOI
Full changelog

(S)AGE v1.0.1

Identical to v1.0.0 with repository hygiene improvements:

  • Removed proprietary integration files from tracking and history
  • Added generic sage_bridge_example.py to SDK examples
  • Added CITATION.cff with Zenodo DOI

See v1.0.0 release notes for full feature list.

DOI

Beta — feedback welcome: [email protected]