Skip to content

chore(sdk)!: camelCase operationIds; generator 0.29, drop Py3.10#135

Merged
jfrench9 merged 3 commits into
mainfrom
chore/update-generator-0.29-drop-py310
Jul 12, 2026
Merged

chore(sdk)!: camelCase operationIds; generator 0.29, drop Py3.10#135
jfrench9 merged 3 commits into
mainfrom
chore/update-generator-0.29-drop-py310

Conversation

@jfrench9

Copy link
Copy Markdown
Member

Summary

Updates the SDK generator to openapi-python-client 0.29.0 (dropping Python 3.10) and regenerates the SDK against the API's normalized operationIds. The server dropped the redundant op prefix from the OperationEnvelope command endpoints and camelCased the snake_case read ids, so the generated modules/functions now get clean names (op_remember.pyremember.py, op_create_agent.pycreate_agent.py, …).

Changes

  • Generator — bump openapi-python-client to 0.29.0 and drop Python 3.10 support.
  • SDK regen — 64 operation modules renamed to drop the op_ prefix / camelCase source. Git tracks all 64 as pure renames (R100); generated function bodies are unchanged and the wire URLs are identical.
  • Facade clients — updated 54 imports in the hand-written clients/*.py to the new module paths (api.content_operations.op_index_document.index_document, etc.). Public facade method names are unchanged.
  • Tests — updated 8 @patch targets in test_graph_client.py / test_materialization_client.py that referenced the old api.graph_operations.op_materialize / op_delete_graph module paths.

Testing

The repo's pre-commit gate ran on each commit and on a standalone run:

  • ruff check — passed
  • ruff format --check — passed (771 files)
  • basedpyright — 0 errors, 0 warnings
  • pytest439 passed, 17 skipped

Breaking changes

  • Drops Python 3.10.
  • The generated SDK module/function names for the renamed operations change (op_* → clean names). Consumers importing the raw api.<tag>.op_* modules must update their imports; the high-level facade client method names (e.g. investor.create_portfolio_block()) are unchanged.

Notes / follow-ups

  • This is the client half of the API operationId normalization; the server-side change lives in robosystems (branch refactor/operation-id-naming). Once this is published, robosystems bumps its robosystems-client dependency and the custom-graph demo is rewritten to the clean module names.
  • The hand-written facades still use op_-prefixed internal aliases (e.g. sync_detailed as op_create_portfolio_block) in a few clients — cosmetic only, deferred.

jfrench9 added 3 commits July 12, 2026 00:34
Regenerate the SDK with openapi-python-client 0.29.0. The generator now
parses date/datetime fields with stdlib datetime.fromisoformat instead of
python-dateutil, so the python-dateutil runtime dependency is removed.

Full ISO 8601 parsing via fromisoformat (e.g. the trailing 'Z') requires
Python 3.11, which is why 3.10 support is dropped:
- requires-python bumped to >=3.11
- remove the Python 3.10 classifier
- remove the python-dateutil dependency
- bump openapi-python-client floor to >=0.29.0

Regeneration also syncs incidental spec drift accumulated since v0.4.0:
SubgraphType enum values (empty/knowledge/static) and a handful of
endpoint/field docstrings.

BREAKING CHANGE: drops support for Python 3.10.
Regenerated against the server's normalized operationIds: the redundant
`op` prefix is dropped from the OperationEnvelope command endpoints and the
snake_case read ids are camelCased. Git tracks all 64 as pure module renames
(op_remember.py -> remember.py, op_create_agent.py -> create_agent.py, ...);
generated function bodies are unchanged.
The hand-written facade clients imported the generated op_* api modules,
which the regen renamed (op_index_document -> index_document, etc.). Point
the imports at the new module paths and update the two test files that
patched the old api module paths (op_materialize, op_delete_graph).
@jfrench9 jfrench9 merged commit b57b5b7 into main Jul 12, 2026
1 check passed
@jfrench9 jfrench9 deleted the chore/update-generator-0.29-drop-py310 branch July 12, 2026 06:11
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