Releases: RoboFinSystems/robosystems
Release v1.4.72
RoboSystems Service v1.4.72
A substantial taxonomy and reporting release that expands rs-gaap concept coverage, improves XBRL serialization accuracy, and strips internal construction-phase artifacts from all public-facing code, docs, and test fixtures.
Key Features & Improvements
- CF reconciling & remeasurement coverage — added cash-flow reconciling items, remeasurement concepts, and a recurrence axis to the rs-gaap taxonomy (
feat(taxonomy)) - Tenant-exclude curation — new
rs-gaap/tenant-exclude/v1.jsongenerator enables sharp, per-tenant element curation with Default Style line splitting - Standard labels for rs-gaap concepts — five previously unlabeled rs-gaap-gaap concepts now carry standard labels via a new
rs-gaap-labelslinkbase package - CF operating plug warning — the reporting layer now warns when the cash-flow operating reconciling plug dwarfs actual operating cash, surfacing likely mapping issues early
- FAC-anchored working set — the kept rs-gaap working set is now explicitly anchored to FAC, improving cross-framework traceability
- New
rs-gaap-referencespackage — added a dedicated references linkbase for rs-gaap concepts
Bug Fixes
- XBRL concept label sourcing — concept labels are now resolved from the standard label linkbase instead of inline metadata, fixing incorrect or missing labels in serialized XBRL output
- Mapping deterministic overrides — restored
_resolve_qname_to_idso that deterministic mapping overrides apply correctly - Taxonomy Library element count — the element-count chip now counts only active elements; inactive elements are hidden by default
- MappingOperator prompt alignment — the system prompt now matches the current rs-gaap-direct model
Documentation & Cleanup
- Stripped private-spec construction-phase exhaust from all comments, tests, migrations, dbt comments, and sample output — reducing the codebase by ~475k lines
- Refreshed all committed READMEs to reflect the current project state
- Fixed stale trait counts and a dropped-0019 migration reference in taxonomy docs
- Consolidated the recurrence
CHECKconstraint into migration 0002 (dropped migration 0019)
Notable Technical Changes
- Multi-graph org isolation contract — new pinned test verifying
search_pathisolation when multiple graphs exist within a single org - GHA workflow replaced — the
create-pr.ymlGitHub Actions workflow has been replaced with a/create-prClaude command, streamlining the PR creation flow - FAC rules package relocated —
fac-rulesmoved fromfac/packages/tors-gaap/packages/rs-gaap-rules/(96% similarity rename)
⚠️ Breaking Changes
fac-rulespackage path changed — any direct references toframeworks/fac/packages/fac-rules/v1/taxonomy.jsonldmust be updated toframeworks/rs-gaap/packages/rs-gaap-rules/v1/taxonomy.jsonld- Inactive taxonomy elements hidden by default — API consumers relying on the full element list (including inactive) may see fewer elements returned; check for an
include_inactiveflag if needed
📊 Release Statistics
- Commits: 92
- Files Changed: 252
- Lines Added: 102592
- Lines Deleted: 477415
- Previous Release: v1.4.71
🔗 Links
- Full Changelog: v1.4.71...v1.4.72
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.71
RoboSystems Service v1.4.71
A substantial release delivering a graph-native v2 serialization pipeline, typed fact provenance for RoboLedger, and a sweep of observability and infrastructure hardening improvements.
Key Features & Improvements
- Graph-native v2 bundle serialization — XBRL contexts are now collapsed directly onto facts, producing a cleaner JSON-LD output. The bundle ontology is correctly stamped as v1. (#707, #708)
- Canonical RDF ontology — Reified arcs and
xbrliconcept attributes are now expressed as a first-class RDF taxonomy, enabling richer semantic querying. - Opt-in SHACL validation at publish — Reports can now run SHACL validation on publish; results are captured on the
Reportobject. Container-free SHACL + Arelle validation is available in demos. - Typed fact provenance on FactSets — RoboLedger now captures structured provenance metadata (including instant-period keys and asserted share coverage) on every
FactSet. (#709) - Lambda-independent liveness alarms — New CloudWatch alarms monitor volume functions independently of Lambda invocation, improving detection of silent failures. (#710)
- SSM-tunable OLTP connection pool — The extensions OLTP pool size is now configurable via SSM Parameter Store; tenant schemas are properly dropped on deprovision.
- QuickBooks token revocation — Disconnecting a QuickBooks integration now explicitly revokes Intuit OAuth tokens.
- Overhauled examples & demos — Demo scripts reorganized with shared
_commonutilities, a new Seattle Method demo, downloadable bundle outputs, and sample SHACL/XBRL validation reports.
🔒 Security Improvements
- QuickBooks token revocation on disconnect — Intuit tokens are now actively revoked rather than simply discarded, reducing the window of credential exposure.
- ECR lifecycle policy codified — Container image retention rules are now version-controlled (
ecr-lifecycle-policy.json) and reconciled on bootstrap, preventing unbounded image accumulation.
Bug Fixes
- fix(otel): Capped
http.server.*metric cardinality via an attribute allowlist; dropped unboundeduser_id/event_datalabels that could cause metric explosion. - fix(migrations): Guarded
add_tenant_columnfor nullability consistency across tenant-table DDL fan-out. - fix(quickbooks): Set explicit timeout on Intuit token revocation HTTP calls to prevent hanging requests.
- fix(roboledger): Corrected instant-period provenance key and added coverage for asserted share facts.
- fix(serialization): Multiple cleanup passes addressing review findings (PRs #707, #708), including correct ontology version stamping.
⚠️ Breaking Changes
- OLTP writer removed —
examples/roboledger_demo/oltp_writer.pyhas been deleted. Equivalent functionality is now handled via the extensions pool; update any scripts that imported this module directly. - Demo script renames — Numbered prefixes removed from
custom_graph_demoscripts (e.g.,01_setup_credentials.py→setup_credentials.py). Update any automation that referenced the old filenames.
Notable Technical Changes
- 540 files changed across 255 commits — a large release spanning serialization, infrastructure, and observability.
- CloudFormation (
graph-volumes.yaml) updated with new alarm definitions. - Dockerfile & entrypoint updated — review deployment configurations if you maintain custom images.
- Dead doc references cleaned up — removed stale pointers to git-ignored
local/docs/specs. - Tenant DDL fan-out hardened —
add_tenant_columnhelper now guards against partial migration failures across schemas.
📊 Release Statistics
- Commits: 255
- Files Changed: 540
- Lines Added: 131106
- Lines Deleted: 50950
- Previous Release: v1.4.70
🔗 Links
- Full Changelog: v1.4.70...v1.4.71
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.70
RoboSystems Service v1.4.70
A significant release focused on infrastructure resilience, API model improvements, and critical bug fixes — including a fix addressing the 2026-05-08 volume incident and a subscription access revocation bug.
✨ Features & Improvements
- Enhanced API models with descriptive docstrings, examples, and updated request/response structures across event handlers, publish lists, report requests, and information block models
- Shared
DeleteResultmodel for consistent delete response handling across API endpoints (feat(api)) - Improved error handling and response normalization — 422 Unprocessable Entity responses now follow a consistent structure across all API endpoints
- New
_pydantic.pytypes module added to GraphQL types for improved type support - Demo improvements — journal entry creation updated to use
create_event_blockfor clarity; validation and service source fields aligned with demo pedagogy
🐛 Bug Fixes
- Volume detachment/attachment robustness — hardened the EC2 graph volume lifecycle (detach, attach, SSM signaling) in response to the 2026-05-08 incident (#663)
- Database orphaning prevention — SSM signals now include preserved databases, preventing orphaned databases during volume operations
- Subscription cancellation access revocation — user repository access is now correctly revoked when a subscription is cancelled (#659)
- Date handling fix in
generate_fy2025_reportand improved summary extraction in_Validator - Dependency fix —
robosystems-clientupdated to 0.3.24; removed from main dependencies (now only where needed) - MCP tool docs — corrected source options in
ListEventBlocksTooldocumentation
🔧 Notable Technical Changes
- Deprecated seed scripts removed (
build_fac_calculations_seed.py,build_fac_presentation_seed.py) — seeds are now manually curated rather than auto-generated from scripts; documentation updated accordingly (#660) - Refactored Information Block API models and commands for cleaner separation of concerns
- Dot notation migration — demo scripts updated to use object property dot notation instead of dict-style access
- Test coverage — added tests ensuring
_LEGACY_BLOCK_TYPESdo not overlap with typed arms, plus normalized 422 response tests
⚠️ Breaking Changes
- Normalized 422 error response structure — clients parsing validation error responses may need to update to the new consistent format
- Removed deprecated seed generation scripts — any CI/CD pipelines or workflows referencing
build_fac_calculations_seed.pyorbuild_fac_presentation_seed.pymust be updated
📊 Release Statistics
- Commits: 22
- Files Changed: 72
- Lines Added: 5039
- Lines Deleted: 3686
- Previous Release: v1.4.69
🔗 Links
- Full Changelog: v1.4.69...v1.4.70
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.69
RoboSystems Service v1.4.69
This release improves the materializer with busy counter management and column order reconciliation, enhancing reliability during materialization and parent database forking operations.
✨ Features & Improvements
- Busy counter management for materialization — The materializer now properly tracks busy state during materialization operations, preventing concurrent access issues and improving stability.
- Busy counter management for
fork_from_parent_duckdb— Added busy counter increment/decrement around parent DuckDB forking to ensure safe resource handling. - Column order reconciliation — Added reconciliation logic that aligns target and source column order during materialization, preventing schema mismatch issues when column ordering diverges between source and target tables.
🐛 Bug Fixes
- Fixed potential column order mismatches during materialization via new reconciliation logic (PR #658).
🔧 Notable Technical Changes
- 5 files changed across the materialization pipeline (
materialize.pyin bothadapters/sec/pipelineandgraph_api/routers), with 351 lines added — indicating substantial new logic, primarily around busy counter semantics and column reconciliation. - New test coverage added in
test_tables_materialize.pyfor the reconciliation and busy counter behaviors. - Dependency lock (
uv.lock) updated alongside version bump inpyproject.toml.
⚠️ Breaking Changes
None identified in this release.
📊 Release Statistics
- Commits: 5
- Files Changed: 5
- Lines Added: 351
- Lines Deleted: 22
- Previous Release: v1.4.68
🔗 Links
- Full Changelog: v1.4.68...v1.4.69
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.68
RoboSystems Service v1.4.68
This release introduces subscription cancellation and immediate deprovisioning support, enhances the QuickBooks integration with new entity types and event-driven ingestion, and strengthens authentication security through JWT session versioning.
✨ Features & Improvements
- Subscription cancellation & immediate deprovisioning — Added full cancel-subscription flow including plan display name resolution, repository subscription cleanup, and enhanced
delete-graphoperation logic (#657) - Event-driven ingestion (Phase 2) — Implemented agent management enhancements, auto-commit behavior for source-of-truth events, and enriched journal entry creation with
sourceandconnection_idmetadata (#646) - QuickBooks integration expansion — Added support for BillPayment and SalesReceipt headers, new staging models (customers, employees, vendors, invoices, payments, bills), and
since_date/full_rebuildsync options - JWT session versioning — Introduced session version tracking on user and API key models, enabling precise token invalidation on a per-session basis (#647)
🔒 Security
- Enhanced JWT cache invalidation — Refactored auth cache logic to decouple invalidation from logout/session-refresh flows, improving reliability of user deactivation and token revocation
🐛 Bug Fixes
- Fixed QuickBooks event loader handler issues, including renaming
_fire_handler_on_committofire_handler_on_commitfor correct public usage (#656) - Optimized library copy process during tenant schema provisioning
- Updated
mock_verifyreturn values in graph access tests to align with new session versioning fields
⚠️ Breaking Changes
- JWT token payload change — Tokens now include a
session_versionclaim. Existing tokens issued before this release will fail verification and require re-authentication. - Database migrations required — Two new migration files: session version columns on users/API keys, and immediate-cancel billing support. Run migrations before deploying.
🔧 Technical / Dependency Updates
robosystems-clientupdated to 0.3.19cfn-lintbumped to 1.50.1dagster-webserverbumped to 1.13.3aquasecurity/trivy-actionbumped to 0.36.0softprops/action-gh-releasebumped to v3- New database schema additions in extensions migration
0005_event_driven_ledger(agentconnection_idunique indexing)
📊 Release Statistics
- Commits: 32
- Files Changed: 120
- Lines Added: 9367
- Lines Deleted: 2291
- Previous Release: v1.4.67
🔗 Links
- Full Changelog: v1.4.67...v1.4.68
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.67
RoboSystems Service v1.4.67
This release introduces report package lifecycle management, enhances portfolio block operations, and improves the financial reporting pipeline with FactSet validation support.
✨ Features & Improvements
- Report Package Lifecycle Management — Added full filing lifecycle operations including status checks, database cleanup, and package read functionality with FactSet validation (#643)
- Portfolio Block Operations — Consolidated and enhanced portfolio/position operations into a unified
portfolio_blockmodule with new entity and security types, improved error handling, and updated position deletion logic (#644) - Rendering Projections & Statement Envelopes — Implemented rendering projections and updated fact retrieval logic for statement envelopes
- RoboLedger Demo — Renamed
close_demotoroboledger_demowith added synthetic data generation and accounting policies - Feature Flag Resolution — Updated staging/prod environments to use
boto3directly instead ofawsclifor feature flag resolution - Dependency Updates — Updated
robosystems-clientto v0.3.17
🐛 Bug Fixes
- Fixed custom graph file ingestion handling in XBRL/SEC processors (#645)
- Fixed condition expression to properly handle empty databases in
LadybugAllocationManager - Simplified and clarified handling of special cases in
_explicit_col_expr
⚠️ Breaking Changes
- Portfolio operations restructured —
roboinvestor/commands/portfolios.pyandroboinvestor/commands/positions.pyhave been removed and replaced byroboinvestor/commands/portfolio_block.pyandroboinvestor/reads/portfolio_block.py. Consumers of these internal modules will need to update imports. (#644)
🔧 Notable Technical Changes
- New database migration
0006_report_package_lifecycle.pyfor report package support — ensure migrations are run before deploying - New API extension models and GraphQL types added for
report_package - Reporting model updated with FactSet relationship mappings and lifecycle state management
- 69 files changed across 18 commits (+4,326 / −1,515 lines)
📊 Release Statistics
- Commits: 18
- Files Changed: 69
- Lines Added: 4326
- Lines Deleted: 1515
- Previous Release: v1.4.66
🔗 Links
- Full Changelog: v1.4.66...v1.4.67
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.66
RoboSystems Service v1.4.66
A major release introducing event-driven transaction handling, a terminology shift from "classifications" to "traits," and new GraphQL MCP tooling — alongside significant infrastructure and lifecycle management improvements.
✨ Features & Improvements
- Event-Driven Ledger & Transaction Handling — Introduced a new event-driven architecture for transaction processing, including event block models, duality links, status transition validations, and consolidated classification rules into event handlers (#637, #638)
- Schedule Lifecycle Management — Enhanced schedule creation, updates, and voiding with event-driven obligations, user tracking, historical period handling, and automatic dispatch of pending obligations (#638)
- GraphQL MCP Tools — Added new tools for schema retrieval and query execution via MCP, with async context building, complexity checks, and fragment spread limit enforcement (#640)
- SEC MCP Adapters — New element and report resolver modules for SEC data via MCP
- Arelle Integration — Added new
robosystems/arellepackage with context handling, data extraction, and serialization capabilities - S3 Lifecycle Policies — Enhanced bucket lifecycle policies for graph backups and databases
- Taxonomy & Fact Set Migrations — Added new migration steps for taxonomy library, fact sets, verification results/templates, and event-driven ledger schema
⚠️ Breaking Changes
- Classifications → Traits Rename — All terminology referencing "classifications" has been renamed to "traits" across models, functions, and APIs. Consumers relying on the previous naming convention will need to update their integrations (#641)
- Taxonomy Config Removed —
robosystems/config/taxonomy/module has been deleted; related constants moved tometric.py - Client Dependency Updated —
robosystems-clientbumped to0.3.13with updated source configuration — ensure downstream services are compatible
🔧 Technical Changes
- Refactored client configuration and API interactions for improved modularity and error handling
- Moved metric block constants to
metric.pyfor better code organization - Refactored taxonomy block operations and update handlers
- Refactored journal entry reversal and schedule management logic
- Added scheduled obligation promoter sensor in Dagster pipeline
- Expanded architectural shapes documentation in README
- Added
information_blockGraphQL resolver
🐛 Bug Fixes
- Fixed
robosystems-clientversion and source configuration in project dependencies - Improved data integrity and clarity in event block handlers
🧪 Testing
- Added comprehensive unit tests for GraphQL tools including introspection failure handling and fragment spread limits
- Added unit tests for event block Python handlers; deprecated tests removed
📊 Release Statistics
- Commits: 118
- Files Changed: 382
- Lines Added: 694240
- Lines Deleted: 10183
- Previous Release: v1.4.65
🔗 Links
- Full Changelog: v1.4.65...v1.4.66
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.65
RoboSystems Service v1.4.65
A significant release focused on API documentation alignment, refactoring of the extensions materialization pipeline, and enhanced graph operations—accompanied by substantial dependency updates and internal restructuring of extension models.
Key Features & Improvements
- Enhanced graph operations & idempotency handling — New operations module (
robosystems/middleware/operations.py,robosystems/models/api/graphs/operations.py) with improved idempotency support for graph creation and mutations (#624) - Extensions materialization overhaul — Refactored materialization process to use a dedicated
ExtensionsMaterializer, addeduser_graph_extensions_materialized_sourceDagster asset for better pipeline observability - Transaction & journal entry models — Added transaction creation/response models and enhanced the journal entry command (
robosystems/models/api/extensions/journal_entries.py, updatedtransactions.py) - API & Swagger documentation alignment — Comprehensive error response documentation across endpoints, new OpenAPI tags for Connections and Subscriptions, refined descriptions for Graph Operations and Queries (#627)
- StrategySelector execution strategy refactoring — Cleaner handling of execution strategy selection
- CreateGraphRequest validation improvements — Stricter validation with updated documentation, refined examples, and added initial entity support in graph creation test data
- New API tags —
ConnectionsandSubscriptionstags added to OpenAPI configuration for better API discoverability
⚠️ Breaking Changes
- Legacy environment variable fallbacks removed —
robosystems/config/env.pyno longer falls back to deprecated env vars; ensure your deployment uses the current variable names - Extension models restructured — Several models moved from
robosystems/models/extensions/roboledger/up torobosystems/models/extensions/(e.g.,association.py,classification_rule.py,dimension.py,element.py,structure.py,taxonomy.py). Direct imports from the old paths will break. - Document service path changed —
robosystems/operations/documents/service.pyrelocated torobosystems/operations/document_service.py; thedocuments/__init__.pypackage was removed - Removed dependencies —
async_timeoutandpython-slugifyhave been dropped from the project
Notable Technical Changes
- robosystems-client upgraded through multiple versions — Stepped from 0.3.3 → 0.3.4 → 0.3.5 → 0.3.6 → 0.3.7 → 0.3.8, with a new SDK update task added to the justfile
- New
entity_taxonomy.pymodel anddimension_junctions.pyadded to support richer taxonomy and dimensional relationships in extensions - Improved database health check logging — More informative log output in
health.pyfor diagnosing connectivity issues - Tier change tests added — New test coverage for graph tier change operations
Bug Fixes
- Fixed asset key for extensions materialization reporting
- Improved error response handling across multiple API endpoints to return consistent, well-documented error envelopes
Security & Dependency Updates
- 🔒 Bumped Mako from 1.3.10 to 1.3.11 (via Dependabot, #626) — includes upstream security and stability fixes
📊 Release Statistics
- Commits: 50
- Files Changed: 171
- Lines Added: 10210
- Lines Deleted: 8069
- Previous Release: v1.4.64
🔗 Links
- Full Changelog: v1.4.64...v1.4.65
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.64
RoboSystems Service v1.4.64
This release enhances database infrastructure with RDS Proxy support, adds Graph API cycle protection, and improves observability and operational resilience across the platform.
✨ Features & Improvements
- RDS Proxy Support — Added configurable RDS Proxy integration with connection borrow timeout, updated PostgreSQL configuration, database endpoint handling in CI/CD workflows, and Lambda rotation scripts (#620)
- Graph API Cycle Protection — Refactored sensitive path handling and enhanced
auto_map_elements_oplogic to guard against cycles in graph operations (#619) - Instance Busy Counter — New
instance_busymiddleware module to track and manage destructive operation concurrency, with dedicated test coverage - API Response Caching & Metrics — Extended metrics functionality with enhanced API response caching, OpenTelemetry improvements, and better error handling in extensions (#618)
- Async Lifecycle Management — Implemented async lifecycle management for the RoboSystems API entry point
🔧 Technical Changes
- Refactored table operation management in background tasks for cleaner separation of concerns
- Refactored refresh actions and health check scripts across GitHub Actions workflows (
refresh-graph-asg,refresh-graph-containers,graph-asg-refresh,service-refresh) - Updated deployment workflows (
prod.yml,staging.yml,deploy-postgres.yml) to support new database endpoint configuration - Enhanced
materializeanddirect_materializationoperation extensions with improved metrics and error handling - Updated CloudFormation Postgres template to accommodate RDS Proxy settings
🐛 Bug Fixes
- Fixed edge cases in sensitive path handling within the Graph API router
- Improved robustness of health check scripts for graph instances
⚠️ Breaking Changes
- Database endpoint configuration in workflows has changed — teams with custom deployment pipelines referencing Postgres endpoints should verify compatibility with the new RDS Proxy-aware configuration
📊 Release Stats
| Metric | Value |
|---|---|
| Files Changed | 35 |
| Lines Added | 2,345 |
| Lines Deleted | 825 |
| PRs Merged | 3 |
📊 Release Statistics
- Commits: 18
- Files Changed: 35
- Lines Added: 2345
- Lines Deleted: 825
- Previous Release: v1.4.63
🔗 Links
- Full Changelog: v1.4.63...v1.4.64
- All Releases: View all releases
🤖 Generated with Claude Code
Release v1.4.63
RoboSystems Service v1.4.63
This release introduces a new Extensions GraphQL API with investor and ledger operations, alongside dependency updates and improved documentation.
✨ Features & Improvements
- Extensions GraphQL endpoint — New GraphQL API layer supporting graph-scoped endpoints, pagination validation, and a mapped trial balance feature (#617)
- RoboInvestor operations module — Added command and read operations for portfolios, positions, securities, and holdings
- Authorization & error handling — Refactored auth flow and error handling across GraphQL operations with enhanced idempotency support
- New environment variables — Added configuration options to support extensions and GraphQL feature flags
- Documentation overhaul — New and updated READMEs for GraphQL, API models, extensions models, and core models; clarified URL structure and feature flags in the main README
🔧 Technical Changes
- Updated
robosystems-clientto 0.3.1 andarelle-releaseto 2.39.5 - Updated development and testing dependencies
- Refactored API structure for extensions to align with the new GraphQL architecture
- Updated Content Security Policy (CSP) to accommodate the GraphQL endpoint
- Refactored ValkeyDatabase allocation and updated corresponding tests
- Improved CI compatibility by dynamically deriving
main.pypath in tests
🐛 Bug Fixes
- Fixed test suite to reflect changes in Valkey database allocation behavior
🔒 Security
- Updated
SECURITY.mdand refined authorization logic in GraphQL operations
⚠️ Breaking Changes
- API restructuring for extensions — Existing extensions API routes may have changed as part of the refactor to support GraphQL; consumers of extensions endpoints should verify compatibility
- ValkeyDatabase allocation changes — Database allocation behavior has been updated; services depending on specific database indices should be reviewed
📊 Release Statistics
- Commits: 15
- Files Changed: 157
- Lines Added: 16721
- Lines Deleted: 12076
- Previous Release: v1.4.62
🔗 Links
- Full Changelog: v1.4.62...v1.4.63
- All Releases: View all releases
🤖 Generated with Claude Code