Skip to content

Strip exposure layer: pure agent framework + model/agent observability (v26.05.33)#259

Merged
ancongui merged 5 commits into
mainfrom
feat/remove-exposure-layer
May 31, 2026
Merged

Strip exposure layer: pure agent framework + model/agent observability (v26.05.33)#259
ancongui merged 5 commits into
mainfrom
feat/remove-exposure-layer

Conversation

@ancongui
Copy link
Copy Markdown
Contributor

Reduces fireflyframework-agentic to a pure in-process agent-building library + model/agent observability. Serving/hosting is owned by the consuming service. Continues the lean-the-framework arc (after the RAG/MCP removal).

Commits (one per concern)

  • feat! remove REST/queue exposure serving layer — deletes the exposure/ package (FastAPI host + Kafka/RabbitMQ/Redis hosts), the rest/kafka/rabbitmq/redis/queues extras, ExposureError/QueueConnectionError, and the REST-serving config (auth_api_keys/auth_bearer_tokens/cors_allowed_origins); drops --extra rest from CI.
  • refactor! realign observability to model/agent-only — removes configure_exporters (global OTel SDK wiring), W3C trace-context propagation, WebhookSink, and otlp_endpoint. Keeps observability_enabled and all agent span/metric/usage/cost/budget/quota APIs. The framework emits via the OTel API; the host configures exporters.
  • refactor! remove inbound JWT/RBAC auth — removes RBACManager/require_permission, rbac_* config, and pyjwt (keeps cryptography + encryption/prompt/output guards).
  • docs document experiments/lab as optional leaf modules.

BREAKING CHANGES

Removed public API: the exposure package + rest/queues extras, ExposureError/QueueConnectionError, configure_exporters/trace-context propagation/WebhookSink, RBACManager/require_permission, and the config fields otlp_endpoint/auth_api_keys/auth_bearer_tokens/cors_allowed_origins/rbac_*. Stale values for these now raise a migration error.

Verification

  • ruff clean; pytest 1302 passed / 0 failed (all extras); pyright only pre-existing third-party-stub errors in untouched chroma/qdrant/google/voyage providers.
  • Package serves no port and consumes no broker. Residual-symbol sweep clean.
  • Version 26.05.3226.05.33; CHANGELOG + uv.lock updated.

Andrés Contreras Guillén added 5 commits May 31, 2026 14:34
Delete the fireflyframework_agentic.exposure package, its extras, exception
classes, REST-serving config fields, CI flags, docs, and example references.
The framework is now a pure in-process library; serving is owned by the host.

BREAKING CHANGE: removes the exposure public API and the rest/queues extras.
Remove global OTel exporter wiring (configure_exporters), W3C trace-context
propagation, WebhookSink, and the otlp_endpoint config. The framework emits
agent spans/metrics via the OTel API; the host owns SDK/exporter setup.

BREAKING CHANGE: removes configure_exporters, the trace-context propagation
helpers, WebhookSink, and otlp_endpoint.
Delete security.rbac (RBACManager/require_permission), the rbac_* config
fields, and pyjwt from the security extra. Keep prompt_guard/output_guard/
encryption. Inbound authZ is now a host concern.

BREAKING CHANGE: removes RBACManager, require_permission, and rbac_* config.
The pgvector work (v26.05.31) left three vectorstores files unformatted and
omitted the vectorstores-pgvector extra from the Test/nightly jobs, so pgvector
unit+integration tests failed with 'ImportError: asyncpg is required'. Apply
ruff-format and install vectorstores-pgvector in the Test/nightly CI jobs.

Unrelated to the exposure removal; surfaced because pr-gate runs only on PRs.
async def upsert(
self, documents: list[VectorDocument], *, tenant_id: str, workspace_id: str
) -> None: ...
async def upsert(self, documents: list[VectorDocument], *, tenant_id: str, workspace_id: str) -> None: ...
@ancongui ancongui merged commit 24eab51 into main May 31, 2026
9 checks passed
@ancongui ancongui deleted the feat/remove-exposure-layer branch May 31, 2026 12:45
ancongui added a commit that referenced this pull request May 31, 2026
Strip exposure layer: pure agent framework + model/agent observability (v26.05.33)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant