Skip to content

v26.7.0 — Agent-tier source replace + delete

Choose a tag to compare

@miguelgfierro miguelgfierro released this 23 Jul 06:37
· 50 commits to main since this release
80cdac4

Agent-tier source lifecycle: replace and delete

This release completes the agent-tier source API so an automated caller can keep an indexed document in sync across its whole lifecycle — not just create it. A machine client holding an agent.sources:ingest token can now replace a source's content in place or remove it entirely, with the dense vectors and BM25 rows kept consistent on every path. It also makes pyproject.toml the single source of truth for the service version.

Added

  • Agent-tier source replace. PUT /api/v1/agent/sources/{source_id} (scope agent.sources:ingest, mandatory Idempotency-Key) re-ingests an existing source in place through the same pipeline as the user-tier PUT: chunks and dense vectors are replaced under the same source_id. content_base64 is required; replays dedup under a route-specific scope.
  • Agent-tier source delete. DELETE /api/v1/agent/sources/{source_id} (scope agent.sources:ingest, mandatory Idempotency-Key, 204) removes a source within the tenant/workspace scope: BM25 rows and dense vectors are purged, chunk rows and the source row are deleted, an audit entry is recorded and a SourceRemoved EDA event is published. Object-store originals are not touched. A retried DELETE with the same key replays the original 204.

Changed

  • Single-source version. __version__ (and the version reported by pyfly_application / GET /api/v1/version) is now derived from the installed package metadata via importlib.metadata, so pyproject.toml is the only place a release bump touches.

Python SDK

Install the wheel for this release with uv:

uv add https://github.com/firefly-operationOS/flycanon/releases/download/v26.7.0/flycanon_sdk-26.7.0-py3-none-any.whl

Or pin it in your pyproject.toml:

[project]
dependencies = ["flycanon-sdk"]

[tool.uv.sources]
flycanon-sdk = { url = "https://github.com/firefly-operationOS/flycanon/releases/download/v26.7.0/flycanon_sdk-26.7.0-py3-none-any.whl" }

Java SDK

<dependency>
  <groupId>com.firefly</groupId>
  <artifactId>flycanon-sdk</artifactId>
  <version>26.7.0</version>
</dependency>

Resolve from GitHub Packages -- add to your pom.xml:

<repositories>
  <repository>
    <id>github-firefly-operationOS</id>
    <url>https://maven.pkg.github.com/firefly-operationOS/flycanon</url>
  </repository>
</repositories>

What's Changed

Full Changelog: v26.6.19...v26.7.0