Skip to content

feat!: align Python SDK with Symbiont OSS runtime v1.14.3#5

Open
jaschadub wants to merge 1 commit into
mainfrom
feat/oss-runtime-1.14.3-parity
Open

feat!: align Python SDK with Symbiont OSS runtime v1.14.3#5
jaschadub wants to merge 1 commit into
mainfrom
feat/oss-runtime-1.14.3-parity

Conversation

@jaschadub
Copy link
Copy Markdown
Contributor

Summary

Brings the Python SDK to exact parity with the Symbiont OSS runtime v1.14.3 HTTP surface and removes everything that targeted endpoints the OSS runtime does not serve. Validated by cross-checking every remaining SDK call against the runtime route table in crates/runtime/src/api/server.rs.

⚠️ Breaking change — see "Removed" below. Version bumped 1.11.0 → 1.14.3.

Added (real OSS endpoints the SDK was missing)

Method Route
execute_agent POST /api/v1/agents/{id}/execute
send_message POST /api/v1/agents/{id}/messages
receive_messages GET /api/v1/agents/{id}/messages
get_message_status GET /api/v1/messages/{id}/status
send_heartbeat POST /api/v1/agents/{id}/heartbeat
push_agent_event POST /api/v1/agents/{id}/events

Fixed

  • /api/v1 double-prefix bug. Default base_url already includes /api/v1, but ~12 methods hard-coded an extra api/v1/, producing /api/v1/api/v1/... (404). Client._request now de-duplicates the version segment in one place; base URLs with a different prefix are untouched.
  • execute_workflowPOST /api/v1/workflows/execute (was /workflows).
  • get_agent_statusGET /api/v1/agents/{id}/status (was /agents/{id}).

Removed (BREAKING)

Endpoints/modules the OSS runtime does not expose over HTTP (every call returned 404):

  • Client methods: get_agent_metrics, re_execute_agent; all tool-review, secrets, MCP-management, knowledge/RAG/vector, DSL/deploy, http-input, http-endpoint, memory, and communication-rule methods.
  • Modules: reasoning_client.py, reasoning.py, toolclad.py, qdrant.py, memory.py (+ client.reasoning / client.toolclad accessors).
  • MetricsClient trimmed to get_metrics()GET /api/v1/metrics; the /metrics/snapshot|scheduler|system|export methods were removed.
  • Retained client-side helpers (no runtime dependency): AgentPin verification, webhook signature verification, skill scanning, markdown memory store.

Validation

  • Every remaining SDK HTTP call maps to a real OSS route; zero phantom paths.
  • Intentionally unwrapped: /ws/chat (WebSocket), /health/live, /health/ready (probes).
  • black + ruff clean; test suite 131 passed (new tests/test_oss_endpoints.py covers the added methods + prefix de-dup).

20 files changed, +469 / −2902.

Brings the SDK to exact parity with the Symbiont OSS runtime v1.14.3 HTTP
surface (the ~41 routes served by crates/runtime/src/api/server.rs) and
removes everything that targeted endpoints the OSS runtime does not serve.

Added (real OSS endpoints the SDK was missing):
- execute_agent      -> POST /api/v1/agents/{id}/execute
- send_message       -> POST /api/v1/agents/{id}/messages
- receive_messages   -> GET  /api/v1/agents/{id}/messages
- get_message_status -> GET  /api/v1/messages/{id}/status
- send_heartbeat     -> POST /api/v1/agents/{id}/heartbeat
- push_agent_event   -> POST /api/v1/agents/{id}/events

Fixed:
- /api/v1 double-prefix bug. The default base_url already includes /api/v1,
  but ~12 methods hard-coded an extra "api/v1/" in the endpoint, producing
  "/api/v1/api/v1/..." (404). Client._request now de-duplicates the version
  segment in one place; base URLs with a different prefix are untouched, so
  custom deployments and existing URL-construction tests are unaffected.
- execute_workflow now targets POST /api/v1/workflows/execute (was /workflows).
- get_agent_status now targets GET /api/v1/agents/{id}/status (was /agents/{id}).

Removed (BREAKING) — endpoints/modules the OSS runtime does not expose, every
call to which returned 404:
- Client methods: get_agent_metrics, re_execute_agent, and all tool-review,
  secrets, MCP-management, knowledge/RAG/vector, DSL/deploy, http-input,
  http-endpoint, memory, and communication-rule methods.
- Modules: reasoning_client.py, reasoning.py, toolclad.py, qdrant.py,
  memory.py (and the client.reasoning / client.toolclad accessors).
- MetricsClient trimmed to get_metrics() -> GET /api/v1/metrics; the former
  /metrics/snapshot|scheduler|system|export methods were removed. Client-side
  exporters (File/OTLP/Collector) are unchanged.
- Retained client-side helpers (no runtime dependency): AgentPin verification,
  webhook signature verification, skill scanning, markdown memory store.

Validated: remaining SDK HTTP surface cross-checked against the runtime route
table in crates/runtime/src/api/server.rs — every call maps to a real OSS
route, zero phantom paths remain. Intentionally unwrapped: /ws/chat and the
/health/live, /health/ready probes.

Version: 1.11.0 -> 1.14.3 (tracks the runtime). black + ruff clean;
test suite 131 passed.
@jaschadub jaschadub force-pushed the feat/oss-runtime-1.14.3-parity branch from 60bea4a to af1d971 Compare May 31, 2026 00:32
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