Skip to content

Releases: knaisoma/data-olympus

Data Olympus 0.6.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 17:08
Immutable release. Only release title and notes can be modified.
ee04c6c

Data Olympus 0.6.0 makes the product easier to discover, install, evaluate, and release with confidence. The default MCP catalog is now compact and searchable, PyPI is the primary installation path, public sandbox behavior is safer, and every release artifact is tied to one reviewed source commit through explicit provenance.

Highlights

Searchable MCP discovery

Agents now receive the seven core tools plus tool_search and call_tool from tools/list by default. The remaining tools stay directly callable with unchanged authorization, while discovery no longer consumes context with the complete catalog.

Operators that need the previous full catalog behavior can set:

KB_TOOL_DISCOVERY_MODE=all

PyPI first installation

Try the CLI without installing it permanently:

uvx data-olympus --help

Install or upgrade the persistent CLI:

uv tool install --upgrade data-olympus

Data Olympus 0.6.0 requires Python 3.13 or newer.

The wheel and source distribution include both console entry points and the enforcement files used by setup. Release automation verifies clean installation from both formats before publication.

Complete, reproducible releases

Release candidates now cover PyPI, GHCR, and GitHub from one exact source commit. Stable promotion requires explicit human approval, compares candidate and stable Python payloads after normalizing version metadata, and retags the verified candidate image digest without rebuilding it.

The 0.6.0 release provenance records:

  • Source commit: ee04c6ca65e525e63337bba30daf8f194d3b3062
  • Promoted candidate: 0.6.0-rc.4
  • GHCR digest: sha256:d2388b3c5a96b2cda6f968db0b7403aae225d4a9cc3417c04fee4c59b6e3d77f
  • Candidate to stable comparison: 85 files equivalent

The downloadable release-provenance.json records the wheel, source distribution, source tree, dependency lock, and candidate to stable comparison. The GHCR digest above is verified separately against the registry.

Executable OKF interoperability

CI now proves both interoperability directions against a pinned revision of Google's Open Knowledge Format reference implementation. Checksummed fixtures detect meaningful upstream changes without treating unrelated repository commits as compatibility changes.

Better registry and sandbox quality

Tool descriptions now state behavior, parameters, side effects, and when a related tool is more appropriate. Glama metadata includes related servers and maintenance guidance, while the public sandbox starts with the safe example corpus instead of an empty index.

Safer incomplete index behavior

Search, document reads, lists, outlines, onboarding status, and cleanup planning now return safe empty results when SQLite exists but has not yet been populated. Raw database errors are no longer exposed during startup or sandbox evaluation.

Security

  • Updated the MCP SDK to 1.28.1, removing the WebSocket transport vulnerability tracked as GHSA-vj7q-gjh5-988w. Data Olympus uses Streamable HTTP, but the affected code is no longer present in the dependency lock.
  • Updated the optional benchmark stack to torch 2.13.0, addressing GHSA-rrmf-rvhw-rf47 in torch.jit.script. Production embeddings do not use torch.
  • Updated FastMCP, regex, mypy, types-regex, Ruff, and GitHub Actions dependencies to their reviewed release baselines.

Benchmark evidence

Benchmark results now carry a deterministic receipt covering source, corpus and query hashes, dependency lock, environment, model and tokenizer identities, commands, seeds, result hashes, and metric summaries. Public claims remain explicitly labeled as maintainer produced and not independently reproduced.

Compatibility note

There is no MCP API removal in this release. Clients that assume every tool appears in the initial tools/list response should either adopt tool_search and call_tool, or set KB_TOOL_DISCOVERY_MODE=all while migrating.

Verification

The release passed the complete Python and Bats suites, Ruff, mypy, actionlint, CodeQL, packaging checks, documentation consistency checks, candidate to stable artifact comparison, PyPI hash readback, and local execution of the promoted container digest.

Full comparison: v0.5.0...v0.6.0

0.6.0-rc.4

0.6.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 17:00
Immutable release. Only release title and notes can be modified.
ee04c6c

data-olympus 0.6.0

New features

  • MCP discovery is compact and searchable by default. Agents initially see the
    seven core tools plus tool_search and call_tool, while hidden tools remain
    callable with unchanged authorization. Operators can select the complete
    catalog with KB_TOOL_DISCOVERY_MODE=all.
  • PyPI is now the primary install path. uvx provides an immediate first run,
    uv tool install provides a persistent CLI, and the installed wheel includes
    both console entry points and the enforcement machinery used by setup.
  • Release candidates are complete across PyPI, GHCR, and GitHub. Every candidate
    includes a wheel, sdist, image, GitHub prerelease, and provenance receipt from
    one exact source SHA. Stable publication uses Trusted Publishing and requires
    an explicit human approved promotion of the highest complete candidate.
  • Executable OKF conformance now proves both interoperability directions against
    a pinned upstream Google reference revision and checksummed fixtures.
  • Benchmark evidence now includes a deterministic provenance receipt covering
    source, inputs, dependencies, commands, seeds, environment, and result hashes.
    Public benchmark claims are labeled as maintainer produced and not independently
    reproduced.
  • MCP catalog discovery is clearer. Eight tool definitions now describe their
    behavior, parameters, side effects, and when to use a related tool instead,
    giving registries and agents more useful guidance without changing the API.
  • The Glama sandbox now starts with the bundled example corpus, publishes
    related server metadata, and documents the maintenance checks used to keep
    the catalog profile complete.

Fixed

  • Search, document reads, lists, outlines, onboarding status, and cleanup
    planning now handle an empty or incomplete SQLite index without exposing raw
    database errors. They return safe empty results until the index is ready.
  • The transitive MCP SDK was updated to 1.28.1, closing the WebSocket transport
    advisory tracked as GHSA-vj7q-gjh5-988w. Data Olympus uses Streamable HTTP,
    but the patched dependency removes the vulnerable code from the lock.
  • The optional benchmark stack now resolves torch 2.13.0, closing
    GHSA-rrmf-rvhw-rf47 in torch.jit.script. Production embeddings do not use
    torch, and the benchmark integration remains compatible with
    sentence-transformers.

0.6.0-rc.2

0.6.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 06:12
Immutable release. Only release title and notes can be modified.
ba269eb

data-olympus 0.6.0

New features

  • MCP catalog discovery is clearer. Eight tool definitions now describe their
    behavior, parameters, side effects, and when to use a related tool instead,
    giving registries and agents more useful guidance without changing the API.
  • The Glama sandbox now starts with the bundled example corpus, publishes
    related server metadata, and documents the maintenance checks used to keep
    the catalog profile complete.

Fixed

  • Search, document reads, lists, outlines, onboarding status, and cleanup
    planning now handle an empty or incomplete SQLite index without exposing raw
    database errors. They return safe empty results until the index is ready.
  • The transitive MCP SDK was updated to 1.28.1, closing the WebSocket transport
    advisory tracked as GHSA-vj7q-gjh5-988w. Data Olympus uses Streamable HTTP,
    but the patched dependency removes the vulnerable code from the lock.
  • The optional benchmark stack now resolves torch 2.13.0, closing
    GHSA-rrmf-rvhw-rf47 in torch.jit.script. Production embeddings do not use
    torch, and the benchmark integration remains compatible with
    sentence-transformers.

0.6.0-rc.1 (REJECTED: wrong source)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 05:55
Immutable release. Only release title and notes can be modified.
e2c1e0f

REJECTED. DO NOT DEPLOY. This candidate was built from the wrong source SHA because the reusable image workflow ignored the requested release ref. It was never deployed. The workflow was fixed in PR #167; use 0.6.0-rc.2 instead.

data-olympus 0.6.0

New features

  • MCP catalog discovery is clearer. Eight tool definitions now describe their
    behavior, parameters, side effects, and when to use a related tool instead,
    giving registries and agents more useful guidance without changing the API.
  • The Glama sandbox now starts with the bundled example corpus, publishes
    related server metadata, and documents the maintenance checks used to keep
    the catalog profile complete.

Fixed

  • Search, document reads, lists, outlines, onboarding status, and cleanup
    planning now handle an empty or incomplete SQLite index without exposing raw
    database errors. They return safe empty results until the index is ready.
  • The transitive MCP SDK was updated to 1.28.1, closing the WebSocket transport
    advisory tracked as GHSA-vj7q-gjh5-988w. Data Olympus uses Streamable HTTP,
    but the patched dependency removes the vulnerable code from the lock.
  • The optional benchmark stack now resolves torch 2.13.0, closing
    GHSA-rrmf-rvhw-rf47 in torch.jit.script. Production embeddings do not use
    torch, and the benchmark integration remains compatible with
    sentence-transformers.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 03:41
Immutable release. Only release title and notes can be modified.
a55f4b2

New features

  • Data Olympus can now tell you when a newer version has been published. The
    running server checks PyPI and GitHub in the background and surfaces a
    latest_version / update_available signal in kb_health and the health
    endpoint, so deployments that do not auto-update can see at a glance that they
    are behind. Air-gapped installs can turn the check off with
    KB_DISABLE_VERSION_CHECK=on.

  • A first-class reverse-proxy host allowlist. Set KB_PUBLIC_HOSTNAMES to the
    hostnames your server is reached by, and Data Olympus configures the HTTP
    layer's Host-header protection for you (instead of reaching for the underlying
    dependency's env var). If you bind a public address with host protection on
    and no hostname allowed, the server now warns loudly at startup, so the silent
    "readiness green, every request rejected" failure mode can no longer catch you
    out.

  • An optional Prometheus /metrics endpoint. Install the metrics extra and
    GET /metrics exposes queue depths, push-failure and staleness counters, live
    session counts, per-tool call counts, and index-build timing, so a
    governance-critical single-writer service becomes alertable instead of
    log-grepped. Without the extra installed, nothing changes and the route
    returns 501.

  • Legacy corpus status migration. Documents from pre-0.4.0 corpora that predate
    the mandatory status field now default to active in the search index (with
    KB_STATUS_AUTOFILL=on, the default), so they stay searchable and in-force on
    upgrade instead of silently dropping out. A data-olympus migrate status
    command persists the field to the files when you want it written to disk.

Release safety

  • Publishing a version that already exists on a registry is now blocked. The
    release pipeline refuses to republish an existing X.Y.Z to PyPI, ghcr, or a
    GitHub release/tag, so a published version stays immutable. A legitimate
    re-run of the same commit is still allowed.

Fixed

  • The demoted_writes reminder in kb_consult now reflects the entries that are
    actually still awaiting review for your session, rather than a session-lifetime
    count, so it stops nudging you about demotions that are already resolved.

0.5.0-rc.2

0.5.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jul 20:54
Immutable release. Only release title and notes can be modified.
fc7a810

New features

  • Data Olympus can now tell you when a newer version has been published. The
    running server checks PyPI and GitHub in the background and surfaces a
    latest_version / update_available signal in kb_health and the health
    endpoint, so deployments that do not auto-update can see at a glance that they
    are behind. Air-gapped installs can turn the check off with
    KB_DISABLE_VERSION_CHECK=on.

  • A first-class reverse-proxy host allowlist. Set KB_PUBLIC_HOSTNAMES to the
    hostnames your server is reached by, and Data Olympus configures the HTTP
    layer's Host-header protection for you (instead of reaching for the underlying
    dependency's env var). If you bind a public address with host protection on
    and no hostname allowed, the server now warns loudly at startup, so the silent
    "readiness green, every request rejected" failure mode can no longer catch you
    out.

  • An optional Prometheus /metrics endpoint. Install the metrics extra and
    GET /metrics exposes queue depths, push-failure and staleness counters, live
    session counts, per-tool call counts, and index-build timing, so a
    governance-critical single-writer service becomes alertable instead of
    log-grepped. Without the extra installed, nothing changes and the route
    returns 501.

  • Legacy corpus status migration. Documents from pre-0.4.0 corpora that predate
    the mandatory status field now default to active in the search index (with
    KB_STATUS_AUTOFILL=on, the default), so they stay searchable and in-force on
    upgrade instead of silently dropping out. A data-olympus migrate status
    command persists the field to the files when you want it written to disk.

Release safety

  • Publishing a version that already exists on a registry is now blocked. The
    release pipeline refuses to republish an existing X.Y.Z to PyPI, ghcr, or a
    GitHub release/tag, so a published version stays immutable. A legitimate
    re-run of the same commit is still allowed.

Fixed

  • The demoted_writes reminder in kb_consult now reflects the entries that are
    actually still awaiting review for your session, rather than a session-lifetime
    count, so it stops nudging you about demotions that are already resolved.

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 21:11
Immutable release. Only release title and notes can be modified.
6e685af

New features

  • A new data-olympus verify command checks that a running knowledge-base
    server is healthy and answering correctly. It runs liveness, readiness, a
    search round-trip, and an enforcement check against a target you name, prints a
    clear pass/fail summary (or JSON), and returns a distinct exit code when the
    server is unreachable versus when a check fails. Handy in scripts and as a
    release or deployment smoke test.
  • Behind the scenes, the project gained a staged-promotion release pipeline: a
    release candidate is built, verified on a live instance, and then promoted as
    the exact same image, so what ships is exactly what was tested. This is
    internal tooling and does not change how you run the server.
  • Registry listing polish: a Glama score badge and clearer MCP tool metadata so
    catalog sites can describe the server more accurately.

Fixed

  • Clarified, for anyone running the server behind a reverse proxy or ingress,
    that the public hostname must be added to FASTMCP_HTTP_ALLOWED_HOSTS. Without
    it, health probes pass while real requests are refused with a 421. See
    docs/serving.md and docs/operations.md section 3.4.

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 08 Jul 21:39
Immutable release. Only release title and notes can be modified.
af784ae

data-olympus v0.4.1

A small maintenance release: the dependency refresh queued up while v0.4.0
was in flight, with the full test suite verified green on the combined set.

Fixed

  • Updated runtime dependencies (fastmcp 3.4.3, numpy 2.5.1) and continuous
    integration tooling (mypy 2.2.0, GitHub artifact actions v7/v8) to their
    current releases, keeping the published package and its build pipeline on
    supported versions.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 15:59
Immutable release. Only release title and notes can be modified.
2720f2e

data-olympus v0.4.0

The governance release: knowledge in your bundle now carries an explicit
lifecycle that retrieval actually enforces, and agents can propose knowledge
but only humans can promote it to a governing rule.

New features

  • Agents propose, humans promote. A new governed-lane protection (on by
    default, KB_GOVERNED_LANE_PROTECTION=off to disable) stops any
    agent-initiated write from minting or silently rewriting a governing rule:
    writes that claim in-force status or edit an in-force document are queued
    for your review instead of committed, with an advisory injection-pattern
    scan annotating anything suspicious. Nothing is rejected, and every demotion
    is reported per write, per session (kb session-recap), and in the
    consultation envelope.
  • Rules can expire. Documents may declare a validity window
    (valid_from, valid_until, last_verified, recheck_by). An expired
    rule disappears from every default search until you explicitly ask for it
    (include_expired, validity_state filters, or kb_get by id), because an
    expired rule with no successor must not keep governing decisions. A new
    data-olympus validity-report command lists what expired and what is about
    to.
  • Supersession is now enforced, not just documented. supersedes,
    superseded_by, and the new contradicts fields are parsed, indexed as
    edges, lint-validated across the whole bundle (dangling, asymmetric, and
    cyclic chains are flagged), and in-force retrieval excludes anything
    superseded by an in-force document, even when someone forgot to flip the
    old document's status.
  • The enforcement surface only serves governing rules. kb_consult is
    hard-filtered to in-force content, server-rendered memories are stamped
    type: memory / status: proposed, memory-inbox documents can never be in
    force regardless of claimed status, and responses expose a computed
    in_force flag plus proposal provenance (source_session, reason, a new
    evidence list).
  • The bundle audits itself. A maintenance ledger, committed to the bundle
    and recomputed at every index build, tracks corpus health (documents missing
    status, recently expired and soon-to-expire rules) and surfaces open items
    as pending_actions on kb_consult and kb_health until they are fixed.
  • Secrets cannot reach your knowledge base. Every write path (memory
    proposals, edits, onboarding bootstrap, review resolutions) is scanned for
    credential patterns (private keys, GitHub/AWS/Slack tokens, passwords in
    connection strings) and rejected with a redacted report; only an explicit
    operator override through review can commit a flagged write.
  • Start a new bundle in one command. data-olympus init <dir> scaffolds a
    complete, lint-clean bundle with an example of every document type,
    including a working supersession pair and applies_when triggers, so a new
    team learns the differentiating features from the artifact itself.
  • New documents must declare a status. The write path now rejects new
    documents without status, while legacy documents keep working through a
    guided migration driven by the maintenance ledger.
  • The format is documented as an OKF profile. docs/okf-profile.md maps
    every field to OKF baseline compatibility, lint coverage, and stability
    tier, so adjacent implementers can compare semantics without reading the
    code.

Fixed

  • data-olympus index silently generated zero index files when the bundle's
    absolute path passed through a directory with a skip-listed name (such as
    .venv or node_modules); skip matching is now relative to the bundle
    root.
  • The "Publish to PyPI" workflow failed at startup on every pull request due
    to a reusable-workflow permissions mismatch; the dry-run build now runs on
    packaging PRs as intended.

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 06 Jul 05:08
Immutable release. Only release title and notes can be modified.
ead5f85

v0.3.5

Fixed

  • Fixed a confusing error when a write was rejected for being outside the
    deployment's configured writable folders. It used to look identical to a
    security rejection (like a path-traversal attempt), so a perfectly normal,
    well-formed request could send someone hunting for a bug that wasn't there.
    The rejection now says specifically whether the path just isn't in the
    writable list, isn't a markdown file, or is genuinely malformed. Everything
    else is unchanged from 0.3.4.