Releases: RoboFinSystems/robosystems-python-client
Release v0.3.17
RoboSystems Python SDK v0.3.17
This release introduces a unified portfolio block management system, replacing the separate portfolio and position operations with a single, cohesive API.
✨ Features & Improvements
- Unified portfolio block management (#107): Consolidated portfolio and position CRUD operations into a single "portfolio block" abstraction, simplifying the API surface and aligning with a block-based management model.
- New models for portfolio block operations:
CreatePortfolioBlockRequest,UpdatePortfolioBlockOperation,DeletePortfolioBlockOperation,PortfolioBlockPositions,PortfolioBlockPositionAdd,PortfolioBlockPositionDispose, andPortfolioBlockPositionUpdate. - Updated
InvestorClientto use the new block-based operations.
⚠️ Breaking Changes
- Removed standalone portfolio operations:
op_create_portfolio,op_update_portfolio, andop_delete_portfoliohave been replaced byop_create_portfolio_block,op_update_portfolio_block, andop_delete_portfolio_blockrespectively. - Removed all position operations:
op_create_position,op_update_position, andop_delete_positionhave been deleted. Position management is now handled through the portfolio block API. - Model renames/removals:
CreatePortfolioRequest,UpdatePortfolioOperation,DeletePortfolioOperation,CreatePositionRequest,UpdatePositionOperation, andDeletePositionOperationno longer exist. Consumers must migrate to the newPortfolioBlock*model equivalents. - GraphQL query modules under
robosystems_client/graphql/queries/investor/have been updated — any direct imports may need adjustment.
🔧 Technical Notes
- Net reduction of ~310 lines of code, reflecting a cleaner, more consolidated API design.
- Test suite updated to cover the new block-based operations.
📊 Release Statistics
- Commits: 3
- Files Changed: 21
- Lines Added: 892
- Lines Deleted: 1202
- Previous Release: v0.3.16
🔗 Links
- Full Changelog: v0.3.16...v0.3.17
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.16
RoboSystems Python SDK v0.3.16
This release adds new ledger operations for filing reports and transitioning filing statuses, expanding the RoboLedger API surface.
✨ Features
- File Report operation — Added
op_file_reportto the RoboLedger extensions API, along with a correspondingFileReportRequestmodel, enabling programmatic report filing through the client. (#106) - Transition Filing Status operation — Added
op_transition_filing_statuswith aTransitionFilingStatusRequestmodel, allowing clients to manage and transition filing statuses. (#106)
🔧 Technical Changes
- Updated
LedgerClientto expose the new file report and transition filing status operations. - Extended
modelsandgraphql/queries/ledgermodule exports to include the new request models.
⚠️ Breaking Changes
None.
🐛 Bug Fixes
None.
📊 Release Statistics
- Commits: 3
- Files Changed: 8
- Lines Added: 825
- Lines Deleted: 1
- Previous Release: v0.3.15
🔗 Links
- Full Changelog: v0.3.15...v0.3.16
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.15
RoboSystems Python SDK v0.3.15
This release updates the GraphQL query terminology across the client, replacing classification with trait in both ledger and library queries.
Key Improvements
- Renamed
classificationtotraitin GraphQL queries — Ledger and library query modules now use the updatedtraitterminology, aligning the client with the latest API schema (#105)
⚠️ Breaking Changes
- GraphQL query field rename: All references to
classificationin ledger and library queries have been replaced withtrait. If your code directly depends onclassificationfields in query responses, you will need to update accordingly.
Technical Notes
- This is a terminology refactor with a 1:1 replacement (18 lines added, 18 lines deleted), so no logic changes were introduced.
- Affected modules:
robosystems_client/graphql/queries/ledger/androbosystems_client/graphql/queries/library/
📊 Release Statistics
- Commits: 3
- Files Changed: 3
- Lines Added: 18
- Lines Deleted: 18
- Previous Release: v0.3.14
🔗 Links
- Full Changelog: v0.3.14...v0.3.15
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.14
RoboSystems Python SDK v0.3.14
This release updates event block and taxonomy block models with new attributes, improving the data model expressiveness and documentation across the ledger client.
Features & Improvements
- New
event_classattribute for event blocks — AddedCreateEventBlockRequestEventClassmodel, extending event block creation with a new classification dimension - Enhanced taxonomy block models — Updated
TaxonomyBlockElementRequestandUpdateTaxonomyBlockRequestwith additional attributes for richer taxonomy definitions - Expanded event block requests — Both
CreateEventBlockRequestandUpdateEventBlockRequestnow support new fields alongside the existingevent_category - Improved documentation — Model docstrings and attribute descriptions updated for clarity
Technical Changes
- Updated
EvaluateRulesRequestmodel and its corresponding API operation (op_evaluate_rules) - Extended
ElementUpdatePatchmodel with new patch capabilities - Updated
op_update_taxonomy_blockAPI operation to support new taxonomy attributes - New model
CreateEventBlockRequestEventClassregistered inmodels/__init__.py
⚠️ Breaking Changes
- Event block and taxonomy block request schemas have changed — If you are constructing
CreateEventBlockRequest,UpdateEventBlockRequest,TaxonomyBlockElementRequest, orUpdateTaxonomyBlockRequestobjects manually, review the updated model signatures for new or modified fields EvaluateRulesRequestmodel updated — Callers of the rules evaluation endpoint should verify compatibility with the updated request schema
Bug Fixes
- No explicit bug fixes in this release
📊 Release Statistics
- Commits: 3
- Files Changed: 13
- Lines Added: 215
- Lines Deleted: 51
- Previous Release: v0.3.13
🔗 Links
- Full Changelog: v0.3.13...v0.3.14
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.13
RoboSystems Python SDK v0.3.13
This release improves SSE (Server-Sent Events) client resilience and ensures proper API key propagation across client requests.
Key Improvements
- Enhanced SSE client error handling — Improved how the SSE client handles and surfaces errors, leading to more reliable streaming event connections and clearer failure diagnostics.
- API key propagation in headers — API keys are now correctly forwarded in request headers through the SSE client, ensuring authenticated access to streaming endpoints.
Bug Fixes
- Fixed error handling logic in the SSE client that could silently swallow or misreport connection failures (#103).
- Resolved an issue where the API key was not being included in SSE client headers, potentially causing authentication failures on protected endpoints.
🔒 Security
- API key headers are now consistently propagated to SSE endpoints, closing a gap where unauthenticated requests could be made unintentionally.
Notable Technical Changes
- Updated
sse_client.pyandoperation_client.pywith improved error handling and header management. - Updated
create_event_handler_request.pymodel (likely to support enhanced request metadata). - Added/expanded test coverage for SSE client error scenarios (
test_sse_client.py).
⚠️ Breaking Changes
None anticipated. This is a backward-compatible patch release.
📊 Release Statistics
- Commits: 3
- Files Changed: 5
- Lines Added: 96
- Lines Deleted: 4
- Previous Release: v0.3.12
🔗 Links
- Full Changelog: v0.3.12...v0.3.13
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.12
RoboSystems Python SDK v0.3.12
This release introduces event block and agent management capabilities to the LedgerClient, replacing the previous journal entry and closing entry paradigm with a more flexible event-driven architecture.
✨ New Features
- Event Block Operations: Added full CRUD support for event blocks in
LedgerClient, includingcreate_event_block,preview_event_block, andupdate_event_blockoperations (#102) - Agent Management: Introduced
create_agentandupdate_agentoperations for managing agents with address and metadata support (#102) - Event Handler Support: Added
create_event_handlerandupdate_event_handleroperations with metadata expression matching and origin configuration (#102) - Transaction Templates: Introduced new
TransactionTemplatemodel hierarchy (TransactionTemplate,TransactionTemplateEntry,TransactionTemplateItem,TransactionTemplateLeg) for defining reusable transaction structures
⚠️ Breaking Changes
- Removed journal entry operations:
op_create_journal_entry,op_reverse_journal_entry, and associated models (CreateJournalEntryRequest,ReverseJournalEntryRequest) have been deleted - Removed closing entry operations:
op_create_closing_entry,op_create_manual_closing_entry, and associated models (CreateClosingEntryOperation,CreateManualClosingEntryRequest,ManualLineItemRequest) have been deleted - Removed transaction operations:
op_create_transactionandCreateTransactionRequestmodels have been removed - Removed schedule operations:
op_dispose_schedule,op_truncate_schedule, and associated models (DisposeScheduleRequest,TruncateScheduleOperation) have been deleted - Model namespace changes: The
modelsmodule has been significantly restructured — any imports referencing removed models will need to be updated to use the new event block, agent, and event handler equivalents
🔧 Notable Technical Changes
- Extensive refactoring across 50 files with ~4,100 lines added and ~2,250 lines removed, reflecting a significant API surface redesign
- Several operation files were renamed/refactored (indicated by
Rstatus) rather than being simple additions, preserving some structural patterns from the previous implementation - Comprehensive unit tests added for all new event block and agent management operations in
test_ledger_client.py
📊 Release Statistics
- Commits: 5
- Files Changed: 50
- Lines Added: 4115
- Lines Deleted: 2248
- Previous Release: v0.3.11
🔗 Links
- Full Changelog: v0.3.11...v0.3.12
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.11
RoboSystems Python SDK v0.3.11
This release introduces the Taxonomy Block model as a unified abstraction for ledger operations, replacing several granular CRUD endpoints for elements, structures, taxonomies, and associations with a consolidated block-based API. A new DisposeScheduleRequest model is also added.
Key Features & Improvements
- Taxonomy Block API: New
create_taxonomy_block,update_taxonomy_block, anddelete_taxonomy_blockoperations replace individual element, structure, taxonomy, and association endpoints, enabling atomic batch-style ledger modifications. - Rich block composition: Taxonomy blocks support nested sub-requests for elements, structures, associations, and rules — each with dedicated metadata and configuration models.
- Rule support in taxonomy blocks: New
TaxonomyBlockRuleRequestmodel with support for rule categories, patterns, severity levels, and variables. DisposeScheduleRequest: New operation for schedule disposal within the ledger API.- Patch models: Added
ElementUpdatePatchandStructureUpdatePatchmodels with optional metadata for granular updates.
⚠️ Breaking Changes
- Removed endpoints:
op_create_element,op_create_structure,op_create_taxonomy,op_create_associations,op_delete_element,op_delete_structure,op_delete_taxonomy,op_delete_association,op_update_element,op_update_taxonomy, andop_update_associationhave all been removed. - Removed models:
CreateElementRequest,CreateStructureRequest,CreateTaxonomyRequest,BulkCreateAssociationsRequest,BulkAssociationItem, and all associated delete request models (DeleteElementRequest,DeleteStructureRequest,DeleteTaxonomyRequest,DeleteAssociationRequest) are deleted. - Ledger client updated:
ledger_client.pyhas been modified to reflect the new consolidated API surface — existing integrations using the old individual CRUD operations will need to migrate to the taxonomy block pattern.
Notable Technical Changes
- Net reduction of ~1,500 lines across 61 files, reflecting a significant simplification of the API surface.
- Mapping association and entity-taxonomy linking operations (
op_create_mapping_association,op_link_entity_taxonomy) are retained and updated. - Model
__init__.pyre-exported to align with the new model inventory.
📊 Release Statistics
- Commits: 4
- Files Changed: 61
- Lines Added: 2887
- Lines Deleted: 4423
- Previous Release: v0.3.10
🔗 Links
- Full Changelog: v0.3.10...v0.3.11
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.10
RoboSystems Python SDK v0.3.10
This release replaces the schedule operations paradigm with a new Information Block operations model in the ledger client, and introduces a rule evaluation capability.
Key Features & Improvements
- Information Block operations: New CRUD operations (
create,update,delete) for Information Blocks, replacing the previous schedule-based operations (#100) - Rule evaluation: Added new
evaluate_rulesoperation to the ledger client, enabling rule-based processing within the ledger extension - Test & developer tooling: Improved test documentation and pre-commit hook for better clarity and efficiency (#99)
⚠️ Breaking Changes
- Schedule operations removed: All schedule-related operations (
create_schedule,update_schedule,delete_schedule) have been replaced with Information Block equivalents. Consumers usingop_create_schedule,op_update_schedule, orop_delete_schedulemust migrate toop_create_information_block,op_update_information_block, andop_delete_information_block. - Removed models:
CreateScheduleRequest,DeleteScheduleRequest,UpdateScheduleRequest,EntryTemplateRequest,EntryTemplateRequestEntryType, andScheduleMetadataRequesthave been deleted. Use the newCreateInformationBlockRequest,UpdateInformationBlockRequest,DeleteInformationBlockRequest, and their associated payload models instead. - Ledger client API surface changed: Method signatures on
LedgerClientnow reflect Information Block terminology — existing integrations will require updates.
Notable Technical Changes
- 7 new model files added to support the Information Block and rule evaluation request/response structures
- GraphQL ledger query module updated to align with the new operation set
- Schedule-to-Information Block file renames show 57–72% content similarity, indicating a substantial but evolutionary refactoring rather than a full rewrite
📊 Release Statistics
- Commits: 6
- Files Changed: 23
- Lines Added: 1282
- Lines Deleted: 864
- Previous Release: v0.3.9
🔗 Links
- Full Changelog: v0.3.9...v0.3.10
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.9
RoboSystems Python SDK v0.3.9
This release introduces a new library client, adds financial statement analysis capabilities, and improves API response handling with better error management across the SDK.
✨ Features & Improvements
- New Library Client: Added
library_clientwith associated GraphQL queries, expanding high-level client capabilities (#98) - Financial Statement Operations: Added new
op_financial_statement_analysisandop_live_financial_statementendpoints with corresponding request models - Classification Support for Element Updates:
UpdateElementRequestand related models now support classification fields, aligning update operations with create operations - Enhanced API Response Handling: Refactored response handling across all API operations to improve error management and consistency (#98)
⚠️ Breaking Changes
- Removed Bulk Document Upload: Deleted
upload_documents_bulkendpoint and associated models (BulkDocumentUploadRequest,BulkDocumentUploadResponse,BulkDocumentUploadResponseErrorsType0Item) — consumers relying on bulk upload functionality will need to migrate to an alternative approach - Refactored Element Request Models: Removed unused classification fields from certain element request models and updated related imports — custom code referencing removed fields may require updates
🔧 Technical Changes
- Updated project metadata in
pyproject.tomlto reflect new client library integration - Modified SDK generation script (
generate-sdk.sh) for updated build configuration - Broad refactor across Robo Investor and Robo Ledger operation modules for consistent response/error handling patterns (30+ operation files updated)
- Updated
clients/__init__.pyexports to include the new library client - Added/updated tests for document client functionality
📊 Release Statistics
- Commits: 6
- Files Changed: 47
- Lines Added: 2102
- Lines Deleted: 1110
- Previous Release: v0.3.8
🔗 Links
- Full Changelog: v0.3.8...v0.3.9
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.8
RoboSystems Python SDK v0.3.8
This release aligns the API client's error handling with the Swagger/OpenAPI specification, ensuring all endpoint modules return accurate, spec-compliant error responses.
Key Improvements
- Standardized API error handling across all endpoints — Refactored error handling in 146 files spanning every API domain (agent, auth, backup, billing, connections, credits, and documents) to match the service's OpenAPI/Swagger spec (#97).
- More predictable error responses — API client consumers can now rely on error types and status codes that directly mirror the documented API contract.
⚠️ Breaking Changes
- Error response types and handling may have changed — If your code catches or inspects specific exception types, status codes, or error payloads from the client, review your error handling logic. The client now follows the OpenAPI spec strictly, which may differ from previous behavior.
Notable Technical Changes
- Net reduction of ~3,000 lines of code (+4,774 / −7,778) — The refactor consolidated and simplified error handling patterns, removing redundant or hand-written error logic in favor of spec-generated handling.
- Broad surface area, narrow scope — Despite touching 146 files across all API modules, the changes are mechanically consistent: each endpoint was updated to use the same spec-aligned error handling approach.
Bug Fixes
- Fixed error handling in API responses that previously diverged from the documented specification, which could lead to unexpected exception types or missing error details.
📊 Release Statistics
- Commits: 3
- Files Changed: 146
- Lines Added: 4774
- Lines Deleted: 7778
- Previous Release: v0.3.7
🔗 Links
- Full Changelog: v0.3.7...v0.3.8
- All Releases: View all releases
🤖 Generated with Claude Code